Em um MMO, estou tentando coletar dados sobre o comportamento do usuário com o objetivo de ajustar as regras do jogo para alcançar a máxima satisfação do usuário.
Claramente, uma maneira de fazer isso é rolar manualmente coisas específicas em um aplicativo, da mesma forma que alguém pode usar Console.WriteLine()
para exibir o conteúdo de uma variável ou a StopWatch()
classe para ver quanto tempo leva para executar. Mas você pode usar um profiler no lugar do StopWatch e um depurador no lugar do WriteLine.
Como devo coletar meus dados? Existem técnicas generalizadas para instrumentar um aplicativo para observar o comportamento do usuário ou alguma forma de técnica de instrumentação de código?
Além disso, estou interessado apenas em técnicas de coleta; você pode assumir que eu já sei transmitir, armazenar e analisar os dados.
A "técnica" aqui é tão simples que quase não merece ser chamada assim: você apenas grava os dados dos sistemas de jogo que considera relevantes.
Como você registra esses dados (em um banco de dados, em arquivos, o que for) é muito amplo para discutir aqui (e as técnicas e padrões não são particularmente específicos para o desenvolvimento de jogos, tornando-os mais adequados para a discussão sobre SO), como é a questão de quais sistemas são relevantes. Não há técnicas automáticas inteligentes para responder a essas perguntas; isso seria uma façanha da inteligência artificial.
O que você deseja garantir em um jogo em que há um componente do servidor é que o servidor faça todo o log possível. Nada do que você recebe do cliente pode ser confiável, e especialmente se você estiver usando esses dados para personalizar as mudanças no jogo, não deseja que os jogadores possam adulterá-los.
O cliente deve registrar e transmitir apenas estatísticas que o servidor normalmente não teria acesso também. Por exemplo, se você deseja gravar mapas de calor de cliques da interface do usuário, provavelmente isso só é possível no cliente.
fonte
Em um MMO, você já possui dados sobre onde o usuário está indo, quais missões ele realiza e quais equipamentos ele usa enviados para o servidor.
Outros dados nos quais você pode se interessar são como eles usam os vários recursos, por quanto tempo mantêm as telas de estatísticas e inventário abertas. Você pode, por exemplo, registrar o número de vezes que um recurso foi ativado com o mouse e o teclado.
Um fator importante é permitir que o usuário exclua (ou faça a coleta incluir) da coleta de dados (não crítica) para cumprir com os regulamentos de privacidade. E para permitir que o servidor decida quais dados devem ser registrados durante a sessão do jogo / próxima hora, para poupar aos seus jogadores alguma largura de banda.
fonte