В MMO я пытаюсь собрать данные о поведении пользователей с целью настройки правил игры для достижения максимального удовлетворения пользователей.
Ясно, что один из способов сделать это - вручную свернуть определенные вещи в приложение, так же, как можно использовать Console.WriteLine()
для просмотра содержимого переменной или StopWatch()
класса, чтобы узнать, сколько времени занимает выполнение чего-либо. Но вы можете использовать профилировщик вместо StopWatch, и вы можете использовать отладчик вместо WriteLine.
Как я должен собрать свои данные? Существуют ли обобщенные методы инструментирования приложения для наблюдения за поведением пользователя или какой-либо вид техники инструментария кода?
Кроме того, меня интересуют только методы сбора; Вы можете предположить, что я уже знаю, как передавать, хранить и анализировать эти данные.
«Техника» здесь настолько проста, что ее почти не стоит называть таковой: вы просто записываете данные из игровых систем, которые вы считаете актуальными.
Как вы записываете эти данные (в базу данных, в файлы и т. Д.) Слишком широко, чтобы обсуждать их здесь (а методы и шаблоны не особенно специфичны для разработки игр, что делает их более подходящими для обсуждения на SO), как вопрос о том, какие системы актуальны. Нет умных автоматических методов, чтобы ответить на эти вопросы; это был бы подвиг искусственного интеллекта.
В игре, где есть серверный компонент, вы хотите убедиться в том, что сервер должен делать все возможное журналирование. Ничему, что вы получаете от клиента, нельзя доверять, и особенно если вы собираетесь использовать эти данные для внесения изменений в игру, вы не хотите, чтобы игроки могли вмешиваться в нее.
Клиент должен только записывать и передавать статистику, к которой сервер обычно не имеет доступа. Например, если вы хотите записать карты тепловых эффектов клика по интерфейсу пользователя, это возможно только на клиенте.
источник
В MMO у вас уже есть данные о том, куда пользователь отправляется, какие квесты он берет и какое оборудование он использует отправляет на сервер.
Другие данные, которые могут вас заинтересовать, - это то, как они используют различные интерфейсы, как долго они хранят открытые экраны статистики и инвентаря. Например, вы можете записать, сколько раз функция была активирована с помощью мыши и клавиатуры.
Одним из важных факторов является предоставление пользователю возможности отказаться (или включить сбор) от сбора (некритических) данных в соответствии с правилами конфиденциальности. И позволить серверу решить, какие данные должны быть записаны во время сеанса игры / следующего часа, чтобы сэкономить вашим игрокам некоторую пропускную способность.
источник