gpt4 book ai didi

iphone - Web 服务器和游戏服务器有什么区别?

转载 作者:行者123 更新时间:2023-12-03 18:30:28 27 4
gpt4 key购买 nike

我想构建一款回合制多人 iPhone 游戏,需要在某个地方有一个游戏服务器来连接玩家并分发世界状态数据。我试图了解游戏服务器如何工作,以便我可以开始设计和构建它。到目前为止,我只有构建 Web 应用程序的经验,所以很自然地我想将游戏服务器设计为以与 Web 服务器类似的方式工作,但是可以吗?

我过去使用的 ASP.NET MVC Web 服务器是客户端向服务器发送对某些网页数据的请求,服务器生成 HTML、XML 或 JSON 并将其返回给客户端HTTP 数据包。对于多人游戏来说,这个过程听起来完全一样,只是客户端可能不会请求 HTML,但请求 XML 或 JSON 数据是有意义的,对吗?

所以我的问题是......

  1. 可以使用 ASP.NET MVC 编写游戏服务器,并使用我设计的 RESTful API 与 Web 服务器一样工作吗?
  2. 是否有比使用包含 XML 或 JSON 数据的 HTTP 数据包更好的方法来请求和接收游戏数据?从游戏服务器返回的数据会很小。
  3. 使用 RESTful API 从网络服务器访问数据很有意义,但使用 RESTful API 从游戏服务器请求游戏数据没有意义,事实上,听起来可能会导致安全问题,您的想法?
  4. 最后,谁能推荐一些好的游戏书籍,其中展示了如何构建一个像样的游戏服务器的示例?

预先非常感谢您的帮助!

最佳答案

主要区别在于 Web 服务器使用(相对)很少或不使用状态信息来生成大量相对静态的内容。即使使用状态,它通常也特定于 session 或用户。读取比写入频繁得多,因此缓存有助于提高吞吐量。您还可以信任网络浏览器以(相对)可靠的方式传递一些状态数据和 cookie。

相反,游戏服务器大多数时间处理来自客户端的更新,保留大量全局状态(所有游戏、玩家、状态状态),并在客户端请求时向客户端发送状态更新。缓存是不可能的,而且您不能相信您的客户会告诉您一天中的时间 - 您必须假设他们会尝试以任何方式进行欺骗。

使用 REST API 不是一个问题,因为您可以使用已经使用的标准身份验证机制。

本书的第 3 章“Beautiful Architecture”描述了 Darkstar(现在 RedDwarf)项目的架构,这是一个用于在线游戏和虚拟世界的可扩展应用服务器。虽然 RedDwarf 的规模比您想要的大得多,但这本书确实描述了创建游戏服务器时需要解决的问题。

关于iphone - Web 服务器和游戏服务器有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com