Практикуется ли в играх удаленное подключение разработчиков к активной игровой сессии и её анализ?
Есть ли примеры игр, где это используется?
За исключением MMO (в частности MMORPG, где ГМ может "прилететь" в нужную точку игрового мира и оглядеться в буквальном смысле). Вопрос больше про синглплеер или коопные/сессионные игры.
К примеру, человек нашел в игре баг. Ну, что-то неправильно работает, портит впечатление, но при этом играть можно. То есть не работает какой-то отдельный предмет или отдельная игровая механика. В этом случае игроку обычно, чтобы сообщить о баге разработчикам, его нужно надлежащим образом оформить - в идеале описать так, чтобы разработчик смог его воспроизвести. Да и вообще нужно найти то место, где можно связаться с разработчиком - форум, мыло или какую-то форму обратной связи. Игроку это совершенно не интересно. В итоге он просто ничего не делает и продолжает играть, смирившись с багом. В конце игры это всё, возможно, выльется в отрицательный отзыв, из которого разработчики вряд ли что-то полезное узнают, даже если прочтут (например, "игра глючная, не тратьте деньги" и в таком духе).
Интересно было бы использовать систему, которая позволяет сообщить о баге прямо в игре. Самое простое и удобное, что приходит в голову - это пункт в главном меню игры "Сообщить о баге". То есть во время игры это можно будет сделать в два клика - Esc (или другая кнопка
- вызов меню) + соответствующий выбор в меню. Далее можно коротко описать баг, либо вообще не описывать, а просто оставить разработчику возможность удаленного подключения с последующим чатом. В итоге разработчик должен получать скриншоты игры, видеотрансляцию, а также иметь доступ к внутренним переменным состояния игры, ну и конечно же прямое общение с игроком, который стал свидетелем бага. По-моему, более, чем достаточно, чтобы понять суть бага и с большой долей вероятности предположить его причину.
Я знаю, что большинство ошибок следует отлавливать на этапах, предшествующих релизу. Но, к сожалению, баги остаются.
С прямым подключением есть проблемы:
1) за это нужно платить человеку. (Дорого)
2) это не один человек, это группа людей, которые должны работать посменно 24/7. (Непрактично)
3) нет гарантий, что это поможет в решении проблемы.
4) Теоретически все возможно, но если баг вызван железом/дровами, то его можно и не воспроизвести, и максимум, что можно сделать подключившись к игроку в сессию, так это посочувствовать. Но это уже работа с клиентами и к отладке не относится.
Если нужен доступ к состоянию, то делают memory dump и отсылют его вместе с сообщением и скриншотом пользователя, чтобы хоть какой-то контекст был.
Ощущение можно сгладить тёплыми словами, скидкой, внутриигровой валютой с поощрением о багрепорте, и т.д. и т.п.
Но такой вариант хорошо дополнит дамп, если это все дело происходит в локальной сети, в процессе разработки и играют тестировщики.
Vito Ombero, хорошо, приведу наглядный пример. Предположим, игрок застрял в текстурах (3D игра). Составить внятный багрепорт сложно, если у игрока нет возможности узнать игровые координаты. Получится что-то типа "в лесу у дерева". Поэтому либо должен состояться диалог, в котором разработчик расскажет способ получения координат, либо игрок должен где-то на форуме найти и прочитать инструкцию по получению координат, либо разработчик подключается к игре и просто смотрит.
Кроме того, в багрепорте не получится указать причину бага, потому что игроку она неведома, и разработчику придется гадать (если нельзя воспроизвести), а при подключении можно проверить ряд гипотез и догадок, а также провести эксперименты (т.е. узнать причину без воспроизведения).
Даже если это баг драйвера, это можно выяснить также экспериментами непосредственно в работающей игре, где наблюдается проблема. Разве нет?
Насчет дороговизны не спорю. Но разве игра в телепатов не дороже по времени? А самое главное, если баг останется, то разве потеря качества игры и репутации бренда не дороже?
Евгений Шатунов, разве? В описании вопроса пояснения того, зачем вообще подключаться к игре и анализировать ее. Хотя, возможно, вы правы, и вопрос звучит не однозначно, так что немного переименую вопрос.
dollar, игрок может предоставить контекст, что он делал или описание действий, скриншот с проявлением бага.
А нажимая кнопку отправить, снимается дамп памяти и отсылается вместе с картинкой. В дампе видно все состояние игры, в дебаггере восстанавливается состояние и вперёд реверсить исполнение, по ходу проверяя, каких тестов текущему коду не хватает.
Дорого это, только гиганты могут позволить себе такое - внутриигровой ГМ.
Лучше сделать хорошую такую систему метрик: чтобы в вашей базе копилось про игровую сессию всё "что, где, когда" произошло с игроком. Когда накопите массив данных сможете легко из них вычленять нестандартные игровые сессии, что скорее всего значит ошибку с технической стороны или ошибку геймплея.
Попутно получите гигантский бонус - будете знать, как улучшить геймплей, как лучше монетизировать игру.
Но, конечно, возможность написать тикет хотя бы примитивная ссылка email "Report a bug" не помешает - дёшево и сердито.