目前我工作在戈多动力的多人游戏与专用服务器。一个前厅包含一定数量的玩家(比如说4)。目标是每次新玩家尝试寻找游戏时都创建一个新的服务器实例。我考虑在不同的端口上创建一个新的服务器实例,但这似乎是一个肮脏的解决方案。我还考虑过只有一个实例来计算每个玩家,并通过id将他们分配给游戏。似乎也很脏。我没有那么多的知识,无论是网络或常见的托管技巧,所以我是开放的任何建议。非常感谢!
ps。给我糟糕英语的sry :p
发布于 2020-02-06 10:58:18
我考虑在不同的端口上创建一个新的服务器实例,但这似乎是一个肮脏的解决方案。
乍一看,这似乎是一个糟糕的解决方案,但实际上它在实践中很常见,而且可以很好地工作。要通过固定数量的服务器来实现这一点,您可以编写一个启动和控制N个服务器实例的shell脚本。Godot专用服务器需要相对较少的RAM,因此,只要您有4GB或更多的RAM,这应该是一个可行的解决方案。当然,CPU和RAM越快,在给定机器上运行的实例就越多。
但是,如果您需要随着流量的增加而扩展服务器的数量,则可能会涉及到更多的服务器。您可以设置一个REST,当它被查询时启动一个新的服务器实例,但是您需要保护它,这样单个客户端就不会请求太多的服务器,从而使一切都变慢或崩溃。一旦所有客户端都离开了服务器,服务器程序将需要被修改以关闭。您还需要以某种方式限制可以在给定时间运行的实例的最大数量。
或者,您可以研究一些解决方案,比如库伯内斯,但是对于那些还没有玩过容器和DevOps的人来说,学习曲线可能很陡峭。
https://stackoverflow.com/questions/60046399
复制相似问题