С 2021 года я начал делать свою MMO игру обнаружив что нет готовых сервисов ни в России, ни за рубежом. Но сделать игру я мечтал со времен «Бойцовского клуба» и текстового «Амулета дракона», вдобавок уже был неплохим программистом.
Так и родилась идея написать свое решение Авторитарного сервера для 2D Mmo RPG игр и, как говорил Илон Маск: «Батут работает».
В процессе разработки я понял что и другим возможно будет интересно создавать игры подобного жанра , но не хватает технических решений в России - это я понял из созданной мной темы на форуме.
В этой теме я хочу понять стоит ли тратить силы на то что бы дать решение людям или сосредоточится на разработки игры.
Игра доступна на сайте http://mmogickru/articles/frontend/index/eyJpZCI6Mn0=
Начнем с того какие коробочные сервисы существуют что бы делать онлайн игры (я не затрагиваю определенные движки или аддоны к ним) - я буду прикладывать ниже из презентации что подготовил по такому случаю тк мне кажется картинками порой объяснить и воспринимать сложное
Не так уж и много, согласитесь ? И ни один не предоставляет возможности именно ММО собрать (во всяком случае без доработок)
Сервер я решил делать авторитарным, ниже на картинке объяснение что это такое
Это добавляло с одной стороны сложность (нужны были инструменты для изменения/добавления кода на сервере), а я по профессии WEB разработчик. Так появился инструмент редактирования кода игровых механик — Web IDE
Конечно, нужны были инструменты для настройки характеристик, игрового баланса, предметов и прочего (гейм дизайнер не полезет учить PHP и JS — максимум цифры поправит), и так я сделал редактор параметров существ из под WEB (саму игру я делаю на Unity и плагин для связи с сервером что я пишу работает для игр на ПК , Мобильных устройствах и браузерных WEB GL)
Нужно было что бы сервер имел представление о мире, его препятствиях для расчета пути NPC (игровых существ под управлением ИИ) и проверки проходимости области, так родилось приложение для загрузки 2D игровых карт.
И только в самом конце нужно было позаботиться что бы сервер мог обслуживать и рассылать данные сотням и тысячам игроков, придумать систему оркестрации, горизонтального масштабирования и бесконечного бесшовного 2D мира. Так спустя 3 года разработки вишенкой на торте стала сервисная архитектура, где одни из сервисов выступал работающий в параллели WebSocket сервер
Требовались инструменты замера скорости работы. Сложность была в том, что т.к. сервер авторитарный таких метрик как PING было не достаточно — сервер тратил время не только на отправку и получение пакетов игроков, но и на вычисления команд игроков, расчета, что делает NPC, периодического сохранение в БД (последнее было вынесено в отдельный сервис).
Я написал приложение, что замеряло все: время отправки / сжатия пакетов, отдельных механик, обмена данными между сервисами — все с точностью до тысячной миллисекунды, а так же использование CPU и RAM.
Если не вдаваться в детали то на VPS за 10$ (Ubuntu, 2 CPU, 2Gb RAM) могут одновременно играть +-300 игроков, формулы расчета я опубликовал в интернете на сайте.
И таких серверов может бесконечно и это останется единый бесшовный мир, где игроки со всего мира будут играть вместе (я лично проехал от юго-восточной Африки до Индии при PING 150-250 добавляя интерполяцию и экстраполяцию).

Демонстрационная игра пока простенькая, не замысловатая, без сюжета и музыки, мало механик, но игровой сервер одинаково хорошо работает как для браузерных игр, так и для версии на ПК, мобильных устройствах (код я выложил на GitHub). С готовой архитектурой сервера я не вижу того, что потребовало бы выход за рамки Web IDE.
Конечно, есть и 3D игры и кому, то хочется нестандартных режимов, новых жанров (типа стратегий или баталий). Для этого я сделал возможность не только редактировать отдельные механик (выстрел, движение к цели, дебафы, крафт, прокачка и т.д), но и самим, из личного кабинет на WEB, не погружаясь в иерархию всего проекта, приложений, сетевого взаимодействия редактировать тот код, который отвечает только за игровое взаимодействие — я назвал это Игровые Фреймворки (пока доступен только для RPG игр, в планах матчмейкинг и стратегии).
Резюмируя получился следующий функционал
Как видите игровой сервер не просто шлет пакеты и ошибочно полагать что любой с ходу может сделать онлайн игру более чем на 20 человек (такое ограничение у западных аналогов).
За 3 года разработки был проделан колоссальный труд и получилось что-то типа Тильды / Битрикса, но для онлайн игры.
Я стою перед выбором: сконцентрироваться над B2B продуктом предоставляя новые инструменты разработчикам или делать свою игру, и я спрашиваю вас:
Нужен ли Вам — разработчикам игр подобный сервис?
Ваша обратная связь в опросе ниже и в комментариях будет ценна для меня. Я так же рассматриваю партнерство сделать MMO игру в команде.
В моих планах сделать сервис для 3D игр, добавление без программирования в игру музыки, анимацию героев, список друзей, новые игры
Планирую делать игру типа Warspear Online
Стоял перед похожими задачами, в итоге запилил свое. И да, вебсокет дороже по железу, чем голый TCP, особенно на миллионном онлайне, плавали-знаем(с)
HexVoxel
вот у меня и появилась идея дать миру сервис что бы они не пилили свое (там есть ряд архитектурных идей что бы держало много онлайн)
Тема в архиве.