Как реализовать мастер сервер для проекта на Unreal Engine 4?

Здравствуйте.

Подскажите как реализовать мастер-сервер и в какую сторону вообще смотреть.

У меня есть мультиплеерный проект на Unreal Engine 4. Для проекта есть dedicated сервер (игровой сервер, это функционал движка). Dedicated сервер это как бы сессия, на сервере открыта карта, игроки (клиенты) подключаются к нему и играют на этом сервере.

UE4 dedicated сервер это отдельная exe программа и сейчас запускать её нужно вручную.

Что я сделал:

1. Программу на C# для запуска игровоко сервера с нужными мне настройками - UE4ServerManager
2. web api на php + mysql - здесь хранится список игровых серверов с ip, портом и настройками игры

как все работает:

1. через UE4ServerManager я запускаю игровой сервер на VDS с windows 10
2. сначала запись о новом игровом сервере попадает в БД
3. затем запускается сам игровой сервер
4. игровой сервер сразу подключается к БД, находит сам себя и скачивает свои настройки
5. Клиенты могут достать список серверов из БД и подключиться к нужному.

Сейчас это все довольно неудобно.

Что мне нужно:

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

При этом все это как бы работает на одном VDS. Но я думаю нужен один VDS под мастер сервер и какое-о количество VDS
под игровые сервера.

Как это можно реализовать, на чем, есть какие-то примеры, у кого-то здесь есть опыт реализации такого?
  • Вопрос задан
  • 4171 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Mysterion
Я так понимаю, Вы хотите убрать возможность игрокам выбирать сервер самостоятельно.
В UE4ServerManager сделайте автоматическое добавление адреса в БД после запуска сервера.
При подключении к онлайн-игре из базы берется список всех серверов со свободными слотами и отправляется игрок на менее либо более нагруженный, это уже Вам решать как наполнять сервера.
По CRON проверяйте онлайн серверов. Если свободных слотов всех серверов меньше, например, 5, то создавайте автоматически новый сервер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы