ч.16 Сервер для 2D MMO RPG игры (realtime) — MVP готов

С 2021 года я начал делать свою MMO игру обнаружив что нет готовых сервисов ни в России, ни за рубежом. Но сделать игру я мечтал со времен "Бойцовского клуба" и текстового "Амулета дракона", вдобавок уже был неплохим программистом.

Так и родилась идея написать свое решение Авторитарного сервера для 2D Mmo RPG игр и , как говорил Илон Маск, «Батут работает»

От идеи до реализации MVP сервера для Mmo игры прошло 3 года
От идеи до реализации MVP сервера для Mmo игры прошло 3 года

Есть сервисы-аналоги, но для ММО они либо не подходили либо требовали существенных доработок и непонятно как их теперь из РФ оплачивать (они для сессионных игр, их исчерпывающий список ниже)

Сервисы на мировом рынке для разработки онлайн игр
Сервисы на мировом рынке для разработки онлайн игр

Сервер нужен был авторитарный (P2P соединения или с проверками на клиенте для жанра MMO был не вариант), для тех кто не знает что это такое пример сравнения серверов ниже

Что такое авторитарный сервер
Что такое авторитарный сервер

Это добавляло с одной стороны сложность (нужны были инструменты для изменения/добавления кода на сервере), так появился инструмент редактирования кода игровых механик - Web IDE

Игровые механики и поведение NPC можно описывать на PHP, LUA и JavaScript
Игровые механики и поведение NPC можно описывать на PHP, LUA и JavaScript

Конечно, нужны были инструменты для настройки характеристик, игрового баланса, предметов и прочего (гейм дизайнер не полезет учить PHP и JS - максимум цифры поправит), и так я сделал редактор существ

Изменение игровых существ и игроков без программирования в MMO RPG
Изменение игровых существ и игроков без программирования в MMO RPG

Нужно было что бы сервер имел представление о мире, его препятствиях для расчета пути NPC (игровых существ под управлением ИИ) и проверки проходимости области, так родилось приложение для загрузки 2D игровых карт

Игровые карты можно добавлять в Mmo RPG через программу Tiled (https://www.mapeditor.org/)
Игровые карты можно добавлять в Mmo RPG через программу Tiled (https://www.mapeditor.org/)

И только в самом конце нужно было позаботиться что бы сервер мог обслуживать и рассылать данные сотням и тысячам игроков, придумать систему оркестрации, горизонтального масштабирования и бесконечного бесшовного 2D мира. Так спустя 3 года разработки вишенкой на торте стала сервисная архитектура, где одни из сервисов выступал работающий в параллели WebSocket сервер

Горизонтально масштабируемый WebSocket сервер для 2D Mmo игры
Горизонтально масштабируемый WebSocket сервер для 2D Mmo игры

Моя разработка в серии статей встретила критику со стороны читателей в вопросе производительности. Требовались инструменты замера скорости работы. Сложность была в том, что т.к. сервер авторитарный таких метрик как PING было не достаточно - сервер тратил время не только на отправку и получение пакетов игроков, но и на вычисления команд игроков, расчета, что делает NPC, периодического сохранение в БД (последнее было вынесено в отдельный сервис).

Я написал приложение, что замеряло все: время отправки / сжатия пакетов, отдельных механик, обмена данными между сервисами - все с точностью до тысячной миллисекунды, а так же использование CPU и RAM.

Панель замеров Perfomance 2D MMO игр
Панель замеров Perfomance 2D MMO игр

Если не вдаваться в детали то на VPS за 10$ (Ubuntu, 2 CPU, 2Gb RAM) могут одновременно играть +-300 игроков, формулы расчета есть на моем сайте.

И таких серверов может бесконечно и это останется единый бесшовный мир, где игроки со всего мира будут играть вместе (я лично проехал от юго-восточной Африки до Индии при PING 150-250 добавляя интерполяцию и экстраполяцию)

Демонстрационная игра пока простенькая, не замысловатая, без сюжета и музыки, мало механик, но игровой сервер одинаково хорошо работает как для браузерных игр, так и для версии на ПК, мобильных устройствах (код я выложил на GitHub). С готовой архитектурой сервера я не вижу того, что потребовало бы выход за рамки Web IDE

ч.16 Сервер для 2D MMO RPG игры (realtime) — MVP готов

Конечно, есть и 3D игры и кому, то хочется нестандартных режимов, новых жанров (типа стратегий или баталий). Для этого я сделал возможность не только редактировать отдельные механик (выстрел, движение к цели, дебафы, крафт, прокачка и т.д), но и самим, из личного кабинет на WEB, не погружаясь в иерархию всего проекта, приложений, сетевого взаимодействия редактировать тот код, который отвечает только за игровое взаимодействие - я назвал это Игровые Фреймворки (пока доступен только для RPG игр, в планах матчмейкинг и стратегии)

3 года разработки MMO RPG сервера игры в одном слайде
3 года разработки MMO RPG сервера игры в одном слайде

Как видите игровой сервер просто шлет пакеты и ошибочно полагать что любой с ходу может сделать онлайн игру более чем на 20 человек (такое ограничение у западных аналогов).

За 3 года разработки был проделан колоссальный труд и получилось что-то типа Тильды / Битрикса, но для онлайн игры.

Я стою перед выбором: сконцентрироваться над B2B продуктом предоставляя новые инструменты разработчикам или делать свою игру, и я спрашиваю вас:

Нужен ли Вам - разработчикам игр подобный сервис ?

Ваша обратная связь в комментариях будет ценна для меня. Я так же рассматриваю партнерство сделать MMO игру в команде.

В моих планах сделать сервис для 3D игр, добавление без программирования в игру музыки, анимацию героев, список друзей, новые игры

Планы разработки сервиса для 2D Mmo RPG игр <a href="https://api.dtf.ru/v2.8/redirect?to=http%3A%2F%2Fmmogick.ru%2F&postId=2679136" rel="nofollow noreferrer noopener" target="_blank">http://mmogick.ru/</a> на 2024 год
Планы разработки сервиса для 2D Mmo RPG игр http://mmogick.ru/ на 2024 год
Планы разработки сервиса для 2D Mmo RPG игр <a href="https://api.dtf.ru/v2.8/redirect?to=http%3A%2F%2Fmmogick.ru%2F&postId=2679136" rel="nofollow noreferrer noopener" target="_blank">http://mmogick.ru/</a> на 2024 год
Планы разработки сервиса для 2D Mmo RPG игр http://mmogick.ru/ на 2024 год

История:

88
86 комментариев

Нужен ли Вам - разработчикам игр подобный сервис ?Нет, нахуй не надо

1

Всё и так можно реализовать в юнити, да и производительнее будет

я правильно понимаю вы пишите что знаете как сделать онлайн игру быстрее, дешевле по затратам на разработку и это будет ММО RPG с бесконечным открытым миром, миром тулсетами для команды, но пока у вас только так ? (фото из статьи вашего профиля)

1. Почему в тестовой игре Igor новые аккаунты спавнятся на непонятном острове за препятствием, где не могут двигаться?
2. Вход вторым новым игроком выдаёт анлогин первому с ошибкой (на скрине)

это не конечная игра, а прототип. Потыкать в живую можно с демо аккаунтом в браузерной версии http://my-fantasy.ru/articles/frontend/index/eyJpZCI6Mn0=

Я в течении часа обновлю мобильную и ПК версию, заменю карту стартовую