Итак, вы работаете над своей игрой на Unity и готовитесь выпустить ее в Steam. Но API Steamworks может быть пугающим. Это мощно и полезно, но вы не знаете, с чего начать. Что ж, в этой мини-серии я расскажу об основных функциях Steamworks и о том, как реализовать их в вашей игре. Для начала я пройдусь по достижениям и статистике. В этой серии я буду использовать обертку Steamworks.NET C#. Чтобы начать, все, что вам нужно сделать, это загрузить последнюю версию, импортировать ее в свои активы и прикрепить скрипт SteamManager к игровому объекту в вашей начальной сцене. Также не забудьте открыть steam_appid.txt в корне вашего проекта Unity и заменить идентификатор по умолчанию на идентификатор вашей игры. С этим вы должны быть готовы начать.

Есть много применений для статистики. Может быть, вы хотите отслеживать некоторые из них для отслеживания прогресса достижений, может быть, вы хотите использовать их в своей собственной системе лидеров, может быть, вы просто хотите отслеживать их, чтобы игрок мог видеть, сколько времени он потратил на вашу игру. ! Настроить статистику просто. Для начала войдите в свою учетную запись Steam на Сайте Steam Partners. Выберите свою игру на панели управления, перейдите в Редактировать настройки Steamworks, наведите указатель мыши на раскрывающийся список Статистика и достижения и выберите Статистика. Здесь вы можете добавить новую статистику, определить тип статистики и имя API, а также настроить различные другие параметры.

Давайте воспользуемся простым примером. Я хочу отслеживать убийства врагов в своей игре, поэтому я создал статистику с именем API «enemyKills». Чтобы получить статистику, я могу просто сохранить ее в виде целого числа, используя «GetStat». Если я хочу установить его, я могу просто использовать «SetStat». Вы можете увидеть это в примере ниже, где я получаю текущую статистику «enemyKills», увеличиваю ее на 1 и снова устанавливаю ее с новым значением. После того, как вы установили статистику, вы должны вызвать «StoreStats()», чтобы отправить статистику, которую вы отредактировали, на сервер для постоянного хранения.

int currentEnemyKills;
Steamworks.SteamUserStats.GetStat(“enemyKills”, out currentEnemyKills);
currentEnemyKills++;
Steamworks.SteamUserStats.SetStat(“enemyKills”, currentEnemyKills);
Steamworks.SteamUserStats.StoreStats();

Достижения можно настроить примерно таким же образом. Вы можете перейти на страницу достижений своей игры на веб-сайте партнеров Steam, выбрав «Достижения» в том же раскрывающемся меню вместо «Статистика». Здесь вы можете дать своей игре имя API, отображаемое имя, описание и значки. После того, как вы настроили достижения, вы можете активировать их разблокировку с помощью SetAchievement. Чтобы получить статус разблокировки достижения, вы можете просто использовать «GetAchievement», как вы уже могли догадаться. В этом примере я проверяю статус разблокировки достижения, которое присуждается игроку после завершения обучения, прежде чем активировать разблокировку достижения.

bool tutorialCompleted;
Steamworks.SteamUserStats.GetAchievement(“tutorial", out tutorialCompleted);
if (tutorialCompleted == false)
{
    Steamworks.SteamUserStats.SetAchievement("tutorial");
}

Это основы статистики и достижений в Steamworks. Для большинства игр маловероятно, что вам понадобится больше, чем эти основные функции, но вы можете сделать гораздо больше, если вам нужны дополнительные функции. Эта страница в документации Steam содержит все функции, связанные со статистикой, достижениями и списками лидеров (к которым мы вернемся в будущем руководстве), если вам нужно что-то более конкретное. Вы можете получить историю глобальной статистики, получить информацию о следующем наиболее достигнутом достижении и многое другое, так что не стесняйтесь экспериментировать!