ru en de fr pt

Серверный движок с API для онлайн игр - описание

При создании многопользовательских игр встает вопрос про создание серверной части , способных объединить множество игроков в игровом мире

Часто эту задачу решают в каждой игровой студии созданием своего продукта, нанимая штаб специалистов узкого профиля и способностей, либо используют готовые западные решения которые в целом ограничены их функционалом

Это - Российский проект , который включает в себя само API для взаимодействие между клиентами (игроками) и сервером, а так же систему управления игровым миром (CMS) позволяющий превратить любую offline игру (браузерную, компьютерную , для мобильных устройств Android или ios, консоли и тп ) в online

Отличительные особенности:

  • Подходит для интеграции с играми на любой платформе и языке ( Unity, Unreal Engine, Phaser 2D, Godot, C#, C++, Go, NodeJs, JavaScript, HTML 5 и др)
  • фреймворк (ядро) написано с нуля для данного сервиса
  • архитектура кода была максимально проработана для достижения максимальной производительности 
  • есть режим отладки взаимодействия RPC API в веб версии игры с UI интерфейса (аналог сервиса Swagger)
  • включает дополнительные веб сервисы (создание карт, локализация, промо сайт к игре, редактор игрового баланса, редактор игровых объектов, роли доступа админ панели и др.)
  • хорошие показатели скорости
  • имеется примеры реализации клиентской (игровой) части взаимодействия с API (игра - песочница) на Unity 
  • возможность горизонтального масштабирования (распределение на нескольких физических серверах)
  • минимальные потребления ресурсов (10% CPU одноядерного процессора,  5Мб оперативной памяти на каждые 100 игроков)
  • параллельная обработка разных локаций в игре (асинхронная работа)
  • возможность расширять механики и поведения объектов в игре добавляя их код в веб панели администрирования (без затрагивания самого ядра)
  • База знаний к страница панели администрирования (с возможность ее расширения при выборе покупки лицензии на ваш сервер при дальнейших улучшениях)
  • Goods practics в тч для командной работы при выборе покупки лицензии и ведении своей версии продукта (MVC стандарты , шаблоны проектирования, миграции баз данных, непрерывная интеграция с GIT, адаптеры для баз данных и др.)

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

Так же проект идеально подойдет для создания игр связанных с криптовалютой, blockchain и smart контрактами. Сервер горизонтально масштабируется и может поддерживать нагрузку ограничивающуюся лишь пределами ресурса процессоров физических серверов (имеются тесты скорости)

Ниже приведен краткий перечень возможностей и игровых механик с действиями , расчет который производится на сервере, результаты сохраняются в базах данных и рассылаются всем игрокам online на игровой карте

Попробовать Документация

Возможности на текущий день - жанр RPG

  • ✅ Движение джойстиком (указанием стороны движения)
  • ✅ Движение по клику на область с поиском кратчайшего пути
  • ✅ Коллайдеры (физика, области вокруг объектов с поиском пересечения)
  • ✅ NPC, объекты под удаленным управлением сервера
  • ✅ Режим "блуждания" NPC
  • ✅ Режим боя
  • ✅ Смерть объектов (с созданием предметов на картах - трупов)
  • ✅ Воскрешение
  • ✅ Регенерация
  • ✅ Телепортация
  • ✅ Переход с карты на карту
  • ✅ Асинхронное сохранение игрока в базу в интервал
  • ✅ Авто выход из игры по таймауту

Возможности на текущий день - жанр Стратегии

  • ✅ Создание/улучшение построек
  • ✅ Сборка ресурсов
  • ✅ Работа с NFT
  • ✅ Работа со смарт контрактами

Общие возможности

  • ✅ До 1000 тиков сервера в секунду (при необходимых 60)
  • ✅ Интерполяция
  • ✅ Асинхронная работа с базой данных
  • ✅ Подходит для игр на любой платформе/языке программирования
  • ✅ Websocket протокол на базе TCP
  • ✅ Горизонтальная масштабируемость
  • ✅ Размер пакета до 200 байт (за исключением графических и аудио)
  • ✅ Хранение игровых данных на сервере (карты включая графику, переводы текстов игры, сохранений, балансов)
  • ✅ Панель управления игровым миром CMS  (редактирование, удаление модерация объектов , карт, библиотек)
  • ✅ Загрузку игрового мира и карты по Api в клиент 
  • ✅ Авторизация - регистрация по API из клиента (в тч через крипто кошельки Metamask и др )
  • ✅ Одновременная работа с разными картами (локациями)
  • ✅ Мультиплеер игроков (ни один из которых сервером не является и расчеты подделать не может)
  • ✅ Отладка вызовов API (аналог Swagger) с возможностью отладки в тч на своей (разрабатываемой) игре
  • ✅ Обучающие видео материалы
  • ✅ Бесплатные примеры игр со встроенной технологией обмена
  • ✅ Возможность создавать свои команды пользователей
  • ✅ Возможность создать неограниченное количество характеристик персонажам, монстрам и тп
  • ✅ Возможность добавить свой код на Lua в сервер


Смотрите так же Часто задаваемые вопросы по сервису

Подробнее о тех характеристиках читайте на странице Фреймворк

Для демонстрации работы создана Онлайн игра - Игорь

Новости

Старт продаж наших продуктов и услуг

2023-01-13 01:24:30

Рад сообщить что мы начинаем продавать наши продукты и услуги в частном порядке и оказывать их...

Новая игра на наших продуктах - Metoshi

2023-01-13 01:22:28

На сайт в раздел портфолио добавлена новая игра разработанная с помощью наших продуктов...

Анонс - Бесшовный открытый мир

2022-12-28 14:45:12

Рад сообщить, что игровые карты сервиса будут сделаны по типу "открытого мира", где карты и...

Добавление пользовательского кода Java Script

2022-12-15 18:08:27

Рад сообщить что помимо LUA кода на котором можно писать игровые механики на языке Java Script...

Добавление NPC через LUA код

2022-12-03 21:18:52

Появился видео пример как добавить на карту NPC через код LUA . Эта и другие механики доступны в...

LUA код при входе в игру и добавлении объектов

2022-11-24 18:58:07

Появилась возможность добавить LUA код выполняющийся при добавлении в игру новых игроков, npc,...

Образцы демонстрационных карт и игра The Mana World

2022-11-19 19:33:18

Для тестирования карт и функционала будут использоваться карты из игры с открытом исходным кодом...

Первые результаты интеграция LUA кода

2022-11-19 19:22:16

Рад сообщить что эксперименты по интеграции возможности вносить свой LUA кода в сервер прошли...

Система рассчета PING теперь и в WebGl и новые фичи

2022-11-09 18:47:58

Теперь ping персонажа можно отслеживать и в браузерной версии игры (webgl), так же введена...

Сервер стал быстрее на 80% - асинхронная работа с бд

2022-11-09 18:45:16

Рад сообщить что теперь сохранение игрока (раз в интервал и при выходе) не блокирует сервер как...

Нагрузочное тестирование

2022-11-06 03:48:38

Хочу показать вам результаты нагрузочного тестирования: ·...

Новая механика - ходящие NPC

2022-11-06 03:46:11

Хочу продемонстрировать вам новую игровую механику - блуждание персонажей под управлением...

Ускорение клиентской части

2022-11-06 03:40:28

Рад сообщить что примеры кода к разрабатываемому сервису будут содержать максимальную скорость...

Онлайн редактор карт на WEB

2022-07-18 19:24:29

Ведется разработка web версии редактора карт для 2D.  Конечно, такие вещи уже...

Промежуточные замеры скорости

2022-07-07 17:25:51

Произведены промежуточные замеры скорости (1 секунда = 1000 мс) Данные приведены для сервера с...

Добавление пользовательского LUA кода

2022-07-02 22:40:24

Начата разработка добавления пользовательский скриптов которые можно вешать на объекты. Тем самым...

Все новости

Статьи


  • Создание онлайн сервера для мобильных многопользовательских, realtime 2D игр (жанра RPG и стратегии) с API на PHP ч. 6

    Правительство РФ анонсировало выделение до $50 млрд для выхода РФ в топ-20 стран—разработчиков Игр к 2030 году. Возможно в скором времени разрабатываемый мной сервис наконец увидит свет.

    В этой статье я расскажу как сделать архитектуру приложения игрового сервера быстрой и что использует Unity. Эта статья результаты исследований предыдущих так что в ней будет много ссылок на них.

    Читать далее


  • Создание онлайн сервера для мобильных многопользовательских, realtime 2D игр (жанра RPG и стратегии) с API на PHP ч. 5

    Продолжая серию статей про разработку сервера для онлайн игр (адрес проекта http://my-fantasy.ru) на языке PHP в это части я хочу рассказать про безопасное добавления пользовательского кода для добавления функционала игровых механик. В статье я опишу существующие решения для PHP , сравню скорость работы приведу видео примеры.

    Для тестов будет использовано следующее железо:

    Читать далее


  • Создание онлайн сервера для мобильных многопользовательских, realtime 2D игр (жанра RPG и стратегии) с API на PHP ч. 4

    В предыдущей статья я рассказал о протоколах клиент-серверного взаимодействия и о нагрузке которую может выдержать TCP соединения. В этой статье мы рассмотрим технологию для хранения , записи и публикации данных клиентам - Redis , разберем сколько игроков и NPC мы можем держать с демонстрацией игры, затронем архитектурные решения других игр

    Читать далее


  • Создание онлайн сервера для мобильных многопользовательских, realtime 2D игр (жанра RPG и стратегии) с API на PHP ч. 3

    В 3й части статей я расскажу простым языком про протоколы передачи данных, как они работают и что такое Websocket сервер и какие есть решения для его создания на PHP

    Читать далее


  • Создание онлайн сервера для мобильных многопользовательских, realtime 2D игр (жанра RPG и стратегии) с API на PHP ч. 2

    В этой части будут рассмотрены проблемы с которыми предстоит столкнуться разработчику сервера для онлайн игр

    Для тех кто еще не успел ознакомится с первой частью рублике рекомендую прочитать первую статью где я рассказываю о самой идеи API сервиса.

    Читать далее


  • Создание онлайн сервера для мобильных многопользовательских, realtime 2D игр (жанра RPG и стратегии) с API на PHP ч. 1

    Привет, Хабр! Мой первый пост и я хочу поделиться с вами своей идеей создание сервиса предоставляющего разработчикам игр и студиям платформу для создания онлайн игр! Поехали!

    Читать далее