Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 43422F393 for ; Tue, 23 Apr 2013 02:16:09 +0000 (UTC) Received: (qmail 83076 invoked by uid 500); 23 Apr 2013 02:16:07 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 83043 invoked by uid 500); 23 Apr 2013 02:16:07 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 83032 invoked by uid 99); 23 Apr 2013 02:16:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Apr 2013 02:16:07 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW X-Spam-Check-By: apache.org Received-SPF: error (athena.apache.org: local policy) Received: from [209.85.217.180] (HELO mail-lb0-f180.google.com) (209.85.217.180) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Apr 2013 02:16:03 +0000 Received: by mail-lb0-f180.google.com with SMTP id t11so195891lbi.11 for ; Mon, 22 Apr 2013 19:15:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type:x-gm-message-state; bh=RR3anF6XGDo5uGkWsH525iQenDlT8cx47X7xcV+uFfM=; b=Pnsi9S/Xue8HPRGsFSZhMcRxAMUg5fX590Kbr2b9PrbgldaUyHvT+nCovkB/dPeMk8 4EvaeMsyhvp80ZgVFzJM2U/KJTO7h/uqf4CQMX7MPPDrNhSVJsbzSuF/3qjl6lIlmqOO Fn20sC2ZU9u/brsiJJ1KpJkXkK1E86X+51fN+Zty9YU7ps/3x+Ujx+MAhFQs8jQYGgiH D1noOSbMbsav7FuaIDDllumtS4U2e8inZqFYlbOrDHGNFC7R4w7LOx7SYEnrWrg4xW39 z09wMGzi9Ojd5geLeGP8m9bYY8C6nMbOFmF6HWtPoBonQsyaVB8slnWpDGreVof8Z6VU WGtA== MIME-Version: 1.0 X-Received: by 10.112.219.197 with SMTP id pq5mr14376585lbc.102.1366683320685; Mon, 22 Apr 2013 19:15:20 -0700 (PDT) Received: by 10.114.175.103 with HTTP; Mon, 22 Apr 2013 19:15:20 -0700 (PDT) In-Reply-To: References: Date: Mon, 22 Apr 2013 19:15:20 -0700 Message-ID: Subject: Re: CouchDB toolkit for turn-based games From: Traun Leyden To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=001a11c25c5ad9ad4d04dafdc1f7 X-Gm-Message-State: ALoCoQk2gLb+S37hW8t+OSuYbqv0MAJuHGQ+Y5KHjRQ+a2EXoaV/ZoV1XGsFuqdP82URNOWnjRuO X-Virus-Checked: Checked by ClamAV on apache.org --001a11c25c5ad9ad4d04dafdc1f7 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable I am working on a turn-based chess game that uses Couch on the backend. It's a native iOS app built on top of CouchBase Lite (aka TouchDB). It has an added twist where multiple players can form a team, and so while the chess game alternates between moves of the White team and the Black team, there can be multiple players on each team and it will alternate moves between the players within the team. I haven't pushed this to github yet, hopefully next week! Will post another update when I do. On Sun, Apr 21, 2013 at 11:54 PM, Sander Dijkhuis w= rote: > 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=92m working on a web-based multiplayer werewolves ga= me > [1]. It works in the browser with CouchDB in the backend, and for mobile > I=92m 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 ma= ke > sure a player cannot access another player=92s secrets. > > There=92s a lot of boilerplate code involved and it seems that I=92m > reinventing the wheel, along with others who make games like Draw Somethi= ng > 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 =91free trial=92 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=92s 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 RPG= s. > (It=92s the multiplayer gaming=92s new revolution [3]!) The goal would be > making it easy for users to get started and to focus on game logic and > playful interfaces. > > Sander > > [1] http://playlunacy.com/ > [2] http://touchdb.org/ > [3] http://www.wired.com/gamelife/2012/04/asynced-gaming/all/ --001a11c25c5ad9ad4d04dafdc1f7--