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