Как связать два устройства с живым сервером ip, а не с локальным хостом в Godot 3.1? - PullRequest
0 голосов
/ 13 апреля 2019

Я использую Godot 3.1. Создание игры для двух игроков: один игрок сам, а второй игрок - сервер (игрок другого устройства).

Теперь, как подключить два игрока к сети с живым сервером?

Я создаю одну демонстрацию из двух игроков, соединяющихся друг с другом, и это работает найти на локальном сервере IP 127.0.0.0 и порт 4242.

var SERVER_PORT = 4242
var ip_address  = 127.0.0.1

func join_game(name, ip_address):
   # Initializing the network as server
   var host = NetworkedMultiplayerENet.new()
   host.create_client(ip_address, SERVER_PORT)
   get_tree().set_network_peer(host)

func host_game(name):
   # Initializing the network as client
   var host = NetworkedMultiplayerENet.new()
   host.create_server(SERVER_PORT, 2)
   get_tree().set_network_peer(host)

Над кодом правильно работает на локальном сервере, но это ip изменить наш живой сервер, он не работает. замените 127.0.0.1 (localhost ip) на IP-адрес нашего действующего сервера,

1 Ответ

1 голос
/ 20 апреля 2019

Есть два варианта, которые вы хотите сделать, первый - многопользовательский интернет.

Для интернет-мультиплеера

Вам необходимо настроить сервер в облаке и создать API. И сохраните имя сервера и IP-адрес этого сервера в базе данных, чтобы вы могли предоставить клиенту информацию о доступных комнатах. так что вы можете отобразить в лобби список созданных пользователями комнат (доступных серверов) и дать им возможность выбирать, а теперь подключаться к учетным данным данного сервера.

Ссылка для создания API и соответствующего руководства здесь

Другая возможность - многопользовательская игра в автономном режиме.

Локальный мультиплеер в локальной сети

Теперь у вас есть базовая многопользовательская игра, и все, что вам нужно сделать, это просто обнаружить этот сервер через локальную сеть, чтобы сделать это, вы можете транслировать информацию о сервере на все узлы в сети, и всякий раз, когда клиент пытается найти ее, получить эту информацию и попытаться подключиться к этому IP-адресу.

Имейте в виду, что для этого вам нужно создать новый сокет и запустить этот разъем на PORT, отличном от вашей игры.

Поиск класса IP в окне справки по поиску

IP.get_local_addresses() // this will return array of all addresses.
192.168.1.2, 127.0.0.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...