我正在开发适用于iOS和Android移动平台的游戏。我对数据库方面感到好奇,因为我正在开发的游戏具有多人游戏功能,其中玩家可以玩一个级别并将其分数发送给另一个玩家(比如挑战格式)。当其他玩家玩游戏时,应用程序将查询数据库并发现已向他发出挑战。然后他接受挑战等等。
对于此功能,我应该使用由Microsoft / Amazon托管的SQL数据库吗?或者还有其他途径吗?
答案 0 :(得分:0)
让我们在这里尝试一个建设性的答案 - 虽然最后你没有努力解决它。
基础:
后来很关键 - 这意味着(a)不信任,(b)可能无法访问(在NAT后面 - 从未见过公共IP,例如在移动电话环境中)。
所以是的,根据定义,如果你想协调高分等事情,你的定义需要某种外部(中央)数据存储。因为你的IOS(IPhone,IPad)和Android(平板电脑,手机)制造严重不良的服务器和任何协调需求"已知的常数"这是不可能的。 (网址,IP地址)至少到#34; boot"网格。
你提出的问题是你需要决定或询问更多信息的问题。你需要的是相同的。同时有10个人的游戏与需求中的一百万人不同。通常带有一些云的goind有助于更快地扩展,但如果你得到严重的基本负载 - 价格不是那么低。
你去哪里也应该依赖。如果我去云,我会去Azure,因为我的开发都是微软堆栈,azure非常好地集成到所有操作和管理和开发工具中。我甚至不确定你会使用什么堆栈(IOS + Android同时) - 可能它基于Java ......后端很难。不是一种语言,但是...很难找到一个体面的主机(虚拟主机)与java,所以你在虚拟机上。你的技术堆栈应该为你做很多决定 - 试着避免添加越来越多的语言只是因为你可以 - 让事情变得更难维护。
一句警告:永远不要将数据库放在互联网上,总是使用应用程序级别代理(例如,带有REST / JSON API的网站)。 databsae是一个很好的大型目标,如果有人攻击它 - 再见基本上所有游戏。