RPS среды выполнения кода Lua





Количество запросов из игрового сервера к среде разработке языка программирования Lua в секунду 70.000 вызовов без учета времени выполнения самого кода (8 ядер процессора дают 700.000)


call (closure отдает фиксированную строку )  70 000 (8 ядер + физ сервер дает x10 к скорости)
call (closure отдает вызов PHP функции сервера с параметрами  созданной с помощью registerLibrary число параметров значимо не влияет на скорость)  60 000 (8 ядер + физ сервер дает x10 к скорости)
callFunction (аналог call но взывает не closure, a именованную глобальную функцию lua) - аналогично параметрам выше

Заметки:
  • данной технологии PHP и LUA не имеют общего хранилища и все данные передаются в виде сообщений двусторонних не передавая ссылки (поэтому напрямую объект не передать, свойства не получить). 
  • Передавая объект из PHP в LUA приходится прибегать к registerLibrary (заранее создавать доступные в LUA функции из PHP) и мета таблицам (аналог объектов) при смене или получения значения которых вызвать указанные функции
  • В боевых условиях (кеш, синхронизация данных всех песочниц и тп) простое игровое событие (регенерация) занимает 0.17мс (6000 запросов в секунду где идет вызов LUA и 2 раза обращение в PHP)
  • В LUA можно сделать некий кеш который кеширует все свойство не тратя время на обращение в PHP для их чтения, однако это сопряжено с тем что при смене свойств в JS или PHP мы должны обновлять их в LUA  однако все эти изменения не обязательно обновлять как только они появились , а отправлять пакетом при следующем запуске LUA
  • В таких языках как С++ язык LUA встраиваемый (как в нашем сервисе) и старые игры в тч и онлайн до сих пор используют LUA для написания часто меняющейся игровой логики (игровые мероприятия, диалоги, квесты)






Что нового?


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

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, шаблон проектирования

Кабинет

Игры