Создание сервиса для Российских онлайн ММО игр
Зачем?
В большинстве своей при создании онлайн взаимодействия (не пошаговые, не где сервер - это один из клиентов, и не PVP, а прям ММО) в мобильных играх (да и не только) есть несколько путей:
- использовать игровой движок в качестве экземпляра сервера (типа тот же UNITY в качестве сервера из коробки или с плагинами типа Mirror) - нужно когда у тебя есть OFFLINE версия игры параллельно (тогда да, иначе никак)
- писать свое (те не универсальный, заточенный под игру)
- использовать сервис типа https://www.photonengine.com/ (аналог которого я и делаю)
Как было бы здорово если был бы простенький сервис с API , что бы к нему была админ панель, куда можно было бы добавлять карты, предметы, анимации, создавать квесты, редактировать баланс...И что бы это это работало с мобильными приложениями на Android , IOS и игры были прям реалтайм рпг, где все друг друга видят и взаимодействуют, что бы не требовало много ресурсов сервера и работало быстро
Как ?
Посмотрев информацию в интернете (найдя лишь эту https://habr.com/ru/company/vk/blog/220359/ старую статью) про то как строится архитектура программы - сервера (не путайте с клиентами, как делать сами игры статей множество) , открыв русскоязычный youtube (где все пересказывают либо эту статью, либо используют игровой движок как сервер) я полез в англо-саксонский :)
Вот пример Человек делал несколько лет на С# но в итоге все работало настолько медленно что он снял эмоциональное видео "Я ненавижу это"
Исторически сложилось что такие вещи пишутся на том же языке что сделан клиент (и теми же людьми), те обычно на С#, C++ .... более редко мне кажется на Nodejs (может для браузерок) и Golang (знал бы его - писал на нем).
Что вроде как код должен компилироваться, что все остальное - медленное для пошаговых и однотипных браузеров и не компилируемые языки - не годятся ! C чем я не согласен и вот вам видео почему :)
Получится ли сделать импортозамещающий продукт
Какие же технологии используются для создание онлайн игр ? Мне известен западный сервис https://www.photonengine.com/ , со сложной документацией, с серьезной работой в клиенте с глубокими познаниями в разработке...
Я считаю что человеку разрабатывающему клиент для онлайн не должен разбираться в хитросплетениях работы сервера : библиотеки для установления соединения с сервером и API список методов с принимаемыми и возвращаемыми параметрами - достаточно.
В добавок дать разработчикам легкий и понятный интерфейс для работы с игровым миром, например загрузка карт (отрисованные, например, в программе Tiled https://www.mapeditor.org/) как в видео
Есть ли результат?
В настоящий момент реализована авторизация, регистрация, загрузка мира (карта с анимациями из админ панели), движение , жизни игрока, смерть игрока , враждебные NPC с поиском пути до игрока минуя объекты и это только начало. Я постоянно придумываю все новые механики и способы убыстрить работу сервера, пример игры на видео:
Буду рад лайку если вам нравится идея моего творчества . Планирую снимать продолжение данной рубрики, где более подробно углубляться в технические аспекты, демонстрировать примеры кода, сравнивать технологии и языки...
Подписывайтесь на мой профиль что бы не пропустить новые статьи