Инвентарь, чат и пошаговые матчи: самая насыщенная неделя обновлений horizOn
Коротко о главном
В horizOn появились инвентарь, значения игроков, достижения, друзья, группы, чат и пошаговые матчи с новыми SDK для Unity, Godot и Unreal.
Рано или поздно каждой онлайн-игре нужен один и тот же набор систем. Место для хранения того, что принадлежит игроку. Валюта, которую невозможно продублировать из-за сбоя сети. Достижения, которые выдаются ровно один раз. Список друзей, чат, может быть, матч против того, кто играет в обеденный перерыв. Каждая из этих систем, отдельный небольшой проект, и вместе они могут съесть месяцы разработки до того, как сама игра станет хоть немного лучше.
На этой неделе horizOn сделал большой шаг именно по этому списку. Server 1.73 и Dashboard 1.111 добавляют полный набор экономических и социальных функций, а SDK для Unity, Godot и Unreal получили новые версии для их использования. Вот что вышло между 22 и 28 октября.
Серверная экономика для вашей игры
Новые экономические функции охватывают те части игры, где ошибки стоят реального доверия: что игроки владеют, что зарабатывают и что тратят.
- Предметы и инвентарь. Создайте каталог предметов в dashboard и позвольте игрокам хранить, покупать и использовать предметы. Базовые данные предметов общие, а каждый экземпляр хранит только то, что делает его отличным от других, что держит инвентарь компактным.
- Значения игроков. Балансы вроде монет, кристаллов или энергии, плюс предложения, которые обменивают одно значение на другое.
- Достижения. Прогресс, разблокировки и награды. Награда доставляется через inbox игрока, так что она не теряется, если игра закроется в неподходящий момент.
- Статистика игроков. Счетчики вроде сыгранных матчей или побежденных врагов, обновляемые атомарно и настраиваемые в dashboard.
- Подарочные коды с наградами в виде значений. Подарочный код теперь может напрямую выдавать значения игрокам, и сервер полностью контролирует весь процесс активации.
Почему здесь важна "атомарность"
Если вы создаете экономику самостоятельно, сложная часть не в хранении числа. Сложность в том, что происходит, когда запрос прерывается на полпути. Игрок нажимает "купить", монеты списываются, соединение обрывается, и предмет так и не приходит. Или клиент повторяет попытку, и награда выдается дважды. Исправление этого после запуска означает тикеты в поддержку, ручные возвраты и игроков, которые больше не верят цифрам на своем экране.
В horizOn покупки, получение наград и изменения значений либо завершаются полностью, либо не происходят вовсе. SDK сохраняют изначальное намерение действия, так что повторная попытка после потери соединения завершает ту же операцию, а не начинает новую.
Лучшие практики для вашей первой экономики
- Начните с одной валюты и горстки предметов. Небольшой каталог проще балансировать и проще тестировать.
- Никогда не доверяйте клиенту балансы. Пусть сервер изменяет значения, а клиент используйте как экран отображения.
- Тестируйте путь сбоя специально. Закройте игру во время покупки и проверьте, что результат либо полный, либо не тронут.
- Используйте workbench в dashboard. Вы можете проверить значения игрока, предметы и достижения в одной связанной записи игрока, когда кто-то сообщает о проблеме.
Друзья, группы, чат и пошаговые матчи
Социальная часть появилась в том же релизе.
- Друзья. Запросы в друзья, отношения и публичный поиск игроков, например, через коды друзей.
- Группы. Гильдии, кланы или команды с членством и администрированием.
- Чат. Размещенный чат с подтверждениями сообщений. История хранится на устройстве игрока, а dashboard включает инструменты модерации, так что вы можете вмешаться, когда разговор идет не так.
- Матчи. Асинхронные пошаговые матчи. Игроки делают свой ход, закрывают игру и возвращаются позже. Ранкед-заходы можно восстановить после прерывания.
Пошаговая игра подходит для огромного спектра игр: карточные и настольные игры, дуэли-головоломки, стратегии и все, во что люди играют по несколько минут. Связь идет через WebSocket соединение, и игроки получают уведомление, когда наступает их ход.
Торгуйте, дарите и общайтесь с игроками
Три дополнительные функции связывают игроков друг с другом и с вами.
- Marketplace. Игроки могут выставлять и обменивать предметы. Предметы надежно удерживаются во время сделки и возвращаются, если она не проходит. Прежний лимит на чеки на игрока был снят.
- Inbox игрока. Рассылайте объявления всем игрокам или доставляйте награды, которые игроки забирают сами. Dashboard имеет защищенный вид рассылки и инструменты поддержки.
- Shared Objects. Данные, над которыми несколько игроков работают вместе, с проверкой ревизий, так что два одновременных изменения не перезаписывают друг друга.
Новые версии для Unity, Godot и Unreal
Все три SDK для движков поддерживают новые функции:
- Unity SDK 1.12 добавляет менеджеры для предметов, значений игроков, достижений, друзей, групп, чата, матчей, marketplace, inbox и shared objects с примерами, которые можно запустить сразу.
- Godot SDK 1.11 добавляет тот же набор на GDScript, включая session-safe менеджеры и примеры сцен.
- Unreal SDK 1.10 добавляет типизированные C++ клиенты и Blueprint ноды. Последующие релизы до 1.10.3 заставляют плагин загружаться на UE 5.6 и новее без запроса о несовместимом плагине, сохраняют Import Config в DefaultGame.ini и исправляют упаковку для standalone сборок.
Если вы работаете с AI-ассистентом для кодирования, MCP Server 1.9 предоставляет новые функции как инструменты, от инвентаря и матчей до групп, inbox и модерации чата. Ваш ассистент может посмотреть, как работает функция, вместо того чтобы угадывать.
Перенесите проект на свой собственный сервер
Некоторые команды начинают на horizOn Cloud, а потом хотят запустить свой бэкенд самостоятельно. Этот переход только что стал намного проще. Dashboard 1.114 и Server 1.75 позволяют скачать содержимое проекта одним файлом, а Simple Server 1.6 импортирует его.
Simple Server 1.5 также получил новые функции на этой неделе, с поддержкой SQLite и MySQL для предметов, значений игроков, достижений, статистики, друзей, групп, матчей, marketplace, inbox и shared objects. Чат остается зарезервированным для horizOn Cloud.
Небольшие улучшения
- Гостевой вход. Стандартный лимит для анонимных входов теперь 120 на IP и проект, и лимит можно настроить.
- Производительность и стабильность. Server 1.75 использует меньше ресурсов базы данных и CPU бэкенда на запрос, а чтения и транзакции чисто восстанавливаются после failover базы данных.
- Страница тарифов. Полное сравнение планов стало легче читать, и к нему можно перейти с главной страницы без аккаунта.
- Геймджемы. Новая партнерская страница для геймджемов находится в группе About в верхней навигации.
Если вы пропустили обновление на прошлой неделе, сводка о Free plan email и новой регистрации освещает это.
Получайте обновления быстрее в Discord
Этот пост подводит итоги недели. Если вы хотите узнавать о релизах в момент их выхода, присоединяйтесь к серверу horizOn в Discord. Новые версии появляются там в прямом эфире, часто за несколько дней до того, как попадают в эту еженедельную сводку, и это самый быстрый способ задать нам вопросы или рассказать, что вам нужно дальше.
Выберите одну из новых функций, попробуйте ее в тестовом проекте и расскажите нам, как прошло. Вы можете ответить в Discord или открыть issue на GitHub. Полный список изменений находится в changelog horizOn.