Общие

  • ✅ Готовая демонстрационная игра с клиентской частью на Unity
  • ✅ Панель администратора со справочными материалов пользования на каждой ее странице с ознакомительным доступом через интернет
  • ✅ Функционал изменение и добавлением данных игроков, npc, объектов в игру через панель
  • ✅ Добавление неограниченных параметров (мана, жизни, заклинания и тд) игровым объектам через панель
Система добавления вспомогательного пользовательского кода программирования через панель и его безопасное выполнение в изолированной среде игрового сервера на языках программирования:
Добавлении указанного кода в админ панели
  • ✅ Для добавления новых игровых  событий (команд игроков) с описание в коде их действия меняющих данные сущности и добавляющее события другим 
  • ✅ Возможность через код изменять события существ с других смежных локаций (в том числе на разных физических машинах)
  • ✅ Изменения сущности при входе в игру (добавление базовых общих событий, добавления в матрицу игровой карты для расчета столкновений и поиска пути и т.п.) 
  • ✅ Изменения сущности при удалении из игры (удаление с матрицы карты и т.п.) 
  • ✅ Изменения сущности и окружающего мира при изменении значения его параметров (анимация урона при уменьшении жизней. анимация смерти по области при нулевой жизни и т.д.)
  • ✅ Создания раздела набора классов и библиотек которые для использования в разделах выше

Работа с игровыми картами
  • ✅ Интеграция с программой Tiled для загрузки догружаемых в игру 2D карт 
  • 🔲 Редактор загруженных карт и создание новых через админ панель 
  • 🔲 Работа с картами 2.5D
  • ✅ Открытый бесшовный мир

  • ✅ Возможность создать к игре сайт и добавления контента (новости, редактирование дизайна страниц)
  • ✅ Просмотр скриншотов игры отдельных игроков через админ панель
  • 🔲 Добавление догружаемой в игру музыки, звуковых фаилов SFX эффектов запускаемой по команде из сервера
  • 🔲 Добавление догружаемой в игру графики анимации npc и персонажа (move, hit и тп) из программы Spriter
  • 🔲 Создание раздела по работе с предметами игрового мира с их спрайтами , характеристиками
  • 🔲 Возможность регистрации в сервисе для создания (в т.ч. бесплатного) своего собственного сервера к игре
  • 🔲 Радел участника сервиса с персональными настройками режима работы сервера (подключение к единой метавселенной, частота кадров игры, подключение сторонних библиотек, увеличение выделенной серверной мощности и макс. числа игроков) 
  • 🔲 AppStore с платными и бесплатными авторскими картами для игр, музыки, анимациями и графикой объектов, библиотек по работе с физикой и тп

Технические

  • ✅ Разработка архитектуры СУБД
Интеграция API с популярными игровыми движками для создания на них клиентской части
  • ✅ Unity
  • 🔲 Unrel Engine
  • 🔲 Phaser
  • 🔲 Godot

  • ✅ Разработка базовой документации по работе с сервером через API
  • Параллельная работа в отдельных потоках (thread) CPU websocket и игрового сервера
  • ✅ Горизонтальное масштабирование локациями (добавление новых физических серверов для уменьшения нагрузки и увеличения максимального числа одновременно играющих)
  • ✅ Контроль работы состояния серверов (остановка-перезапуск в тч удаленных серверов)
  • ✅ Загрузка браузерный игры на сайт для визуальной отладки запросов команд игроков через API сервера в т.ч. до их реализации в клиенте (по аналогии программы Swagger)
  • ✅ Система контроля доступа в админ панель (пользователи, роли)
  • ✅ Система аналитики нагрузки серверов (в том числе расположенных на разных физических машинах) и скорости работы игровых механик
  • 🔲 Добавить систему хранение конфигураций сервера Dotenv
  • 🔲 Реализовать собственный http сервер как приложения
  • ✅ Добавить  систему Unit тестов и UI интерфейс запуска их через панель
  • ✅ Перезагрузка сервера (в т.ч. его кодовой базы) без отключения игроков от игры с доставкой нового контента
  • ✅ Система логирования работы сервера
  • ✅ Резервные копии баз данных
  • ✅ Запуск серверов в режимах профилирования кода c Xdebug 
  • ✅ Асинхронное сохранение во время игры игроков в базу данных (изменившиеся компоненты, события, основные данные)
  • ✅ Сохранение в базу данных во время игры в параллельно работающем  игровому серверу потоке программы
Совместная работа программистов над проектом ядра фреймворка
  • ✅ Автоматическое и ручное обновление кода системы из GIT и зависимых библиотек фреймворка из Composer
  • 🔲 Docker образ Linux системы для развертывания проекта на отдельном сервере
  • 🔲 Возможность смены GIT версии проекта через админ панель
  • 🔲 Вынос отдельных приложения и ядра фреймворка в публичный доступ системы Composer
  • 🔲 Добавления библиотеки Doctrine Migrate для совместной работы над проектом в части изменений в базе и изменения ее версии

Обучение



Демонстрационная панель администратора




Что нового?


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

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, ммо

Кабинет

Игры