javascript – 使用CouchDB和IrisCouch为iOS打开多人游戏

我和我的初创应用公司正在开发一款基于回合制的多人iPhone应用程序.可以说,我们都没有任何数据库或服务器知识.虽然,我们愿意学习.

游戏的流程类似于以下游戏:WordFeud,WordsWithFriends,Rumble等.

让我开始在网上进行大量搜索得到我们:

我们决定使用CouchDB作为存储用户,游戏会话和其他内容的信息的工具. CouchDB是一个开源的noSQL数据库系统.原因是我们已经被教导,它应该支持很多同意的用户.此外,它可以扩展 – 当然,我们希望变得更大.

我们的CouchDB托管于IrisCouch.IrisCouch是一个“云端”托管服务,专为运行CouchDb而设计.

因此,我们已经启动并运行了CouchDB服务器,并且我们了解了如何从服务器查询数据的基础知识.

我们现在最大的困惑是,我们应该如何根据最佳实践建立系统.现在我们正处于能够接收数据并将数据提交给服务器的位置.

我们的游戏应该与Facebook集成,以便用户可以通过我们的应用程序或通过Facebook注册.之后,他们可以与随机匹配的对手一起玩,或与朋友一起玩.比赛开始后,一名运动员将获得一组问题,在他回答之后,应该通过推送通知通知另一名运动员轮到他们了.经过几轮游戏结束.

此时,我们认为这可能是应用程序流程的最佳解决方案:

>用户连接到另一个用户 – >游戏会话以…开放
文档在称为“游戏”的数据库中.
>新创建的文档包含播放器名称,问题,
答案等
>名为“whos_turn”的字段决定两个玩家中的哪一个转为.
>游戏结束后,会话将被删除.

再一次,正如您所看到的,我们在如何真正做到这一点时处于黑暗中,但这是一般性的想法.

所以,我的问题如下:

最好直接从iPhone应用程序或通过Web服务查询数据吗?

设置数据库的最佳方法是什么,以便最好地管理应用程序的流程?

任何可能让我们更接近的信息都会很高兴:)

提前谢谢!

奥拉夫冈德森

编辑#1:我们的Objective-C程序员设法使用CouchDb连接两个iPhone设备. iPhone应用程序由一个表视图组成,它与数据库有并发连接,这样当有人POST到数据库时,它会显示在所有其他连接手机的tableview上.看哪:聊天系统严重无效.

解决方法:

如果是多人游戏,您需要让应用程序与远程iriscouch.db进行通信,但我担心您声明您或您的朋友都没有任何数据库经验.你愿意学习,所以我认为最好的起点是:

http://guide.couchdb.org/editions/1/en/index.html

如果您计划连续擦除文档,则可能会发现有几个问题具有可伸缩性.数据库大小在couchdb上可能相当大,您需要定期压缩和清理数据库.但我认为现在不是一个主要问题,因为这是一个初创阶段.

您的团队应该解决“设置数据库和最佳管理应用程序流程的最佳方法”这一问题.如果您没有任何具有任何数据库经验的人,您应该尝试找到愿意帮助您的人.它应该是具有丰富数据库经验的人.你可能会在http://www.odesk.com找到一些相当合理的专业人士

总而言之,如果你没有这样的人物 – 无论是自由职业者还是贡献者 – 我都不认为你会成功,以帮助你在游戏中拥有一个可靠的数据库逻辑,以确保良好的用户体验.

例如:您是否考虑过使用基于美国的数据库(Iriscouch)与用户所在位置的延迟延迟问题?

出于这个原因,您可能希望尽可能多地使用客户端(嵌入式数据库,如sqlite或touchDB,本质上是适用于iPhone的couchDB)

对于iPhone应用程序,您可能需要尝试完全针对它的TouchDB
https://github.com/couchbaselabs/TouchDB-iOS(警告:由于您需要连接以检查转弯等,这可能不是理想的解决方案,但它可以在本地存储一些信息).

为了解决这个问题,你需要具有couchdb经验的人来设置一个合适的,可用的应用程序.对你的想法充满热情并没有错,但为了使它成功,你需要在数据库方面有技术头脑.当然,您可能自己有能力自学.阅读完CouchDB书后,您应该能够创建满足您需求的基本流程.

当然,其他更有经验的用户可能会提供更全面的答案或样本布局,但我认为这不是最好的方法.即使有人发布了文档结构的完整布局以及如何查询它,如果出现问题,您将如何为应用程序提供服务,例如会话不会被删除,冲突等?因此,我真诚的建议为您的案件获得一些临时专业知识.

这也可能导致分析合适的替代品.我不认为你应该接受CouchDB可以扩展的想法,因此对你来说是最好的/唯一的选择(当然,情况可能就是这样,如果你觉得这是一个很好的选择..为它).例如Twitter,谷歌adwords和许多其他在线应用程序正在使用mysql来存储他们的数据,所以肯定CouchDB不是唯一可以扩展的数据库!

相关文章

校园网上订餐系统系统主要功能模块包括公告内容(公告栏、轮...
从今天开始,正式进入项目阶段。本次的项目是跟着黑马的瑞吉...
在可预见的将来,IT不会萎缩,只会越发展越庞大,最终会渗透...
vulntarget-b靶场最详细通关记录。
MongoDB是一个开源、高性能、支持海量数据存储的。
【NoSQL数据库技术与应用】课本代码、课后答案(持续更新)