Como você obtém dados úteis dos playtesters? [fechadas]
19
Existem alguns tipos de feedback que você pode obter dos playtesters, e eu me pergunto como coletar dados para cada um deles ...
Relatórios de falhas. Quando meu jogo C ++ trava enquanto alguém o joga, como melhor me certificar de que eu o conheço e ainda melhor ... o que o causou? Mesmo obter algo tão simples quanto o número do arquivo e da linha que causou uma falha seria incrivelmente útil.
Comentários sobre o projeto. Quando um testador de jogo está jogando, como posso descobrir se eles estão se divertindo, por que eles estão se divertindo, por que eles não estão se divertindo e o que devemos gastar tempo ajustando?
Suponho que você esteja falando de testadores de reprodução no local e não de beta.
Regra # 1: Não os ajude . Frustração deve ser a principal coisa que você deve verificar. A situação ideal seria um espelho bidirecional com sua equipe de um lado e o testador do outro com uma câmera de vídeo no rosto e outra na tela. Obviamente, isso não é viável para a maioria das pessoas, então faça o melhor que puder. Apenas ter seus designers sentados e assistindo onde as pessoas ficam presas é uma informação muito útil. Você não estará em cima do ombro deles quando eles levarem o jogo para casa; portanto, dar conselhos sobre como passar em determinadas seções não fornecerá as informações necessárias. Edit : outra maneira de colocar isso é o seguinte: não pense que eles estão "tocando errado"
Regra # 2: Não dê a eles o que eles querem . Após uma sessão de teste, você tem algum tipo de questionário que eles preenchem. As sugestões específicas que eles têm geralmente não são sensatas a serem consideradas. Geralmente, há uma causa raiz que está desencadeando a maioria das respostas e elas simplesmente não sabem como expressá-la. Se você conseguir descobrir isso, será melhor fazê-lo. Embora no momento eu esteja tendo problemas para apresentar exemplos específicos.
Regra # 3: Os dados são rei . Se você pode (e esse é realmente outro item da lista de desejos, honestamente), acompanhe tudo o que puder. Acompanhe onde os jogadores morrem. Acompanhe onde eles ficam sem munição de uma arma específica. Acompanhe quais captadores eles perdem. Acompanhe quais atualizações eles compram. Acompanhe o que os inimigos lhes causam dano. Obviamente, esses são exemplos específicos de FPS, mas tenho certeza de que existem exemplos específicos de domínio para qualquer jogo que você esteja fazendo. Se todo mundo está fazendo ou não, essas são geralmente áreas que você deve gastar um pouco mais de tempo olhando.
Basicamente, você não se importa com o que o jogador pensa . Você se preocupa em obter números brutos para o que os jogadores fazem . Você precisa de olhos virgens para ver seu jogo e dizer o que os frustra e o que eles estão sendo levados a fazer.
Para falhas, investigue minidumps . Eles não são perfeitos, mas são uma ferramenta muito útil para descobrir onde estão as falhas.
Considere também uma ferramenta de relatório de erros embutida. Algo em que o usuário pode tirar uma captura de tela, adicionar uma descrição e enviá-la por email automaticamente a alguém de dentro do jogo. Idealmente, com um instantâneo do mundo (por exemplo, economia rápida ou algum tipo de despejo de memória), se o seu jogo suportar.
pontos muito bons feita aqui biscoitos para você e eu tenho que concordar 100% com** Don't help them **
Prix
1
O que você faria de diferente no feedback se fossem testadores beta on-line? apenas pensando desde que você disseon-site playtesters
Prix
Não tenho experiências positivas com isso, então não posso realmente ajudá-lo. Eu já vi questionários on-line se transformarem em uma confusão gigante com estatísticas que não têm sentido.
Tetrad
Boa resposta e, para elaborar um pouco sobre "Não dê a eles o que eles querem", escrevi um pouco da minha abordagem pessoal em meu blog pessoal ( doublebuffered.com/2009/06/16/… ). É um pouco mais orientado para digerir os comentários do quadro de mensagens beta, mas também os apliquei nos testes pessoais.
quer
Os testadores beta on-line são úteis apenas para responder a perguntas específicas como "o jogo trava quando você tenta usar o recurso X?" Você deve fazer testes pessoalmente para julgar as reações gerais. Repito: você deve ter observações ao vivo de pessoas que não sejam os desenvolvedores do jogo. Mesmo entregando os controles a visitantes ocasionais é melhor do que nada.
Jhocking
13
Para expandir os dados, é um grande sentimento (+1 ao Tetrad!):
Investigue a gravação e a reprodução :
Se o seu jogo for determinístico e baseado em quadros, talvez você precise armazenar apenas uma semente aleatória inicial e uma tupla a (key/button state, joystick/mouse coords, frame #)qualquer momento que o estado de entrada for alterado. A reprodução é tão simples quanto redirecionar sua entrada para este fluxo. (Fizemos isso em muitos jogos de salto de plataforma no passado.)
Se o seu jogo tiver APIs ou sistemas de mensagens bem definidos para executar ações (um jogo de estratégia baseado em turnos, um jogo de cartas, um jogo de tabuleiro ou algo semelhante), você poderá coletar apenas chamadas ou mensagens de API em um determinado ponto de pressão . (Fizemos isso em um jogo de cartas para uma plataforma portátil.)
É mais difícil em alguns sistemas (sistemas timestamp menos determinísticos, encadeados ou arbitrários podem ser uma dor), mas pode valer a pena registrar os dados de qualquer maneira; você pode obter resultados "próximos o suficiente" para alguns usos.
Um sistema de "repetição" baseado nesses métodos tem várias vantagens:
use-o para reproduzir falhas em uma depuração ou compilação ou ambiente instrumentado;
carregar replays sob uma construção de criação de perfil e obter dados de desempenho ou uso de recursos;
conecte-o ao jogo para fornecer a funcionalidade de "reprodução instantânea", talvez com uma câmera ou um intervalo de tempo diferente;
configure uma jogabilidade de demonstração no "modo de atração" se o usuário estiver sem fazer nada em um menu;
coloque-o no seu sistema de compilação como um teste de fumaça: se eu puder executar essa repetição sem travar, é mais provável que seja uma boa compilação;
veja exemplos de pessoas jogando para ver o que fizeram e o que não fizeram.
Conecte uma entrada aleatória em vez de um fluxo gravado, e você tem um ótimo teste de macaco que pode deixar de molho durante a noite ou sempre que suas máquinas de desenvolvimento estiverem ociosas.
Em seguida, faça alguma gravação de evento . Para um FPS hipotético, comece com algo como "o tempo T: X matou Y no ponto Z com a arma W": coloque-o em um log.
Depois de coletar alguns dados, descubra como automatizar a coleta . Não precisa ser elegante durante o desenvolvimento:
conectar a um servidor SQL e inserir linhas,
disparar e esquecer pacotes UDP em algum servidor syslog-ish simples,
envie o log por email da próxima vez que o jogo for inicializado,
basta agrupar o executável em um script de shell ou arquivo em lotes que renomeie e copie um arquivo .log para uma unidade compartilhada comum,
(posteriormente, para compilações de produção) use o Relatório de Erros do Windows ou um serviço semelhante para coletar dados de falha ...
Realmente não importa, desde que você possa coletar dados.
Agora estenda-o: colete despejos de memória, rastreios de pilha e gravações de entrada ou evento. Adicione mais eventos e mais fontes de dados:
experimente a posição ou a mão do jogador a cada 10 segundos, trace-a em um mapa - "ei, ninguém está usando esse canto que passei uma semana modelando, hora de colocar um powerup lá"
getFreeMemoryBytes() a cada meio minuto
getFPS() periodicamente
tire uma foto ou vídeo do que o usuário está fazendo via webcam (ótimo para testes automatizados de usabilidade - somente com permissão e entendimento do usuário, é claro)
pegue as informações do sistema (novamente, com permissão do usuário)
A coisa "traçar em um mapa" pode ficar realmente incrível depois de um tempo: visualize uma vista aérea de um mapa RTS ou FPS. Coloque um controle deslizante, representando o tempo desde o início do jogo. Selecione um tipo de evento ("obteve ouro", "matou alguém", qualquer que seja). Selecione um conjunto de dados: talvez um jogo, talvez 500 jogos nos últimos meses. Comece a puxar o controle deslizante para a direita e assista a atividade aparecer no mapa.
E se você não consegue encontrar boas bibliotecas para ajudá-lo com essas coisas (existem algumas aqui e ali, no entanto!), Considere criar sua própria: é uma boa experiência de aprendizado e não precisa ser particularmente elegante Ser útil.
Obtenha os dados, você descobrirá o que fazer com eles. =)
É claro que isso depende muito de ... a) que tipo de teste você deseja realizar eb) que tipo de jogo você está testando ec) que tipo de testadores e infraestrutura você tem disponível ...
Também difere muito se você estiver testando a) funcionalidade, b) balanceamento c) design do jogo
Mas, em geral, você pode considerar esses aspectos ...
* a) Escolha a pessoa certa para o trabalho
Parece muito simples de mencionar, mas eu já vi isso muitas vezes e só o vi viver novamente. Como sempre, existem diferenças significativas entre as pessoas no que diz respeito à qualidade delas em diferentes empregos. Algumas pessoas que estão dispostas ou que estão ansiosas para fazer o teste podem não estar jogando o suficiente para encontrar erros incomuns (ou mesmo simples). Alguns não são bons em descrever os bugs. Alguns são melhores em testar problemas de balanceamento, outros são mais atentos às fraquezas visuais, outros são mais criativos ao jogar o jogo de maneiras incomuns e finos bugs ocultos / raros, alguns são mais atentos à qualidade técnica ou visual, outros são melhores na compreensão de aspectos da mecânica do jogo e pode até sugerir mudanças significativas (se você quiser que seus testadores façam isso;).
* b) Use um software rastreador de problemas / rastreador de erros
Essas ferramentas podem não apenas ajudar a organizar seus problemas, mas também aumentar a qualidade da saída de seus testadores, dando-lhes uma estrutura para trabalhar dentro e aprendendo com o feedback recebido. dos desenvolvedores sobre seus problemas. Isso ajuda a melhorar a qualidade da saída de seus testadores muito mais rapidamente do que se você trabalha sem ele. (Também ajuda bastante com testadores remotos) O software típico usado pelos estúdios de jogos é o Mantis, o JIRA (e, é claro, muitos outros). Consulte a Wikipedia para obter uma lista geral e também esta publicação no SO.
c) Adicionar ferramentas de teste no jogo
Típicos são os atalhos para testar níveis ou seções específicos do jogo. Exibindo informações extras durante o jogo para os testadores, para que eles possam adicionar isso aos relatórios de erros. Esta pode ser a posição em um nível, o número de objetos ativos em uma cena, a quantidade de textura ram ou paletas atualmente em uso, algo útil para os desenvolvedores.
d) Combine testadores experientes com sangue fresco É
sempre bom ter testadores com muita experiência com o seu jogo e que tenham aprendido quais são os problemas típicos e como (re) testá-los. Ao mesmo tempo, você quer novos jogadores "virgens" de vez em quando, especialmente para equilibrar.
e) Tenha um gerente de teste
Alguém que coordene o processo e o adapte ao jogo em questão, às prioridades atuais e aos testadores disponíveis e ambiente de teste.
f) Tenha um documento do plano de teste
Isso valeria um post extra.
Como o Tetrad mencionou, obtenha o máximo de dados objetivos possível. Colocar ganchos para armazenar determinados eventos e despejar todos eles em um arquivo .csv não é muito difícil. E depois que você o tiver no Excel, poderá estudar, representar graficamente e plotar até que as vacas cheguem em casa.
Além disso, tenha perguntas específicas que você deseja responder. Os cientistas não apenas se sentam, iniciam alguns experimentos e "fazem ciência". Eles têm perguntas específicas e mensuráveis sobre as quais desejam dados. Muitas vezes, você tira o máximo proveito do teste de reprodução se adotar a mesma abordagem. Tentar descobrir se o seu jogo é "bom" é muito difícil de quantificar. Mas descobrir se a missão simples do tutorial leva apenas os 5 minutos que você espera, ou se os testadores estão lutando para resolver um determinado quebra-cabeça, pode realmente ser avaliado.
Às vezes, a maneira mais eficaz de testar é iterativamente em rajadas curtas. Peça a alguns testadores que durem uma hora mais ou menos na parte da manhã, faça algumas alterações nos problemas que eles identificam e acompanhem novamente os testadores na manhã seguinte. Obviamente, você deve procurar um recurso pequeno o suficiente para melhorar em uma tarde. Mas, para um problema que tem sido particularmente teimoso, esse método pode ser muito bem-sucedido.
Concordo definitivamente com a regra nº 1 de Tetrad. Não os ajude. Eu diria que uma ressalva é explicar a eles que você não os ajudará, e se eles precisam de ajuda, por favor, pergunte. Dessa forma, o jogador não acaba frustrado.
O questionário deve fazer perguntas abertas, em vez de simples sim / não, dependendo da idade e do número de testadores, esses podem ser os formulários que eles preenchem ou você pode fazer as perguntas. Também é importante fazer perguntas sobre a história e a familiaridade com o gênero de jogo que você está testando; isso adicionará contexto às respostas específicas sobre o seu jogo.
Felizmente, quando meu jogo falha, isso me dá um despejo de informações sobre o erro, para que eu possa tirar uma foto disso e anotar o que o jogador estava fazendo. Normalmente eu testei faixas etárias mais jovens, então quando tivermos um acidente, lembre-se de explicar que eles estão fazendo um ótimo trabalho - eles podem ficar chateados depois de interromper o jogo. Os testadores de jogo realmente provaram ser ótimos em encontrar bugs obscuros que a equipe de desenvolvedores nunca enfrentaria ao jogar o jogo da maneira "certa".
É possível escrever um código que capte falhas e registre a pilha de chamadas. Isso pode ajudar muito nos relatórios de erros. Ter um arquivo de log útil gerado também ajuda. Você pode solicitar ao usuário que envie esses arquivos na próxima vez em que jogar, ou tenha uma ferramenta autônoma que será executada após o encerramento do jogo ou travará, se desejar.
Para relatórios de falhas, você deve contar com uma equipe paga de controle de qualidade, não com testadores. O controle de qualidade é alguém que você contrata especificamente por sua capacidade de encontrar bugs e relatá-los de maneira significativa, e um bom testador vale seu peso em ouro (e custa apenas um décimo de seu peso em ouro, comparado aos programadores!).
Se você está preocupado com "oh, e se eles descobrirem acidentalmente uma falha, não quereríamos perder apenas porque eles não estão testando isso" ... é para isso que serve o registro. Um sistema de registro suficientemente bom deve registrar elementos suficientes de reprodução para poder reproduzir exatamente uma falha.
Para obter feedback sobre o design, não há substituto para que seus designers de jogos realmente os assistam jogar (ou use um gravador de vídeo, se necessário, etc.). Não confie na memória ou na opinião do testador, que são notoriamente pobres. Mas se você está assistindo eles tocando em tempo real, é óbvio que é só olhar para a postura do rosto e do corpo, estejam eles envolvidos, entediados ou frustrados.
Porém, a equipe de controle de qualidade paga está fora do orçamento para a maioria dos desenvolvedores independentes, por isso faz sentido “originar a multidão” o máximo possível. E não há substituto para ver exatamente o quão bem o jogo se sai na natureza.
** Don't help them **
on-site playtesters
Para expandir os dados, é um grande sentimento (+1 ao Tetrad!):
Investigue a gravação e a reprodução :
(key/button state, joystick/mouse coords, frame #)
qualquer momento que o estado de entrada for alterado. A reprodução é tão simples quanto redirecionar sua entrada para este fluxo. (Fizemos isso em muitos jogos de salto de plataforma no passado.)Um sistema de "repetição" baseado nesses métodos tem várias vantagens:
Conecte uma entrada aleatória em vez de um fluxo gravado, e você tem um ótimo teste de macaco que pode deixar de molho durante a noite ou sempre que suas máquinas de desenvolvimento estiverem ociosas.
Em seguida, faça alguma gravação de evento . Para um FPS hipotético, comece com algo como "o tempo T: X matou Y no ponto Z com a arma W": coloque-o em um log.
Depois de coletar alguns dados, descubra como automatizar a coleta . Não precisa ser elegante durante o desenvolvimento:
Realmente não importa, desde que você possa coletar dados.
Agora estenda-o: colete despejos de memória, rastreios de pilha e gravações de entrada ou evento. Adicione mais eventos e mais fontes de dados:
getFreeMemoryBytes()
a cada meio minutogetFPS()
periodicamenteA coisa "traçar em um mapa" pode ficar realmente incrível depois de um tempo: visualize uma vista aérea de um mapa RTS ou FPS. Coloque um controle deslizante, representando o tempo desde o início do jogo. Selecione um tipo de evento ("obteve ouro", "matou alguém", qualquer que seja). Selecione um conjunto de dados: talvez um jogo, talvez 500 jogos nos últimos meses. Comece a puxar o controle deslizante para a direita e assista a atividade aparecer no mapa.
E se você não consegue encontrar boas bibliotecas para ajudá-lo com essas coisas (existem algumas aqui e ali, no entanto!), Considere criar sua própria: é uma boa experiência de aprendizado e não precisa ser particularmente elegante Ser útil.
Obtenha os dados, você descobrirá o que fazer com eles. =)
fonte
É claro que isso depende muito de ... a) que tipo de teste você deseja realizar eb) que tipo de jogo você está testando ec) que tipo de testadores e infraestrutura você tem disponível ...
Também difere muito se você estiver testando a) funcionalidade, b) balanceamento c) design do jogo
Mas, em geral, você pode considerar esses aspectos ...
* a) Escolha a pessoa certa para o trabalho Parece muito simples de mencionar, mas eu já vi isso muitas vezes e só o vi viver novamente. Como sempre, existem diferenças significativas entre as pessoas no que diz respeito à qualidade delas em diferentes empregos. Algumas pessoas que estão dispostas ou que estão ansiosas para fazer o teste podem não estar jogando o suficiente para encontrar erros incomuns (ou mesmo simples). Alguns não são bons em descrever os bugs. Alguns são melhores em testar problemas de balanceamento, outros são mais atentos às fraquezas visuais, outros são mais criativos ao jogar o jogo de maneiras incomuns e finos bugs ocultos / raros, alguns são mais atentos à qualidade técnica ou visual, outros são melhores na compreensão de aspectos da mecânica do jogo e pode até sugerir mudanças significativas (se você quiser que seus testadores façam isso;).
* b) Use um software rastreador de problemas / rastreador de erros Essas ferramentas podem não apenas ajudar a organizar seus problemas, mas também aumentar a qualidade da saída de seus testadores, dando-lhes uma estrutura para trabalhar dentro e aprendendo com o feedback recebido. dos desenvolvedores sobre seus problemas. Isso ajuda a melhorar a qualidade da saída de seus testadores muito mais rapidamente do que se você trabalha sem ele. (Também ajuda bastante com testadores remotos) O software típico usado pelos estúdios de jogos é o Mantis, o JIRA (e, é claro, muitos outros). Consulte a Wikipedia para obter uma lista geral e também esta publicação no SO.
c) Adicionar ferramentas de teste no jogo Típicos são os atalhos para testar níveis ou seções específicos do jogo. Exibindo informações extras durante o jogo para os testadores, para que eles possam adicionar isso aos relatórios de erros. Esta pode ser a posição em um nível, o número de objetos ativos em uma cena, a quantidade de textura ram ou paletas atualmente em uso, algo útil para os desenvolvedores.
d) Combine testadores experientes com sangue fresco É sempre bom ter testadores com muita experiência com o seu jogo e que tenham aprendido quais são os problemas típicos e como (re) testá-los. Ao mesmo tempo, você quer novos jogadores "virgens" de vez em quando, especialmente para equilibrar.
e) Tenha um gerente de teste Alguém que coordene o processo e o adapte ao jogo em questão, às prioridades atuais e aos testadores disponíveis e ambiente de teste.
f) Tenha um documento do plano de teste Isso valeria um post extra.
fonte
Como o Tetrad mencionou, obtenha o máximo de dados objetivos possível. Colocar ganchos para armazenar determinados eventos e despejar todos eles em um arquivo .csv não é muito difícil. E depois que você o tiver no Excel, poderá estudar, representar graficamente e plotar até que as vacas cheguem em casa.
Além disso, tenha perguntas específicas que você deseja responder. Os cientistas não apenas se sentam, iniciam alguns experimentos e "fazem ciência". Eles têm perguntas específicas e mensuráveis sobre as quais desejam dados. Muitas vezes, você tira o máximo proveito do teste de reprodução se adotar a mesma abordagem. Tentar descobrir se o seu jogo é "bom" é muito difícil de quantificar. Mas descobrir se a missão simples do tutorial leva apenas os 5 minutos que você espera, ou se os testadores estão lutando para resolver um determinado quebra-cabeça, pode realmente ser avaliado.
Às vezes, a maneira mais eficaz de testar é iterativamente em rajadas curtas. Peça a alguns testadores que durem uma hora mais ou menos na parte da manhã, faça algumas alterações nos problemas que eles identificam e acompanhem novamente os testadores na manhã seguinte. Obviamente, você deve procurar um recurso pequeno o suficiente para melhorar em uma tarde. Mas, para um problema que tem sido particularmente teimoso, esse método pode ser muito bem-sucedido.
fonte
Concordo definitivamente com a regra nº 1 de Tetrad. Não os ajude. Eu diria que uma ressalva é explicar a eles que você não os ajudará, e se eles precisam de ajuda, por favor, pergunte. Dessa forma, o jogador não acaba frustrado.
O questionário deve fazer perguntas abertas, em vez de simples sim / não, dependendo da idade e do número de testadores, esses podem ser os formulários que eles preenchem ou você pode fazer as perguntas. Também é importante fazer perguntas sobre a história e a familiaridade com o gênero de jogo que você está testando; isso adicionará contexto às respostas específicas sobre o seu jogo.
Felizmente, quando meu jogo falha, isso me dá um despejo de informações sobre o erro, para que eu possa tirar uma foto disso e anotar o que o jogador estava fazendo. Normalmente eu testei faixas etárias mais jovens, então quando tivermos um acidente, lembre-se de explicar que eles estão fazendo um ótimo trabalho - eles podem ficar chateados depois de interromper o jogo. Os testadores de jogo realmente provaram ser ótimos em encontrar bugs obscuros que a equipe de desenvolvedores nunca enfrentaria ao jogar o jogo da maneira "certa".
fonte
É possível escrever um código que capte falhas e registre a pilha de chamadas. Isso pode ajudar muito nos relatórios de erros. Ter um arquivo de log útil gerado também ajuda. Você pode solicitar ao usuário que envie esses arquivos na próxima vez em que jogar, ou tenha uma ferramenta autônoma que será executada após o encerramento do jogo ou travará, se desejar.
fonte
Para relatórios de falhas, você deve contar com uma equipe paga de controle de qualidade, não com testadores. O controle de qualidade é alguém que você contrata especificamente por sua capacidade de encontrar bugs e relatá-los de maneira significativa, e um bom testador vale seu peso em ouro (e custa apenas um décimo de seu peso em ouro, comparado aos programadores!).
Se você está preocupado com "oh, e se eles descobrirem acidentalmente uma falha, não quereríamos perder apenas porque eles não estão testando isso" ... é para isso que serve o registro. Um sistema de registro suficientemente bom deve registrar elementos suficientes de reprodução para poder reproduzir exatamente uma falha.
Para obter feedback sobre o design, não há substituto para que seus designers de jogos realmente os assistam jogar (ou use um gravador de vídeo, se necessário, etc.). Não confie na memória ou na opinião do testador, que são notoriamente pobres. Mas se você está assistindo eles tocando em tempo real, é óbvio que é só olhar para a postura do rosto e do corpo, estejam eles envolvidos, entediados ou frustrados.
fonte