ПРОЕКТ

Разработка платформы онлайн-игр для многопользовательских игр в реальном времени

Разработка индивидуального ПО, Платформа браузерных игр, Многопользовательский режим в реальном времени, Система подбора игроков, Аккаунты игроков, Размещение игр, Таблицы рейтингов

  • Отрасль: Онлайн-игры
  • Греция Местоположение: Греция
  • Срок разработки: 16 недели
  • Технологии: JavaScript / TypeScript (Node.js), Python
4+ месяца

Платформа онлайн-игр этого клиента обеспечивает доступ к браузерным играм, однако для сессий в реальном времени, размещения игр и управления личностями игроков требовалась единая надежная среда. Это платформа онлайн-игр, в которой управляются названия игр и аккаунты игроков. Она предоставляет игрокам каталог, многопользовательские комнаты и онлайн-сессии. Платформа предназначена для игроков и команды, управляющей игровым процессом.

Краткое содержание

Проблема

Платформе требовалось объединить в одном продукте просмотр игр, идентификацию игроков и игру в реальном времени.

Решение

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

Результат

Платформа создана, чтобы обеспечить игрокам понятный путь от поиска игры до многопользовательской игры.

История клиента

Клиент - платформа онлайн-игр из Греции. Она обеспечивает доступ к браузерным играм и поддерживает многопользовательскую игру, аккаунты игроков и функции сообщества.

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

Запрос был простым: обеспечить многопользовательскую сеть с низкой задержкой в реальном времени, удобный доступ с устройств игроков, общие сервисы идентификации и безопасную серверную инфраструктуру с документацией и поддержкой развертывания.

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

Особое внимание уделялось понятным этапам, ранним предварительным версиям и документации, чтобы команда клиента могла самостоятельно управлять системой.

Клиент хотел

  1. Поддерживать многопользовательский режим с низкой задержкой через WebSocket или аналогичный протокол
  2. Обеспечить доступ из браузера, мобильного интернета, мобильного приложения или нескольких платформ
  3. Обеспечить аккаунты, аутентификацию, профили и общую идентификацию
  4. Обеспечить безопасную инфраструктуру, поддержку развертывания и понятную документацию

Почему готовое ПО не подошло

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

Обзор проекта

Решение было построено вокруг каталога игр и лобби , которые служат игрокам единой точкой доступа к доступным названиям, описаниям и комнатам. В каталоге отображаются загруженные игры и статус комнат, а публичные и приватные комнаты делают доступ понятным.

Для игры в реальном времени был создан синхронизированный многопользовательский экран. socket.io (сетевая платформа Node.js для работы в реальном времени) и WebSocket передают состояние игры, позиции игроков, игровые объекты и сообщения чата между сессией и ее участниками.

Платформа построена вокруг общих аккаунтов, аутентификации и профилей. Благодаря этому личность игрока управляется в одном месте для просмотра игр, подбора игроков, онлайн-сессий и результатов.

Подбор игроков и настройка комнат были выделены в отдельный модуль для рейтингов игроков, подбора участников, видимости комнат и списков игроков. Поэтому платформа поддерживает как открытые сессии, так и приватные комнаты.

Платформа включает соревновательные функции. После игры отображаются результаты, статистика игроков и рейтинги.

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

Основные реализованные функции

  • Каталог браузерных игр и лобби
  • Синхронизированные многопользовательские сессии в реальном времени
  • Публичные и приватные комнаты
  • Аккаунты и аутентификация игроков
  • Профили и общие сервисы идентификации
  • Подбор игроков на основе рейтинга
  • Игровой чат и статус повторного подключения
  • Статистика игроков и таблицы рейтингов
  • Достижения и награды

Можно добавить

+ Турниры + Турниры на выбывание + Цифровую валюту + KYC + Платежи + Рекламу + Управление контентом + Расчет коэффициентов

Кому еще подойдет это решение

Это решение можно адаптировать для других компаний с похожей задачей: объединить игроков, игры, комнаты и соревнования в единый онлайн-опыт.

Платформа размещения игр и игрового сообщества

Задача Платформа должна объединять библиотеки игр, профили игроков, чат и многопользовательские комнаты.
Как помогает решение Решение объединяет просмотр игр, идентификацию, комнаты и активность сообщества на одной платформе.

Сервис покера и игр на мастерство

Задача Ей нужны многопользовательская игра, подбор игроков, турниры и рейтинги игроков.
Как помогает решение Решение обеспечивает онлайн-сессии, рейтинги игроков, результаты, статистику и таблицы рейтингов.

Сервис игр на реальные деньги

Задача Ей нужна соревновательная игра наряду с платежами, проверкой личности или цифровой валютой.
Как помогает решение Модульная платформа сохраняет готовую среду для онлайн-игры и идентификации игроков, позволяя добавить KYC, платежи и награды.

Технологический стек

JavaScript / TypeScript (Node.js)

Серверная и браузерная логика

Этот стек обеспечивает работу веб-платформы и ее серверных сервисов.

Python

Генерация документации

Python поддерживает процесс создания документации платформы.

socket.io

Общение игроков в реальном времени

socket.io передает события в реальном времени между игроками и игровым сервером.

websocket

Сеть WebSocket

Библиотеки WebSocket обеспечивают протокол для постоянных соединений в реальном времени.

mongodb

Данные игроков и игр

mongodb (официальный драйвер MongoDB для Node.js) подключает платформу к данным MongoDB.

mysql

Доступ к реляционным данным

mysql (драйвер MySQL для Node.js) подключает платформу к MySQL при использовании реляционной базы данных.

postgresql

Доступ к данным PostgreSQL

postgresql (платформа PostgreSQL для Node.js) подключает платформу к PostgreSQL.

Sphinx

Техническая документация

Sphinx (генератор документации Python) создает структурированную документацию системы.

Game files

Загрузка игрового контента

Загрузка игр обеспечивает отображение названий и контента в каталоге.

Интеграции

MongoDB

Данные игроков, игр, комнат и сессий могут передаваться через официальный драйвер MongoDB для Node.js.

MySQL

Платформа может обмениваться реляционными данными с MySQL через его драйвер Node.js.

PostgreSQL

Платформа может подключаться к PostgreSQL через платформу PostgreSQL для Node.js.

WebSocket services

Состояние онлайн-игры, позиции игроков, сообщения чата и статус сессии передаются через WebSocket-соединения.

Результат

Игроки быстрее находят игру и присоединяются к комнате

Каталог дает платформе понятную отправную точку для поиска игр. Игроки видят названия и описания игр, а также статус комнат перед присоединением к публичной или приватной многопользовательской комнате.

Как это работает

  1. В каталоге отображаются карточки с названиями и описаниями игр.
  2. Платформа считывает доступные загруженные игры и статус комнат.
  3. В лобби отображаются публичные и приватные комнаты с элементами управления доступом.
Каталог игр и лобби

Каталог игр и лобби

Функции, доступные на этом экране
Просматривать названия игр

Онлайн-сессии синхронизируют игроков

Экран онлайн-игры объединяет игровой мир, юниты игроков и элементы управления в одной сессии. socket.io и WebSocket-соединения передают состояние игры, чат и статус подключения между игроками и сервером.

Игра под управлением сервера поддерживает согласованное состояние сессии, пока игроки взаимодействуют в реальном времени.

Как это работает

  1. socket.io и библиотеки WebSocket передают состояние игры и позиции игроков.
  2. Платформа обновляет юниты игроков и игровые объекты в общем игровом мире.
  3. В сессии отображаются сообщения чата и статус подключения или повторного подключения.
Примечание: Онлайн-экран основан на синхронизированном состоянии игры, а не на отдельном представлении для каждого игрока.
Многопользовательская игра онлайн

Многопользовательская игра онлайн

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

Подбор игроков объединяет подходящих участников

Экран подбора игроков объединяет рейтинги игроков, видимость комнат и личности игроков в одном месте. Игроки могут быть подобраны для сессии или присоединиться к приватной комнате с видимым списком участников.

Такая структура поддерживает как открытый подбор игроков, так и контролируемую настройку комнаты для соревновательной игры.

Как это работает

  1. Платформа считывает рейтинги игроков и информацию о доступных комнатах.
  2. Модуль подбора объединяет игроков и регистрирует их личности.
  3. В представлении комнаты отображаются ее видимость и текущий список игроков.
Подбор игроков и настройка комнаты

Подбор игроков и настройка комнаты

Функции, доступные на этом экране
Включать подбор игроков Объединять игроков

Результаты превращают игру в понятный обзор соревнования

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

Таблица рейтингов дает игрокам общий обзор рейтингов и упрощает отслеживание прогресса в соревнованиях.

Как это работает

  1. Платформа регистрирует результаты игр и статистику игроков.
  2. Модуль таблиц рейтингов рассчитывает и отображает значения рейтинга.
  3. В представлении результатов достижения и награды отображаются вместе с результатами соревнований.
Рекомендация: Функции турниров и наград можно добавить как отдельные модули, когда этого потребуют правила игры.
Результаты и таблица рейтингов

Результаты и таблица рейтингов

Функции, доступные на этом экране
Отслеживать статистику игроков Внедрять систему таблиц рейтингов

Что обеспечивает решение

С помощью этого решения платформа может:

  • Размещать браузерные игры в общем каталоге
  • Запускать синхронизированные многопользовательские сессии в реальном времени
  • Подбирать игроков по рейтингам
  • Обеспечивать аккаунты, профили и общие сервисы идентификации
  • Показывать результаты, статистику и рейтинги в одном месте
  • Добавлять турниры, платежи или награды как отдельные модули

В заключение

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

ЧАСТЫЕ ВОПРОСЫ

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