多个 Godot 服务器大厅

Multiple Godot Server Lobbys

目前我正在开发一款由专用服务器驱动的 godot 多人游戏。 一个大厅包含一定数量的玩家(比方说 4)。目标是创建一个新的服务器实例 每次新玩家尝试寻找游戏时。我想过在不同的端口创建一个新的服务器实例,但这似乎是一个肮脏的解决方案。我还考虑过只有一个实例来计算每个玩家并通过 id 将他们分配给游戏。似乎也很脏。 我对网络或常见的托管技巧知之甚少,所以我愿意接受任何建议。 非常感谢!

ps。对不起我糟糕的英语 :p

I thought about creating a new server instance at a diffrent port but this seems to be a dirty solution.

乍一看这似乎是一个糟糕的解决方案,但实际上它在实践中很常见并且可以很好地工作。要使用固定数量的服务器实现这一点,您可以编写一个 shell 脚本来启动和控制 N 个服务器实例。 Godot 专用服务器需要相对较少的 RAM,因此只要您拥有 4 GB 或更多 RAM,这应该是一个可行的解决方案。当然,CPU 速度越快,RAM 越多,您在给定机器上可以 运行 的实例就越多。

但是,如果您需要随着流量的增加而扩展服务器的数量,则可能会涉及更多。您可以设置一个 REST API 来在查询时启动一个新的服务器实例,但是您需要对其进行保护,这样单个客户端就不会请求过多的服务器并导致一切变慢或崩溃。服务器程序需要修改为在所有客户端离开服务器后关闭。您还需要以某种方式限制在给定时间可以 运行ning 的最大实例数。

或者,您可以研究 Kubernetes 等解决方案,但对于尚未接触过容器和 DevOps 的人来说,学习曲线可能会很陡峭。