Три года в одиночку: моя ММОРПГ, мечта со времён «Бойцовского клуба», наконец заработала — хобби 30+ и подросткам, ч. 16

Три года в одиночку: моя ММОРПГ, мечта со времён «Бойцовского клуба», наконец заработала — хобби 30+ и подросткам, ч. 16

Сделать свою онлайн-игру я мечтал ещё со времён «Бойцовского клуба» и текстового «Амулета дракона». Тогда это казалось чем-то недостижимым. В 2021 году я уже был опытным программистом — и решил, что хватит мечтать.

Первым делом я поискал готовый сервис, на котором можно сделать MMO. Не нашёл ни у нас, ни за рубежом: всё существующее рассчитано на короткие матчи, а не на мир, где сотни людей живут одновременно. Значит, придётся строить самому.

От идеи до реализации MVP сервера для Mmo игры прошло 3 года
От идеи до реализации MVP сервера для Mmo игры прошло 3 года
Сервисы на мировом рынке для разработки онлайн игр
Сервисы на мировом рынке для разработки онлайн игр

Что пришлось построить

Я хотел, чтобы в игре нельзя было жульничать, поэтому всё решает сервер. Игрок только говорит, что хочет сделать, а сервер сам считает, получилось ли.

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

Но раз вся логика на сервере, её нужно как-то менять. Так появился редактор механик прямо в браузере.

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

Геймдизайнер не станет учить программирование — ему нужны цифры. Так появился редактор существ и баланса.

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

Серверу нужно понимать, где стены и куда может пройти монстр. Так появилась загрузка карт из популярного бесплатного редактора.

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

И только в самом конце — масштаб: чтобы сотни и тысячи игроков жили в одном бесшовном мире, разложенном по разным машинам.

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

Когда тебя критикуют

Когда я писал об этом раньше, читатели не раз сомневались: а выдержит ли? Это задевало. Но словами такой спор не выиграть, поэтому я написал панель замеров. Она показывает время каждой механики, отправки пакетов и обмена между частями сервера — до тысячной доли миллисекунды.

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

Итог такой: скромный сервер с двумя ядрами и двумя гигабайтами памяти держит около трёхсот игроков разом. А таких серверов можно поставить сколько угодно, и мир останется единым. Проверял я это и в дороге — от юго-восточной Африки до Индии, на медленной связи.

Что получилось

Показательная игра пока скромная: ни сюжета, ни музыки, механик мало. Но сервер одинаково работает для браузера, компьютера и телефона. А поверх него можно менять не только механики, но и целый набор правил игры.

Три года в одиночку: моя ММОРПГ, мечта со времён «Бойцовского клуба», наконец заработала — хобби 30+ и подросткам, ч. 16
3 года разработки MMO RPG сервера игры в одном слайде
3 года разработки MMO RPG сервера игры в одном слайде

За три года вышел своего рода конструктор — как для сайтов, только для онлайн-игр. И я стою перед выбором: развивать инструменты для других или делать на них свою игру. А ещё мне очень хочется делать это уже не одному — вместе с теми, кто так же мечтал о своей MMO.

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

А вам бы пригодился такой конструктор? Или вы бы тоже начали со своего сервера?

История:

  1. Введение
  2. Масштабируемость и асинхронность
  3. WebSocket
  4. Redis
  5. LUA и JavaScript
  6. Выбор технологий, протокола и архитектурный шаблон Entity Component System
  7. Игровые локации (тайловые карты)
  8. Клиентская часть на Unity
  9. Игровые серверные механики
  10. Открытый бесшовный мир в 2D игре
  11. FPS, Ping, паузы между командами, интерполяция и экстраполяция
  12. Очереди и параллельное программирование на CPU
  13. Event-driven паттерн, JSON-RPC и почему не сервисная (SOA) архитектура
  14. Сетевая карта и задержка кадра (Latency frame) по RFC 2544 (1242)
  15. Создание сервера для онлайн ММО игр на PHP
  16. Готовое MVP сервиса 2D MMO RPG игр (realtime)
  17. Я научил ИИ делать мою MMO: игровая фича теперь рождается из одного описания
  18. Конвейер контента для MMO: импорт анимации, экипировка и обновление игры без патчей
  19. Каталог ассетов и git: как командой вести игру в облаке
  20. Как я тестирую код, который пишет ИИ: контракты вместо тестов
  21. Бесшовный мир: как карты MMO сшиваются в одно целое
  22. Сколько обходится содержание одного игрока
88