选择LAN上的计算机作为服务器

| 我正在开发一个小型网络游戏(仅LAN),其中一台计算机充当服务器,所有其他游戏(包括在同一台计算机上运行的实际游戏)充当客户端。从本质上讲,服务器对用户是透明的,但是对于我来说,它的存在是为了简化状态管理。我现在的基本概念是,每个播放器的计算机都将通过广播说“嘿,我想玩”,并将保留网络上其他播放器的列表。在每个运行游戏的玩家表明他们已经准备好之后,选择一台计算机作为服务器,其余计算机默认为客户端。 在选择局域网上的哪台计算机用作服务器时,是否真的有确定的方法来选择一台并通知其他人? 我一直在修补一个基本思想,即让所有玩家的计算机都随机选择一个随机数,然后将具有最低(或最高,无关紧要)的一个作为服务器(为滚动的计算机重新生成随机数)同一)。每台计算机将收到其他计算机的“已滚动”号,并可以确定将是服务器,然后再连接到该服务器。看起来很粗糙,但我不确定是否重要,因为所有计算机实际上都位于彼此之间几英尺内的同一网络中。这会做得足够好还是有更好的方法?     
已邀请:
        老实说,我要做出的决定要复杂得多。我倾向于收集一些基本信息来确定哪台计算机具有最大的功能,并选择将其作为服务器(电源是一个模糊的术语,因为功能最强大的计算机将取决于服务器和游戏的要求) 。假设服务器将需要运行其他软件(除了游戏之外,服务器),则有理由认为,除非所有计算机都具有相同的规格,否则将有一种比其他计算机更适合该任务。只要所有节点都对数据运行相同的评估,它们都应就谁应该领导达成共识,否则您可以让创建游戏的第一个节点负责确定哪个节点应该是服务器。 将服务器设置为定期重新评估其服务器资格也可能是值得的。例如,可能会启动后台进程,从而阻碍其充分执行的能力,或者更强大的节点可能加入游戏。显然,转移托管游戏的服务器将是不平凡的,但这是需要考虑的事情。 (请记住,这发生在在线游戏中,即Halo。当与服务器的所有客户端连接都下降到某个阈值以下时,游戏将暂停并在可以提供更好性能的其他服务器上重新建立)。     

要回复问题请先登录注册