ПРОЕКТ

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

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

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

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

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

Проблема

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

Решение

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

Результат

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

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

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

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

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

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

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

Клиент запросил

  1. Поддерживать многопользовательскую игру с низкой задержкой с использованием WebSockets или аналогичного протокола
  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. В окне результатов достижения и награды отображаются вместе с результатами соревнований.
Совет: Функции турниров и наград можно добавлять как отдельные модули в соответствии с правилами игры.
Результаты и таблица лидеров

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

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

Что дает решение

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

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

В итоге

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

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

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