Как узнать, сколько часов пользователи провели в моей игре? API Steamworks

Как узнать, сколько часов пользователи провели в моей игре? Использование Steamworks API и C# в Unity. Я просмотрел документацию, но ничего подобного не нашел и подумал, что что-то упускаю.

Я должен был просто использовать простой скрипт, который регистрирует минуты, сыгранные в собственной игре, но для этого уже слишком поздно. Если кто-нибудь может дать мне хит или указать мне правильное направление, я был бы очень признателен.


person papi    schedule 18.08.2017    source источник
comment
Извините, у меня нет точного ответа, но я уверен, что это возможно, потому что в Rocksmith 2014 есть достижения, которые срабатывают через 10, 100, 200 и т. д. часов. Я предполагаю, что они опрашивают эту информацию, но я думаю, возможно, они сами ее зарегистрировали.   -  person TyCobb    schedule 18.08.2017
comment
@TyCobb, да, это либо возможно, либо они сделали это сами.   -  person papi    schedule 19.08.2017
comment
Подобные вопросы следует задавать на gamedev.net.   -  person MickyD    schedule 19.08.2017
comment
@MickyD, никогда не слышал об этом месте. Но спасибо!   -  person papi    schedule 19.08.2017
comment
Также есть gamedev.stackexchange.com.   -  person TyCobb    schedule 19.08.2017
comment
Для этого вам не нужен Steamworks API. Вы открыты для решений без API Steamworks?   -  person Programmer    schedule 19.08.2017
comment
Ват. Просто записывать количество сыгранных часов (не полагайтесь на разницу системных часов) и запускать разблокировку достижений?   -  person Mardoxx    schedule 19.08.2017


Ответы (1)


Возможно, у вас еще есть шанс заставить его работать. Насколько я знаю, есть способ получить общее количество сыгранных часов (как показано в Gameplay stats) с помощью устаревшего XML-данные сообщества:

Игровая статистика игрока

Чтобы получить игровую статистику, вам понадобится имя игры в сообществе Steam. Разработчики могут связаться с Valve, чтобы получить имя сообщества для своей игры.

Вы можете получить статистику и достижения для игрока за игру, используя 64-битный Steam ID игрока: Формат: http://steamcommunity.com/profiles/[SteamID]/stats/[CommunityGameName]/?xml=1

Пример: http://steamcommunity.com/profiles/76561197968575517/stats/L4D/?xml=1

В примере вы можете увидеть поле hoursPlayed в нижней части изображения:

поле hoursPlayed

Теперь проблема, очевидно, в том, что это устарело, и Steam советует вам использовать веб-API, когда это возможно. Тем не менее, я не видел способа получить доступ к этим данным через веб-API, поэтому я думаю, что это лучший вариант без развертывания собственного способа отслеживания игрового времени.

person Timo Salomäki    schedule 18.08.2017
comment
Хм, это выглядит интересно и может занять некоторое время. Спасибо за информацию! Я подожду еще нескольких ответов, чтобы узнать, что скажут другие люди; А если ничего, то это будет избранный ответ! - person papi; 19.08.2017
comment
@berdyev Мне кажется очень странным, что эта статистика недоступна из веб-API, поэтому, надеюсь, кто-то найдет лучший ответ! - person Timo Salomäki; 19.08.2017
comment
Есть ли у нас какие-либо новые обновления по этому поводу? Я тоже хочу иметь возможность получать часы, сыгранные пользователем в каждой игре. - person CDrosos; 17.06.2020
comment
Мне также интересно, есть ли какие-либо новые обновления по этому поводу. Можно ли теперь реализовать эту функциональность через веб-API или каким-либо другим способом? - person Guy; 09.03.2021