【问题标题】:Multiple Godot Server Lobbys [closed]多个 Godot 服务器大厅 [关闭]
【发布时间】:2020-05-19 15:10:43
【问题描述】:
目前我正在开发一款带有专用服务器的 godot 驱动的多人游戏。
一个大厅包含一定数量的玩家(比如说 4 个)。目标是创建一个新的服务器实例
每次新玩家尝试寻找游戏时。我想过在不同的端口创建一个新的服务器实例,但这似乎是一个肮脏的解决方案。我还考虑过只有一个实例来计算每个玩家并通过 id 将它们分配给游戏。好像也很脏。
我对网络或常见托管技巧知之甚少,因此我愿意接受任何建议。
非常感谢!
ps。对不起我糟糕的英语:p
【问题讨论】:
标签:
networking
server
multiplayer
godot
【解决方案1】:
我想过在不同的端口创建一个新的服务器实例,但这似乎是一个肮脏的解决方案。
起初这似乎是一个糟糕的解决方案,但实际上它在实践中很常见并且可以很好地工作。要使用固定数量的服务器实现此目的,您可以编写一个 shell 脚本来启动和控制 N 个服务器实例。 Godot 专用服务器需要的 RAM 相对较少,因此只要您拥有 4 GB 或更多的 RAM,这应该是一个可行的解决方案。当然,CPU 越快,RAM 越多,您可以在给定机器上运行的实例就越多。
但是,如果您需要随着流量增加而扩展服务器数量,则可能会涉及更多。您可以设置一个 REST API,在查询时启动一个新的服务器实例,但您需要保护它,这样单个客户端就不能请求太多服务器,从而使一切变慢或崩溃。需要修改服务器程序以在所有客户端离开服务器后关闭。您还需要以某种方式限制在给定时间可以运行的最大实例数。
或者,您可以研究诸如 Kubernetes 之类的解决方案,但对于尚未接触过容器和 DevOps 的人来说,学习曲线可能会很陡峭。