Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 手机游戏托管数据库_Database_Hosting_Multiplayer - Fatal编程技术网

Database 手机游戏托管数据库

Database 手机游戏托管数据库,database,hosting,multiplayer,Database,Hosting,Multiplayer,我正在为iOS和Android移动平台开发一款游戏。我对数据库方面的事情很好奇,因为我正在开发的游戏有一个多人游戏功能,玩家可以玩一个关卡,然后将分数发送给另一个玩家(比如挑战模式)。当其他玩家玩游戏时,该应用程序将查询数据库,并发现已向其发出挑战。然后他接受挑战,等等 对于此功能,我应该使用由(比如)Microsoft/Amazon托管的SQL数据库吗?还是有其他方法可以解决这个问题?让我们在这里尝试一个建设性的答案——尽管最后你没有表示出任何解决问题的努力 基本知识: 你有一个多人游戏 它

我正在为iOS和Android移动平台开发一款游戏。我对数据库方面的事情很好奇,因为我正在开发的游戏有一个多人游戏功能,玩家可以玩一个关卡,然后将分数发送给另一个玩家(比如挑战模式)。当其他玩家玩游戏时,该应用程序将查询数据库,并发现已向其发出挑战。然后他接受挑战,等等


对于此功能,我应该使用由(比如)Microsoft/Amazon托管的SQL数据库吗?还是有其他方法可以解决这个问题?

让我们在这里尝试一个建设性的答案——尽管最后你没有表示出任何解决问题的努力

基本知识:

  • 你有一个多人游戏
  • 它在移动设备上运行
后者很关键-这意味着(a)不可信,(b)可能无法访问(在NAT后面-从未见过公共IP,例如在移动电话环境中)

是的,根据定义,如果你想协调高分等事情,你需要某种外部(中央)数据存储。这是无法避免的,因为IOS(IPhone、IPad)和Android(平板电脑、手机)的服务器性能非常差,任何协调都需要“已知常量”(url、IP地址),至少需要“引导”一个网格

你把它放在哪里,这是一个你必须决定的问题,或者你需要问更多的信息。你所需要的也一样。一个10人同时玩的游戏在要求上与100万人不同。一般来说,使用一些云有助于更快地扩展,但如果你有严重的基本负载,价格就不会那么低

你去哪里也要看情况。如果我选择云,我会选择Azure,因为我的开发都是microsoft stack,Azure将非常好地集成到所有操作、管理和开发工具中。我甚至不确定你会使用什么堆栈(同时使用IOS+Android)——很可能它是基于Java的,而Java。。。。对后端来说有点困难。不是作为一种语言,而是。。。用java很难找到一个像样的主机(web主机),所以你是在一个虚拟机上。您的技术堆栈应该为您运行许多决策—尽量避免仅仅因为您可以而添加越来越多的语言—使事情更难维护


警告一句:永远不要将数据库放在互联网上,始终使用应用程序elvel代理(例如,带有REST/JSON api的网站)。databsae是一个很好的大目标,如果有人攻破了它,基本上所有的游戏都再见了。

“请给我解释一下数据库或编程”?太宽泛了。我认为我的问题相当简洁,我是否应该使用数据库。这个问题与编程无关。那么从另一个角度呢?Yopu询问产品或服务建议,这里不欢迎。伙计,这太幼稚了。显然,它需要某种游戏外部的数据库。您无法协调多个安装,因此数据库必须位于游戏本身以外的其他位置。你基本上是在问食物现在是否必须可以食用。几乎没有。看,在我看来,像你这样的人生活在一个童话世界里,他们不会像我学习编程时那样费心去做——我现在认识的每个人都会这样做:读书,学习他们所做的事情。你链接到的参考是一个很好的咆哮-一个很好的松散者。有些人只是被切割成不做节目,而是提供汉堡。他们仍在努力。讨厌把工作和自己的精力投入其中。然后当他们失败时会感到沮丧。制定更好的问题(复数)并单独提问,你会得到答案。让它们具体化。好吧,如果你做了C#,那么帮你自己一个忙,留在Azure。对Amazon没有什么不利之处,但是如果你看看现在出现的与Visual Studio的一些集成(在本周的构建中公布),那么你会从中获得很多东西。即使价格再高一点。