我想为游戏中心构建一款 iPhone 游戏,目前正在研究其中的服务器部分。我通过示例学习得最好,但我很难找到任何简单游戏服务器的示例来演示......
- 数据如何格式化并发送到服务器以及如何接收
- 如何验证正在发送/接收的数据以避免玩家作弊等。
- 游戏服务器代码如何与数据库一起构建
我想使用 Ruby on Rails 构建游戏服务器,但我会选择使用任何框架的示例来了解这些概念是如何工作的。有谁知道有任何书籍或在线资源涵盖了这一点或显示了一些有关如何构建游戏服务器的示例代码?
我不得不认为 iPhone 上的大多数多人游戏都需要玩家服务器,但我似乎找不到任何讨论如何构建服务器的资源。我发现讨论构建多人游戏的资源(包括苹果的文档)都说了同样的事情,“开发游戏服务器超出了本书的范围,但我们将重点关注连接到此类服务器所需的客户端代码。”
预先非常感谢您的帮助!
EDIT:
好的,在阅读您的编辑后,我认为 Node.js 应该可以很好地完成这项工作。
关于你的观点:
我不知道配对到底是如何工作的(猜猜你会得到一对密钥左右来验证请求),但无论使用哪种编程语言,它都应该很难实现。
简单:设置服务器,处理连接,保存正在运行的游戏列表,为每个游戏跟踪状态(玩家,时间等),最大应该是(取决于您使用的消息协议..) 150 -200行
当您认为游戏已准备就绪时,只需向给定游戏中的每个玩家发送某种就绪事件(就像每个人都触摸了“我准备好了”按钮左右)
-
好的,这里有一些提示:
跟踪服务器上剩余/已过的时间并将其发送给玩家,计时器很快就关闭了(我在大约 3 分钟内关闭了 4-5 秒)
为了防止作弊,请验证服务器上的动作,这对于益智游戏来说应该相当容易。您还可以检查每次移动之间的时间,所有低于 50 毫秒的内容都应该是可疑的,但这主要取决于谜题的难度。
通过检查服务器上的动作,这也很容易,您不必依赖客户端向您发送“看我完成了”消息。
同样简单,只需发送带有随附数据的事件并将点记录到数据库中。
最重要的一点显然是防止作弊,对于一款电脑就能轻松解出答案的益智游戏来说,想要完全杜绝作弊是不可能的。不过,通过上面的技巧,你可以让它变得更难。
但请记住,当游戏很简单时,你无法阻止人们在高分上作弊,在游戏中构建越来越多的保护是没有意义的。专注于游戏,做到这一点对人类来说有趣且简单 but 对于计算机来说是复杂且不可预测的.
就数据库而言,呃...我想你可以使用 MongoDB,但我还没有在 Node 下使用它。
哦,如果您想了解一下 Node.js 可以做什么,这是我构建的游戏:
http://github.com/BonsaiDen/NodeGame-Shooter http://github.com/BonsaiDen/NodeGame-Shooter
所有逻辑都在服务器上运行,客户端只需绘制他们知道的东西,我在两个晚上内就建立并运行了一个可玩的原型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)