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 4DD31C0F2 for ; Thu, 25 Jul 2013 12:25:42 +0000 (UTC) Received: (qmail 98549 invoked by uid 500); 25 Jul 2013 12:25:40 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 98400 invoked by uid 500); 25 Jul 2013 12:25:35 -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 98385 invoked by uid 99); 25 Jul 2013 12:25:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Jul 2013 12:25:33 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_SOFTFAIL X-Spam-Check-By: apache.org Received-SPF: softfail (athena.apache.org: transitioning domain of mail@sanderdijkhuis.nl does not designate 66.111.4.25 as permitted sender) Received: from [66.111.4.25] (HELO out1-smtp.messagingengine.com) (66.111.4.25) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Jul 2013 12:25:29 +0000 Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 8083220B73; Thu, 25 Jul 2013 08:25:08 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Thu, 25 Jul 2013 08:25:08 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=sanderdijkhuis.nl; h=subject:mime-version:content-type:from:resent-from :in-reply-to:date:resent-date:message-id:references:resent-to:to :resent-message-id; s=mesmtp; bh=CfuiuzI8DoOGVHXPJ+wLKlCgl2g=; b= oFtsWsGZncwPc8X/+HnWxA77hNgNYvSvjr3ZcdxBWXHIfMwq8UD61dOq1hnIT8Pv rnHK80VXNeMNo/0vYyb3qc/MPoCTaJ708XGtHIPI8/XffXzkYsdY9QdlC0y3EOOz 6LXnvvFITG4Qs82SNKMFJ/WpTEbOCJLGuO+Px+wl7Jo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=subject:mime-version:content-type:from :resent-from:in-reply-to:date:resent-date:message-id:references :resent-to:to:resent-message-id; s=smtpout; bh=CfuiuzI8DoOGVHXPJ +wLKlCgl2g=; b=b1MZ08YuyUKZa9wUte0AdQwRIOmj2beVkyBMwxroZSOAoaMH9 gtj3ZwEFnDSJLZnMl0mtQPPXIwcv7vO2uG1BWTMpnD73fyMmXfHMs7A4VJGHlgK4 rHdoXxJzvAoP0cxJZr13uYNKbHvVucKrqnuQZxSd2XAtMm9bU5tG2xxGrw= X-Sasl-enc: UtwpzXvxtCejgEhQ3/XOICBPYrvuPCppTkNv4nIWF+A9 1374755108 Received: from [192.168.1.51] (unknown [82.168.100.33]) by mail.messagingengine.com (Postfix) with ESMTPA id E85326800BF for ; Thu, 25 Jul 2013 08:25:07 -0400 (EDT) Subject: Re: CouchDB toolkit for turn-based games Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Content-Type: multipart/signed; boundary="Apple-Mail=_9A74AD2E-7644-4979-816D-C7AA6BBA618C"; protocol="application/pkcs7-signature"; micalg=sha1 From: Sander Dijkhuis Resent-From: Sander Dijkhuis In-Reply-To: Date: Wed, 24 Jul 2013 16:41:39 +0200 Resent-Date: Thu, 25 Jul 2013 14:25:05 +0200 Message-Id: References: Resent-To: "user@couchdb.apache.org" To: user@couchdb.apache.org X-Mailer: Apple Mail (2.1508) Resent-Message-Id: <20130725122507.E85326800BF@frontend2.nyi.mail.srv.osa> X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_9A74AD2E-7644-4979-816D-C7AA6BBA618C Content-Type: multipart/alternative; boundary="Apple-Mail=_E94A8CA1-7775-464E-BAAE-6F9BD22D2B75" --Apple-Mail=_E94A8CA1-7775-464E-BAAE-6F9BD22D2B75 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 A short update to my earlier post about turn-based gaming on CouchDB: I = didn=92t get far with creating a re-usable library from my werewolves = game. Instead, Lunacy=92s original code is now on GitHub: https://github.com/sander/lunacy/ 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=92d be glad to share my ideas and = unfinished code. On Apr 22, 2013, at 8:54 , Sander Dijkhuis = 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? >=20 > As a hobby project I=92m working on a web-based multiplayer werewolves = game [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 make sure a player cannot access another player=92s = secrets. >=20 > 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 = 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 =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. >=20 > 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 RPGs. (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. >=20 > Sander >=20 > [1] http://playlunacy.com/ > [2] http://touchdb.org/ > [3] http://www.wired.com/gamelife/2012/04/asynced-gaming/all/ --Apple-Mail=_E94A8CA1-7775-464E-BAAE-6F9BD22D2B75 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252
A = short update to my earlier post about turn-based gaming on CouchDB: I = didn=92t get far with creating a re-usable library from my werewolves = game. Instead, Lunacy=92s original code is now on = GitHub:

https://github.com/sander/lunac= y/

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=92d 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=92m working on a = web-based multiplayer werewolves game [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 make 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 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 =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 = RPGs. (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/
<= br>
= --Apple-Mail=_E94A8CA1-7775-464E-BAAE-6F9BD22D2B75-- --Apple-Mail=_9A74AD2E-7644-4979-816D-C7AA6BBA618C Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGTzCCBksw ggUzoAMCAQICAwcdzzANBgkqhkiG9w0BAQUFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0 YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcx ODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB MB4XDTEzMDcyMzA5MjExNloXDTE0MDcyNDA2MTgxNlowYzEZMBcGA1UEDRMQbWl4ZmRkSkE1dGtS N2w2OTEfMB0GA1UEAwwWbWFpbEBzYW5kZXJkaWpraHVpcy5ubDElMCMGCSqGSIb3DQEJARYWbWFp bEBzYW5kZXJkaWpraHVpcy5ubDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMIwVMJX jgVn5qWAau3Z+9BafaGyek9JE1eC1z1BxwI86e/ZHFIQDWujuQdZO4s1Dy+pkSfz1aMuwiVm6vTu BjZ4W3zWyLvi9/UEJj3zVWBPPpuVe6BZapyyktx0ZvKn3OYYj7bHPcCQjQaFVRvuZUaF8jX5ZFNV JdWyfkRu/nCcL0X0ym5Ts0HATzxY7ingU24EA3WwqN9sjotLabBB7ILmVydcoRM8ywgw9bDoVVBf qwrzHE26+pV7kU9AkZg0l48R3/zngyEKfv+PvrAEIFgN5xIuB1YJcYWfPVLtmZu3WakZbS6KbkMb UvUuk42bQp5VTr5fFmP/oyweBlF4hRUCAwEAAaOCAtwwggLYMAkGA1UdEwQCMAAwCwYDVR0PBAQD AgSwMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQUN9IVp9yQDDbOj3FL zz/lDbMsIIAwHwYDVR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwIQYDVR0RBBowGIEWbWFp bEBzYW5kZXJkaWpraHVpcy5ubDCCAUwGA1UdIASCAUMwggE/MIIBOwYLKwYBBAGBtTcBAgMwggEq MC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMIH3BggrBgEF BQcCAjCB6jAnFiBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTADAgEBGoG+VGhpcyBj ZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29yZGluZyB0byB0aGUgQ2xhc3MgMSBWYWxpZGF0aW9u IHJlcXVpcmVtZW50cyBvZiB0aGUgU3RhcnRDb20gQ0EgcG9saWN5LCByZWxpYW5jZSBvbmx5IGZv ciB0aGUgaW50ZW5kZWQgcHVycG9zZSBpbiBjb21wbGlhbmNlIG9mIHRoZSByZWx5aW5nIHBhcnR5 IG9ibGlnYXRpb25zLjA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9j cnR1MS1jcmwuY3JsMIGOBggrBgEFBQcBAQSBgTB/MDkGCCsGAQUFBzABhi1odHRwOi8vb2NzcC5z dGFydHNzbC5jb20vc3ViL2NsYXNzMS9jbGllbnQvY2EwQgYIKwYBBQUHMAKGNmh0dHA6Ly9haWEu c3RhcnRzc2wuY29tL2NlcnRzL3N1Yi5jbGFzczEuY2xpZW50LmNhLmNydDAjBgNVHRIEHDAahhho dHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS8wDQYJKoZIhvcNAQEFBQADggEBAH6V0t0qAczMbVqEnIXb gQePqUJ7ryhuzQKcAD2FejWqO4JpylM1FdoD4L7W9rAketjRg5/D6WXy4xrCQosbetjTqGlke438 GdOFXzqoWFcHxWUu50YTqBcdF+JNs3nyljm62FUdATUNTko8md48PJ1rqMwKtvHn+EDGzVn37M8Z 55uAy0dM82ijgiA2g4jGoPFOvt1snBRvJ38BLTdUVrjXYJHA1kVnfOeCSIEfc2Y7t0BDfeZ5smK8 At25XgMWy/6bFmpazhfVwJME/kJkv0A4t5NbyvHnjAMQrJphskCtwcJPXD5aO1M93pawoAnLg6gg JVTF+Mb3rK/5E7ZYMOgxggNvMIIDawIBATCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0 YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcx ODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMHHc8wCQYFKw4DAhoFAKCCAa8wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0B CQUxDxcNMTMwNzI1MTIyNTA1WjAjBgkqhkiG9w0BCQQxFgQU0J9eiPIQPY4BX3aTb9CqmeTDD/ww gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0 ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMT L1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBAgMHHc8wgacG CyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMv U3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0ECAwcdzzANBgkq hkiG9w0BAQEFAASCAQBeAkWDSDgpyqiXOQacl1jk15nbtQAsi1Kj+e225pnYL2Uul4SZL8kR7Al4 /HZ/Y6i/6Qeum6fay2oE3a+KBcwnd6ocXeSeob6MkA0hjpIRz/FgVPU2vAyonwN3kjxSfau1XSFO l+DY3QdQM8vhMML66SYwj4nATn2QKTF5SxYWRlvoiq+oHBFTtOwinDMRujy9qaNpJHz2NM8TWuKg jqvwkzWta2PEgVn12m59rLXKobGyrOfexXAlfsWfWnGzi0Kc3tl92GOEgDzlTu/HpVl94y52jKlB U3KwGyLbzMirR9TTkcA5z3+JnZOD1wlQAd6cpT/YezS7mToJRJweCh+5AAAAAAAA --Apple-Mail=_9A74AD2E-7644-4979-816D-C7AA6BBA618C--