Принцип работы клиентской части авторитарного ММО 2D РПГ сервера





  1. Вся логика находится на сервере (на клиенте мы можем лишь кешировать часть данных, например оставшееся время команды игрока что бы не слать лишний раз команды)
  2. Клиентская часть ничего не знает о сервере - Сервер отправляет изменившиеся поля существ, клиент визуализирует (смену анимации, жизней, позиций и прочего)
  3. Все входящие пакеты приходят сжатыми т.к. большие, все исходящие отправляются в виде строк
  4. На любом клиенте должна быть включена опция отправки пакетов с сетевой карты как только они поступают - отключение алгоритма Nagle в сокетах (NoDelay = true)
  5. Все взаимодействие клиент - сервер происходит по протоколу WebSocket (улучшенный протокол TCP автоматический сортирующий порядок пакетов и делящий длинные) 
  6. В клиенте должна быть заложена 
    • интерполяция, зависящая от PING игрока (позволять слать команды раньше на величину 1/2 PING 
    • экстраполяция (определенные события, такие как движения, продолжаются анимироваться с последними параметрами если был отправлен пакет, но ответ еще не пришел)






Что нового?


Статьи про разработку продукта

PHP, Разработка игр, Unity, Unreal Engine, Облачные сервисы, php, unity, mmo, mmorpg, сервер для игры

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

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

Читать далее
ч.15 Игровой авторитарный сервер на процессах и его архитектура в картинках — Создание сервера для онлайн ММО игр на PHP
PHP, Программирование, Разработка игр, Unity, Unreal Engine, php, игровой сервер, разработка сервисов, онлайн-игры, разработка онлайн-игр
Создание сервера для онлайн ММО игр на PHP ч.14 — Сетевая карта и задержка кадра (Latency frame) по RFC 2544 (1242)
PHP, Проектирование и рефакторинг, Разработка игр, Сетевые технологии, Параллельное программирование, php, go, c#, онлан игры
Создание сервера для онлайн ММО игр на PHP ч.13 — Event-driven паттерн, JSON-RPC и почему не сервисная (SOA) архитектура
PHP, Программирование, Проектирование и рефакторинг, Разработка игр, Алгоритмы, php, event-driven, разработка игр, mmo, mmorpg, шаблон проектирования

Кабинет

Игры