ПРОЕКТ

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

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

  • Сфера деятельности: Веб-игры
  • Греция Местоположение: Греция
  • Срок разработки: 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 (обертка Node.js для PostgreSQL) подключает платформу к 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. Интерфейс результатов показывает достижения и награды вместе с историей соревнований.
Совет: Функции турниров и наград можно добавить отдельными модулями в соответствии с правилами игры.
Результаты и таблица лидеров

Результаты и таблица лидеров

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

Что предлагает решение

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

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

Итоги

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

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