Neste post, gostaria de compartilhar minha experiência de coleta e análise de base de jogos do site Metacritic.com, contar o que aconteceu e o que mais está nos planos. Espero que o material encontre seus leitores, e um possível feedback indicará pontos fracos e possíveis direções para análises futuras.
fundo
Muitos de nós nesta primavera e verão tivemos algumas horas livres por dia à nossa disposição - trabalhando em casa, recessão nos negócios e outros motivos que todos conhecem. Decidi usar meu tempo livre para sempre - para tornar mais restrito o R, que não usava desde meus tempos de universidade, e ao mesmo tempo praticar com dados reais (não vale a pena para certificados sem projetos reais).
Por que escolhi esta base particular? Porque adoro jogos. E também porque em junho houve um escândalo em torno do jogo The Last of Us. A Parte II , que recebeu aclamação quase completa da crítica, e foi extremamente negativa por parte da comunidade de jogadores.
Eu estava interessado em encontrar uma resposta para várias perguntas:
- Como as avaliações da imprensa e dos jogadores correspondem entre si?
- Existe uma dinâmica significativa em a) avaliações da imprensa; b) as avaliações dos jogadores; c) a diferença nas estimativas?
E comecei a procurar respostas.
Primeira tentativa. Sucesso relativo
Decidi procurar respostas no metacrtitic.com - este é um grande site que agrega classificações de publicações de jogos e permite que os usuários avaliem os jogos (e não apenas eles) (nota importante: para avaliar um jogo, não é necessário comprovar a propriedade dele). Parecia que a tarefa seria simples: "Analise o metacrítico e sinta a base com as mãos!"
Não antes de dizer que acabou. Provavelmente, para o público do Habr não será segredo: hoje, para escrever código funcional (! = Bom), não é necessário ser programador. Pelo menos, eu acreditava totalmente nisso, resolvendo meu problema.
Armado com o Google, stackoverflow e o que posso aprender no DataCamp, em um dia coletei um banco de dados de aproximadamente 16 mil linhas, onde para cada postagem salvei o nome, plataforma, avaliação do usuário, avaliação dos críticos e data de lançamento, e imediatamente criei dois gráficos, que ele postou em uma das plataformas russas para jogos e quase-jogos.
Primeiros resultados
Não havia análise inteligível por trás dos gráficos - apenas uma descrição cuidadosa dos efeitos observados. No entanto, a comunidade aceitou calorosamente a visualização (e alguém até desenvolveu a ideia e posteriormente lançou uma rede neural que gera análises para jogos ), o que deu um incentivo para não abandonar tudo pela metade e continuar vasculhando o banco de dados.
Segunda tentativa. Interessante está apenas começando
Acredito que, para o público do Habr, isso não será um segredo: arrogância é ruim e escrever um código funcional (! = Bom) não é uma tarefa fácil, não importa o quão útil o stackoverflow, o Google e os guias são “é fácil analisar páginas na Internet, você só precisa … ”
Publiquei os primeiros gráficos resultantes em 24 e 25 de junho e, na semana seguinte, mal consegui pensar em outra coisa senão em coletar mais informações.
No entanto, o código que escrevi estava se comportando de forma completamente horrível. É ele:
- Trabalhou devagar (e isso era óbvio);
- Eu coletei duplicatas de alguns registros e ignorei completamente outros (e isso não era óbvio, porque depois de compilar a base de links para páginas com jogos, limpei as duplicatas deles e quando o número de linhas chega a dezenas de milhares é impossível dizer com certeza se você perdeu algo) ...
No final, The Last of Us ajudou a encontrar o segundo problema. Parte 2, que não consegui encontrar no banco de dados compilado - e depois de algumas iterações, consegui chegar a um código que funcionaria corretamente.
A solução para o primeiro problema pode parecer trivial para qualquer pessoa que ganha dinheiro programando - mas eu não sou um deles, então sugiro que você apenas sorria comigo (francamente, foi um verdadeiro Momento "Aha!", Embora o problema em si seja simplesmente ridículo).
História não salvou o código, mas ainda tenho uma captura de tela - você pode avaliá-lo sob o spoiler (cuidado, um ataque de vergonha espanhola é possível ).
Você foi avisado
No final das contas, ambos os problemas foram resolvidos. O código do analisador é postado no GitHub . Tenho certeza de que ainda há muitas controvérsias nisso, mas agora parece funcionar (o que definitivamente adiciona pontos ao meu PSI).
Cartão de ambulatório ou descrição do banco de dados Metacritic.com
A lista final de páginas com jogos que precisavam ser analisados foi compilada em 1º de julho e incluiu 96.719 entradas - links para a página do jogo em Metacritic.com (coletei a base de links do índice alfabético de cada plataforma disponível, portanto, o mesmo jogo pode ser encontrada na base de dados para cada plataforma individual; para ser justo, deve-se notar que as estimativas nestes casos também são independentes).
> length(all_platforms)
[96719]
Isso é interessante: na verdade, havia 96.718 registros neste banco de dados adequados para o trabalho. O Metacritic armazena um jogo chamado *** em uma lista alfabética para PC (sim, são três asteriscos - e não, isso não é censura), mas o link está neste a lista aponta para uma página de jogos de PC, não para uma página de jogo existente . Não vejo muito sentido em adicioná-lo "manualmente" - o jogo não tem avaliação de usuários nem críticas; portanto, praticamente não há benefício para a análise (levando em consideração o tamanho do banco de dados, é claro).
Das 96.718 linhas restantes, 213 links levam a uma página 404 ou "juram" 500 erros de servidor - essas páginas são ignoradas quando o banco de dados é coletado e atualizado.
> length(all_platforms) - nrow(base_df)
[1] 213
Como esses jogos são divididos por plataforma? Vamos dar uma olhada no topo:
Em termos de número de jogos, espera-se que o PC esteja em primeiro lugar, e então, inesperadamente (para mim), o iOS vem atrás, ultrapassando todos os consoles da geração atual. Além disso, mesmo sem uma repartição separada por ano, pode-se ver que o número de jogos aumenta a cada geração subsequente.
Vejamos o número de jogos por tempo de lançamento - por ano, meio ano e mês de lançamento do jogo:
em 2019, uma redução é claramente visível em comparação com 2018 - talvez o banco de dados Metacritic ainda seja reabastecido, mas até agora a diferença é bastante perceptível. Será interessante olhar para os resultados de 2020.
Além do aumento esperado no número de jogos ano a ano, também está claro que a segunda metade do ano é um pouco mais popular - a estratégia de lançar jogos para os feriados de Ano Novo é lida claramente (ou melhor, o lançamento com um certo "atraso" - lançamento em outubro-novembro para que o jogo tenha tempo de coletar imprensa e recomendações). É impossível dizer sobre o sucesso de tal estratégia baseada em dados metacríticos - você precisa olhar para os dados de vendas, mas esse comportamento consistente dos editores faz você acreditar em sua eficácia.
No primeiro semestre, não há picos tão evidentes - afinal, os feriados de Natal / Reveillon são as comemorações mais universais do mundo, claramente associados aos presentes.
É interessante:no banco de dados metacrítico, apenas 18 jogos não têm uma data de lançamento completa. 17 deles são jogos para PC, mais um - para Wii U. Quatro deles têm o ano indicado, mais um tem o estatuto de “TBA 2011”, o resto - TBA ou TBA - Early Access. Nada mal para uma base tão impressionante!
Entre as 96.505 entradas restantes, 25.943 (26,9%) têm classificações críticas, 29.129 (30,2%) têm classificações de usuários e 20.739 (21,5%) jogos têm ambas as classificações.
: 1/5 metacrtitic.com , . , 20 – , . , metacritic.com ( metacritic.com, , ). , (, ), . , , – metascore, .Informações sobre o número de entradas,% de jogos avaliados (etiqueta cinza com um número entre o nome da plataforma e a barra - também é mostrado com um preenchimento colorido) em uma representação gráfica.
Também estava interessado em ver a quantidade de exclusividades em cada plataforma. Aqui, novamente, PC e iOS são os líderes - PC obviamente devido às peculiaridades da plataforma (o desenvolvedor não deve nada ao titular da plataforma - porque simplesmente não há titular da plataforma no sentido semelhante aos consoles); e iOS devido ao fato de que os jogos para celular são um mundo completamente separado, apenas parcialmente se cruzando com os jogos clássicos (pelo menos no sentido de títulos lançados na plataforma). Além disso, percebe-se claramente que quanto mais nova a geração, mais jogos multiplataforma - embora a Nintendo se destaque aqui, que também possui muitos consoles portáteis em seu portfólio, com seu próprio conjunto de séries exclusivas. Observe que os principais consoles da geração anterior - PS4 e Xbox One, completam a lista,apresentando quase o mesmo resultado - 12% e 11% dos exclusivos, respectivamente. Mas é importante fazer um ajuste para o número de jogos publicados na plataforma - o console da Sony está à frente do concorrente da Microsoft neste indicador - de acordo, e o número absoluto de exclusivos é maior aqui. Mas, em geral, a política é comparável - exceto que a empresa de Redmond gasta menos em suporte de marketing para jogos disponíveis apenas em sua plataforma.
Abaixo está um gráfico da distribuição das avaliações (as avaliações dos usuários são reduzidas a uma escala de cem pontos) - não se pode dizer que não há diferenças nas avaliações, mas são bastante próximas.
Para fazer uma conclusão inequívoca sobre a diferença nas pontuações, comparamos as pontuações médias com o teste t pareado (uma vez que estamos comparando os valores médios de duas características para os mesmos objetos). Separadamente, observo que as médias fornecidas são ponderadas pelo número de classificações do jogo. O resultado - levando em consideração o tamanho do banco de dados - é esperado, as diferenças são significativas:
> t.test(x = both_scores$UserScore * 10,
y = both_scores$MetaScore,
paired = TRUE)
Paired t-test
data: both_scores$UserScore * 10 and both_scores$MetaScore
t = -17.603, df = 20738, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1.823471 -1.458075
sample estimates:
mean of the differences
-1.640773
Nesta fase, duas conclusões se sugerem:
- A distribuição das avaliações, independentemente da fonte, é deslocada para a direita, a escala de dez pontos é usada de forma muito limitada - as avaliações dos jogos tendem para a parte superior da escala.
- Usuários e críticos tendem a classificar os jogos de forma diferente - em média, a pontuação do usuário é ~ 1,6 abaixo do MetaScore em uma escala de 100 pontos (o que, no entanto, pode ser uma pequena diferença para um dos consumidores dessas classificações - um jogador tentando ter uma ideia do jogo antes de comprar)
Qual é o próximo? Vamos até o fim.
Liberando o mal
Em primeiro lugar, quero ver o histograma em escala real.
Várias coisas interessantes podem ser vistas no gráfico. Algumas estimativas são claramente mais comuns do que as vizinhas. Isso é perfeitamente compreensível com números "redondos" - 40, 50, 70 pontos são populares entre os usuários. O gráfico mostra claramente que é menos provável que o jogo receba uma pontuação de 79 pontos - se ele atingiu esse valor, não é uma pena lançar um extra para quem escreve avaliações profissionalmente, nem para quem simplesmente compartilha suas opiniões. Mas se você não conseguir puxá-lo de nenhuma maneira, o jogo provavelmente receberá uma nota um ponto a menos - daí os picos de pontos terminarem em 8 ou 3. Todo mundo adora números bonitos!
Mais adiante no programa - histogramas da distribuição das estimativas separadamente para cada ano, começando em 2001 (francamente, fui guiado pela beleza da visualização ao invés de qualquer outro motivo). Aqui, estamos testemunhando uma jornada incrível de avaliação média do usuário de exorbitantes 83 pontos em 2001 para terríveis 47 pontos em 2020 - vamos voltar ao último, mas por agora, lembre-se que no momento da coleta da base, exatamente meio ano se passou e alguns jogos ainda não foram lançados. Neste contexto, as avaliações dos críticos parecem notavelmente estáveis, variando de 70 pontos em 2007 a 75 em 2020, o que ainda não acabou.
E quanto às plataformas? Aqui se podem ver claramente os favoritos dos críticos - são jogos publicados no Nintendo 64 (deixe-me lembrar, no entanto, que existem apenas 94 deles - com estimativas de ambas as fontes - no banco de dados) e ... iOS, curiosamente. A simpatia dos jogadores está de volta ao lado retrô - basta comparar a impressionante média de 86 pontos no PlayStation com os insignificantes 66 nos jogos PS4! Uma dinâmica semelhante é vista na família Xbox. Separadamente, o Nintendo Switch e o Xbox 360 mostram um acordo impressionante entre críticos e usuários.
Talvez a razão para as classificações mais altas do usuário para jogos mais antigos esteja no plano da psicologia - minha hipótese é que as pessoas deram a eles classificações anos, e possivelmente décadas após o lançamento, avaliando suas memórias do jogo e de uma infância feliz ao invés do jogo em si. Para confirmar ou refutar essa hipótese, no entanto, é necessário obter metadados para cada pesquisa de usuário - a base de inferência existente não é suficiente.
Voltemos à análise por ano.
Mais uma vez - mas com mais clareza - podemos observar a estabilidade das avaliações dos críticos e o constante declínio na avaliação média do usuário - até 47 pontos em 2020. Intuitivamente, parece que a correlação entre as estimativas deve diminuir - vale a pena olhar o gráfico com as correlações.
A linha cinza indica a correlação geral para todas as observações no banco de dados (incluindo jogos lançados antes de 2000). À primeira vista, as avaliações dos jogos lançados desde meados da década anterior estão ficando cada vez mais distantes, enquanto as opiniões dos críticos e dos jogadores divergem cada vez mais.
No entanto, ainda temos uma classificação média do jogador anormalmente baixa em 2020. E antes de continuar, você precisa lidar com isso.
Vamos construir um gráfico de dispersão para o número de análises de usuários e críticas. Eu deliberadamente não fiz a escala com o número de classificações dos jogadores logarítmicos - então dois outliers extremos são lidos muito melhor.
Preste atenção aos dois pontos com o número máximo de avaliações de usuários - Warcraft 3: Reforged e The Last of Us: Parte 2. Ambos os jogos têm uma média de avaliação do usuário baixa (em contraste com seus vizinhos menos avaliados dos 10 primeiros em termos de número de avaliações). e o próprio número de avaliações atua como um coeficiente no cálculo da nota média do ano - portanto, ambos subestimam muito a nota média. Abaixo está o top 10 mencionado - e aconteceu que ambos os jogos foram lançados em 2020.
Ambos os jogos são vítimas claras do chamado "bombardeio de revisão" - embora Warcraft 3: Reforged seja, em princípio, uma grande decepção para toda a comunidade, incluindo os críticos. Mas eliminar as avaliações que são muito altas ou muito baixas, continuando a falar sobre a ligação entre as avaliações dos jogadores e os críticos, não é sensato. E se apenas esses dois jogos fossem excluídos? Bem, a avaliação média do usuário em 2020 aumentará acentuadamente. Porém, a influência no coeficiente de correlação será praticamente imperceptível - ao contrário da média, seu cálculo não levou em consideração o "peso" do jogo.
E se excluirmos da análise todos os jogos com muitas classificações? E quanto é muito grande? Vamos dar uma olhada mais de perto na variável:
> summary(both_scores$UserReviews)
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.0 11.0 25.0 144.2 75.0 104424.0
Um dos critérios clássicos para encontrar outliers é o limiar de um intervalo interquartil e meio. Em nosso caso - (75-11) * 1,5 = 96 (que deve ser adicionado ao valor do terceiro quartil). Não há emissões “do fundo” - a pontuação do usuário é definida quando há pelo menos quatro análises, mas de cima eliminamos 2768 jogos, deixando 17 971 entradas.
Podemos observar novamente as avaliações médias do usuário abaixo de 70 após 2011 e uma diminuição gradual na correlação desde 2017 - no entanto, é importante notar que indicadores de correlação semelhantes foram encontrados antes - no período 2000-2020 representado claramente destacam-se 2005, 2010-2011, 2015- 2016 anos. Mas o declínio nunca foi sistemático - sinais disso são perceptíveis no período 2017-2020. Há duas explicações possíveis: primeiro, a contribuição da revisão do bombardeio pode ser superestimada; em segundo lugar, posso subestimar sua escala, e é necessário reduzir ainda mais o critério do máximo aceitável de avaliações de usuários; entretanto, para o bem deste material, vou me ater à primeira hipótese, deixando a verificação da segunda como uma possível discussão.
Além de tudo o que já foi discutido acima, gostaria de chamar a atenção do público diretamente para a diferença de classificações - para o cálculo da qual, novamente, a classificação média do usuário foi multiplicada por 10.
Pela primeira vez neste material, aparece uma distribuição que se assemelha a uma normal (teoricamente, o pesquisador é necessário verificar a normalidade da distribuição, no entanto, há uma ressalva segundo a qual, dada a aleatoriedade da seleção de observações e uma base suficientemente grande, a diferença da distribuição normal pode ser ignorada usando ferramentas estatísticas padrão) - isso pode ser considerado um sucesso local! No entanto, não será possível consolidar o sucesso com uma verificação formal - verificar a normalidade pelo Qui-quadrado de Pearson nos retornará um valor p visivelmente inferior a 0,05:
> Diff <- unlist(both_scores %>%
mutate(ReleaseDate = year(ReleaseDate), Diff = UserScore * 10 - MetaScore) %>%
select(Diff))
> nortest::pearson.test(Diff)
Pearson chi-square normality test
data: Diff
P = 35078, p-value < 2.2e-16
Resta apenas aceitar, para nos lembrar que as conclusões baseadas na análise dos jogos com ambas as classificações no Metacritic.com não devem ser generalizadas para os jogos em geral - e com este pensamento continuar a análise.
Vejamos a diferença nas classificações por ano de lançamento do jogo:
Se o primeiro gráfico é difícil de interpretar, o segundo mostra claramente a tendência indicada anteriormente - os jogadores são mais favoráveis aos jogos "antigos" - e tendem a avaliar os novos jogos piores do que a imprensa. Curiosamente, a diferença média é muito próxima de zero para jogos lançados em 2009-2010 - e vejam quais jogos foram lançados há uma década! Vale lembrar, porém, que a correlação entre as estimativas em 2010 é relativamente baixa - parece que o número real de jogos com estimativas divergentes este ano é grande, mas os vetores das diferenças se equilibram.
Finalmente, vamos dar uma olhada nas plataformas - individualmente e independentemente do ano de lançamento do jogo:
Se excluirmos o Nintendo 64 com seus 89 títulos, a situação é, em geral, esperada semelhante em diferentes plataformas. O pico da diferença zero, no entanto, flutua - por exemplo, as classificações dos jogos no Nintendo Switch são mais consistentes, enquanto as classificações dos jogos no iOS são "manchadas" na escala - e o "pico" da distribuição é mais provável em um valor de cerca de -20 - a plataforma é a líder clara em termos de número de jogadores insatisfeitos. O gráfico abaixo apenas confirma isso. By the way, aqui os principais consoles da geração de saída também estão entre os "líderes" na antipatia dos usuários de PS4 e Xbox One. Embora no campo da Nintendo, nem tudo seja sem nuvens - o saldo é negativo.
Você já deve ter visto o gráfico abaixo no início do artigo - porém, nesta versão dele há mais jogos e a plataforma iOS é adicionada - ele fica em último lugar honroso em termos de conectividade de classificações.
Talvez valha a pena parar por aí e avançar para as conclusões.
Resumindo
O mundo não é fundido em bronze ou esculpido em pedra. Algo nele está mudando.
Obviamente, os próprios jogos estão mudando. Os jogadores também mudam - seu número e diversidade de opiniões estão crescendo. E se a indústria de análises tenta aderir a alguns - embora não declarados - padrões, mantendo a pontuação média em ~ 7,5 pontos, os jogadores avaliam claramente a situação de forma diferente - para jogos lançados com 20 anos de intervalo (em 2000 e 2020), a classificação média do usuário é Metacritic caiu de 8,5 para 6,9 - uma perda séria!
Quais são as razões por trás disso? Minhas hipóteses:
- Os jogadores do Metacritic tendem a avaliar melhor os jogos que passaram a infância - efeitos nostálgicos (provavelmente) ausentes - ou eliminados - pelos críticos profissionais;
- , , Metacritic, - , «» 7.5 ;
- , Metacritic – , , «» ( ).
Dois deles podem ser verificados, e a abordagem é quase idêntica - com algum esforço, é possível estabelecer se as classificações dadas muito depois do lançamento do jogo são mais altas do que as classificações dadas nos primeiros dias / semanas após. Para eliminar o efeito do bombardeio de resenhas, vale a pena “limpar” os jogos com um número excepcionalmente alto de avaliações nas primeiras horas após a oportunidade de publicar resenhas se tornar disponível - ou pelo menos ignorar as primeiras avaliações do usuário.
A verificação da segunda hipótese exige muito trabalho para reavaliar toda a gama de jogos (por questionar a objetividade dos críticos, não há como confiar nessa avaliação). Talvez um bom indicador seja a relação entre as taxas e os orçamentos dos jogos, mas os editores relutam em compartilhar esses números - e o efeito de marketing não foi cancelado (você pode culpar o mesmo tipo de esportistas ou os transportadores da Ubisoft e Activision Blizzard por muito tempo, mas esses jogos ainda são vendidos ano após ano grandes edições).
Nós assistiremos.