Задать вопрос

Как правильней создать структуру игровых серверов?

Добрый день. Разрабатываю игровой проект - комплекс игровых серверов (по одной игре). И не знаю как лучше реализовать "платформу", что бы был лёгкий доступ к данным, правильно и шустро работало всё...

Что есть/планируется:
1. Сайт + форум. Включает БД для сайта. Основной сайт, где будут новости, публикации и т.п. А так же API для авторизации (login-server) со стороны игровых серверов.
2. Игровой сервер. Находится вся логика, обработка данных и т.п.). Все запросы с БД проходят через API сайта.

И вот теперь проблема в следующем: Если эти 2 пункта легко реализуемы и нет особых проблем с интеграцией между ними, то при добавлении ещё серверов - в БД сайта станет слишком тесно. Да и отклик будет только расти, а на игровых серверах всё должно летать.

По этому есть идея разделить на следующую структуру:
  1. Сайт/форум, API (login-server) + БД.
  2. Игровой сервер
    1. БД



И таким образом будет доступ к данным сервера через сайт (что-то типо админки/логирования будет на сайте).

И после этого появились ещё вопросы:
1. А правильно ли я делаю разделение? Может есть варианты по улучшению?
2. Какую БД лучше тогда использовать? Для сайта Mysql, а для игровых серверов? Стоит ли брать Mysql для этого или лучше использовать какой-нибудь MongoDB?

На всякий случай мой стек:
Сайт, Форум, API - Laravel, Mysql, VueJS
Игровые сервера - NodeJS

Хотелось бы услышать ваше мнение. Заранее спасибо.

UPD: Только придумал вот такую схему: https://drive.google.com/file/d/13QlG9TALJecnlBIki...
  • Вопрос задан
  • 403 просмотра
Подписаться 5 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Erik_Mironov
@Erik_Mironov
Старые вопросы: *Dies from cringe*
Рекомендую к прочтению. Статья довольно противоречивая и после прочтения возникают некоторые вопросы, но в целом неплохо описывает архитектуру многих ММО на примере java - эмулятора Lineage 2. Транслировать на ваши реалии проблем не составит, я думаю.
https://habr.com/ru/post/550424/
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Если проект большой, то есть смысл разделить не на две, а на 4+. Логин-сервер, сайт, форум и сколько-то игровых серверов.
Даже если они физически в вас на двух компах, чтобы была возможность быстро разнести.

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

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

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