我正在构建一个后端带有RoR 3 Web服务的iPhone应用程序。该应用程序是一个相当简单的点对点游戏。如果有人可以分享关于如何最好地划分Web服务和本地iPhone之间的操作的一些指示和提示,我将非常感激。
例如,国际象棋或步步高,是不断保存和从服务器检索的游戏的当前状态?还是本地存储在玩家的iPhone上?
谢谢!
答案 0 :(得分:0)
根据您对应用程序的编程方式以及您的需求,这会有很大差异。您可以不断地从服务器保存和检索游戏状态,您可以按照游戏玩法确定的特定间隔同步游戏状态,或者您可以主要在本地运行。这一切都取决于您的要求。一般而言,细胞网络应该被认为是缓慢且不可靠的(即使并非总是如此)。将数据传输保持在实现目标所需的最低限度,可使您的应用程序感觉更具响应性,用户更快乐(特别是那些覆盖率较低的区域以及那些没有无限数据计划的人员)。
答案 1 :(得分:0)
这取决于它是针对其他玩家还是针对计算机对手的游戏。如果它是针对另一个玩家的,那么状态将被更新并从服务器检索。如果它是针对内置AI的,则没有理由将该状态发送到服务器,除非您的AI在您的Web服务中,而不是将其包含在实际应用程序中。这真的是一个基于你想要完成的事情的设计决定。一般来说,我建议尽可能多地保留应用程序本地,除非有理由在服务器上执行此操作,但如果您的游戏存在任何竞争方面,您肯定希望控制服务器上的任何计算。请记住,有人总是可以尝试反编译您的应用程序或直接调用您的Web服务传递错误数据。