A short update to my earlier post about turn-based gaming on CouchDB: I didnít get far with creating a re-usable library from my werewolves game. Instead, Lunacyís original code is now on GitHub:


It may be an example of how multiplayer games can be created using CouchDB, or a fun project to help hacking on. :-)

In case anyone is still interested in using this to create a general CouchDB game development kit, Iíd be glad to share my ideas and unfinished code.

On Apr 22, 2013, at 8:54 , Sander Dijkhuis <mail@sanderdijkhuis.nl> wrote:

Is anyone interested in using and contributing to a toolkit for creating turn-based games with CouchDB? Or anyone else working on this already?

As a hobby project Iím working on a web-based multiplayer werewolves game [1]. It works in the browser with CouchDB in the backend, and for mobile Iím working with TouchDB [2] and WebView. CouchDB is a nice fit because of the ubiquitous JavaScript, security features, data replication and the real-time changes feed. Each game is a separated into a set of docs to make sure a player cannot access another playerís secrets.

Thereís a lot of boilerplate code involved and it seems that Iím reinventing the wheel, along with others who make games like Draw Something and Words With Friends. My current toolkit contains:
- design docs for summarised game lists, notifications, data security;
- object-oriented syntax for game rules, easy bot creation, game state management;
- an implementation of friend lists and group chat;
- AngularJS modules to create interfaces to games, authentication and profiles;
- node.js workers for user registration, on-demand replication and notifications;
- an iOS shell using TouchDB for sync and WebView to render the game;
- a Chrome App shell to easily access privileges like notifications and data sync;
- a Ďfree trialí limitation and payment handler using Google Wallet.
I hope to include:
- auth, friend lists and sharing through Facebook;
- notifications, payments that are native to iOS;
- an port of the iOS shell to Android.

If thereís interest, I can release the boilerplate code under APLv2. It would mostly look like a compilation of existing libraries, configured together to work smoothly. With some help, we could make this into a toolkit that should work for all kinds of board games, card games and RPGs. (Itís the multiplayer gamingís new revolution [3]!) The goal would be making it easy for users to get started and to focus on game logic and playful interfaces.


[1] http://playlunacy.com/
[2] http://touchdb.org/
[3] http://www.wired.com/gamelife/2012/04/asynced-gaming/all/