ПроектыФорумОцените

2D MMO RPG игра (realtime) с авторитарным сервером

Страницы: 1 2 Следующая »
#0
22:04, 16 мая 2024

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

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

В процессе разработки я понял что и другим возможно будет интересно создавать игры подобного жанра , но не хватает технических решений в России - это я понял из созданной мной темы на форуме.

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

Игра доступна на сайте http://mmogickru/articles/frontend/index/eyJpZCI6Mn0=


Начнем с того какие коробочные сервисы существуют что бы делать онлайн игры (я не затрагиваю определенные движки или аддоны к ним) - я буду прикладывать ниже из презентации что подготовил по такому случаю тк мне кажется картинками порой объяснить и воспринимать сложное

Изображение

Не так уж и много, согласитесь ? И ни один не предоставляет возможности именно ММО собрать (во всяком случае без доработок)

#1
22:05, 16 мая 2024

Сервер я решил делать авторитарным, ниже на картинке объяснение что это такое

Изображение
#2
22:08, 16 мая 2024

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

Изображение
#3
22:10, 16 мая 2024

Конечно, нужны были инструменты для настройки характеристик, игрового баланса, предметов и прочего (гейм дизайнер не полезет учить PHP и JS — максимум цифры поправит), и так я сделал редактор параметров существ из под WEB (саму игру я делаю на Unity и плагин для связи с сервером что я пишу работает для игр на ПК , Мобильных устройствах и браузерных WEB GL)


Изображение

#4
22:11, 16 мая 2024

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

Изображение
#5
22:12, 16 мая 2024

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

Изображение
#6
22:13, 16 мая 2024

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

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

Изображение
#7
22:13, 16 мая 2024

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

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

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#8
22:15, 16 мая 2024

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

Изображение
#9
22:16, 16 мая 2024

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

Резюмируя получился следующий функционал

Изображение
#10
22:17, 16 мая 2024

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

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

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

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

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

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

Изображение
#11
22:17, 16 мая 2024
Изображение
#12
22:54, 16 мая 2024

Планирую делать игру типа Warspear Online

#13
23:26, 16 мая 2024

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

#14
23:46, 16 мая 2024

HexVoxel
вот у меня и появилась идея дать миру сервис что бы они не пилили свое (там есть ряд архитектурных идей что бы держало много онлайн)

Страницы: 1 2 Следующая »
ПроектыФорумОцените

Тема в архиве.