Я работаю над небольшой сетевой игрой (только в локальной сети), где один компьютер действует как сервер, а все остальные (включая реальную игру, работающую на том же компьютере) действуют как клиенты. По сути, сервер прозрачен для пользователей, но существует для того, чтобы упростить мне управление состоянием. Основная концепция, которая у меня сейчас есть, заключается в том, что компьютер каждого игрока скажет: «Эй, я хотел бы сыграть» через широковещательную рассылку и будет вести список других игроков в сети. После того, как каждый игрок, запускающий игру, указывает, что он готов, один компьютер выбирается в качестве сервера, а остальные по умолчанию являются клиентами.
При выборе того, какой компьютер в локальной сети использовать в качестве сервера, действительно ли существует какой-либо установленный способ выбрать один и сообщить другим?
Я возился с основной идеей, заключающейся в том, чтобы компьютеры всех игроков просто выбирали случайное число, а тот, у которого наименьший (или самый высокий, не имеет значения), был сервером (восстановление случайных чисел для компьютеров, которые выбрасывают одно и то же число). ). Каждый компьютер получал «выпавший» номер других и мог определить, какой из них будет сервером, после чего мог к нему подключиться. Это кажется грубым, но я не уверен, имеет ли это значение, поскольку все компьютеры физически будут в одной сети в пределах нескольких футов друг от друга. Будет ли это делать работу адекватно или есть значительно лучший способ?