Краткое содержание
Платформе требовалось объединить навигацию по играм, идентификацию игроков и игру в реальном времени в одном продукте.
Решение стало модульным продуктом для интернет-игр с каталогом, многопользовательскими сессиями в реальном времени и общими аккаунтами.
Платформа создана так, чтобы дать игрокам понятный путь от поиска игры до игры с другими участниками.
История клиента
Клиент - платформа интернет-игр из Греции. Она предоставляет игрокам доступ к браузерным играм и поддерживает игру с другими участниками, аккаунты игроков и функции сообщества.
Названия игр, комнаты и идентификация игроков должны оставаться связанными, пока игроки просматривают игры, подключаются к комнатам и играют вместе.
Задача была ясной: обеспечить многопользовательскую сеть с низкой задержкой в реальном времени, удобный доступ с разных устройств, общие сервисы идентификации и безопасную инфраструктуру с документацией и поддержкой развертывания.
Решение сформировано как модульная платформа с каталогом игр и лобби. Также были добавлены функции синхронизированной игры, подбора игроков, настройки комнат, результатов и таблиц лидеров.
Особое внимание уделялось понятным этапам, ранним проверкам и документации, чтобы команда клиента могла самостоятельно управлять системой.
Клиент запросил
- Поддерживать многопользовательскую игру с низкой задержкой с использованием WebSockets или аналогичного протокола
- Предоставить доступ через браузер, мобильный интернет, мобильное приложение или несколько платформ
- Предоставить аккаунты, аутентификацию, профили и единую идентификацию
- Предоставить безопасную инфраструктуру, поддержку развертывания и понятную документацию
Почему готовое программное обеспечение не подошло
Готовые платформы поддержки игроков в основном предназначены для обслуживания клиентов игровых студий и издателей, а не для объединения навигации по играм, комнат, синхронизированной игры и соревнований в одном продукте. Требовалась индивидуальная платформа, охватывающая игру, аккаунты, подбор игроков, рейтинги и другие правила игровой услуги клиента.
Обзор проекта
Решение построено вокруг каталога игр и лобби который дает игрокам единую точку доступа к доступным названиям, описаниям и комнатам. В каталоге отображаются загруженные игры и состояние комнат, а варианты открытых и приватных комнат обеспечивают понятный путь для подключения.
Для игры в реальном времени создана синхронизированная многопользовательская среда. socket.io (система сетевого взаимодействия в реальном времени для Node.js) и WebSocket передают состояние игры, позиции игроков, игровые объекты и сообщения чата между сессией и ее игроками.
Платформа построена вокруг общих аккаунтов, аутентификации и профилей. Благодаря этому личность игрока сохраняется в одном месте при навигации, подборе соперников, игре в реальном времени и просмотре результатов.
Подбор игроков и настройка комнат оформлены как отдельный модуль для рейтингов игроков, подобранных участников, видимости комнат и списков игроков. Поэтому платформа поддерживает как открытые сессии, так и приватные комнаты.
На платформе реализованы функции соревнований. После игры отображаются результаты, статистика игроков и рейтинги.
Достижения и награды размещаются рядом с результатами соревнований, а документация и поддержка развертывания дают команде клиента понятный способ управления системой.
Реализованные ключевые функции
- Каталог браузерных игр и лобби
- Синхронизированные многопользовательские сессии в реальном времени
- Открытые и приватные комнаты
- Аккаунты и аутентификация игроков
- Профили и общие сервисы идентификации
- Подбор игроков на основе рейтинга
- Игровой чат и восстановление состояния подключения
- Статистика игроков и таблицы лидеров
- Достижения и награды