Добавить новые код механик или контент в игру не отключая игроков ? Нет проблем!

При разработке игрового сервера для игр вся кодовая база для этого хранится в базе и загружается во время старта сервера. 

Такой код срабатывает при:
  • создании/удалении объекта на карте
  • изменения характеристик объекта
  • вызове игровых механик (команд игроков)
  • библиотек с общим для вышеперечисленного функциями
Однако при изменении раньше приходилось перезагружать сервер что бы изменения вступили в силу отключая всех игроков. Теперь в этом нет необходимости - можно менять код,  добавлять через админ панель новых существ, редактировать их данные , менять и добавлять игровые карты - изменения вступят в силу не отключая игроков от игры (при наличии серверной установки на личном сервере так же возможно менять код приложения игрового сервера напрямую внося изменения без перезагрузки)

Все это стало возможно из за того что WebSocket и Игровой сервер (код их приложений) работают в параллельных потоках и перезагрузка Игрового не требует перезагрузки Websocket. Перезагрузка произойдет автоматически при изменений данных в админ панели или вручную при необходимости. В играх где существа не сохраняются в базу данных они появятся в месте их спавна (установленной заранее позиции и карты) - это сделано из за того что существует открытый мир состоящих из разных локаций , которые в том числе могут быть расположены на разном железе (разных физических серверах. VPS) и NPC (игровые существа) могут перемещаться между ними (тем самым можно работать над разными играми, игроки и существа которых могут путешествовать между ними)












Все новости

Что нового?


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

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, шаблон проектирования
Создание сервера для онлайн ММО игр на PHP ч. 12 — Очереди и параллельное программирование на CPU
PHP, Анализ и проектирование систем, Разработка игр, Сетевые технологии, Параллельное программирование, php, go, онлайн-игры, очереди, очереди задач, очереди сообщений, очереди с приоритетом, websocket, unity, ммо

Кабинет

Игры