- O popular shooter cooperativo Helldivers 2 reduziu o tamanho de instalação em cerca de 85% em uma atualização recente
- Com o suporte da Nixxes Software, o tamanho foi reduzido de 154GB para 23GB usando deduplicação de dados de jogo duplicados
- A estrutura pesada anterior existia por causa da duplicação de dados para otimizar em discos rígidos mecânicos (HDD), mas constatou-se que o ganho real na melhoria do tempo de carregamento foi superestimado
- Em medições recentes, até mesmo usuários de HDD (11% do total) tiveram um aumento no tempo de carregamento de missão de apenas alguns segundos
- A nova ‘versão slim’ oferece a mesma experiência de jogo da versão anterior, mantendo o progresso e o histórico de compras inalterados
Redução drástica do tamanho de instalação do Helldivers 2
- A Arrowhead Game Studios conseguiu reduzir o tamanho de instalação do Helldivers 2 de cerca de 154GB para 23GB
- Com cerca de 131GB de espaço de armazenamento economizado
- Esta otimização foi realizada com a colaboração da Nixxes Software
- A Nixxes é conhecida como a desenvolvedora de portes para PC dos principais títulos da Sony
- Esta parceria aplicou tecnologia de remoção de dados duplicados
Remoção da otimização para HDD e efeito no tempo de carregamento
- A estrutura inicial maior foi devido a dados duplicados para melhoria de desempenho de carregamento em discos rígidos mecânicos (HDD)
- Em HDD, era usado um método de armazenar dados idênticos em vários locais para reduzir atrasos de carregamento
- A equipe de desenvolvimento confirmou, porém, que a estimativa anterior baseada em dados da indústria estava incorreta
- Em medições reais, a taxa de usuários de HDD ficou em torno de 11%
- Esses usuários também apresentaram aumento no carregamento de missões de apenas alguns segundos, no máximo
- A equipe explicou: “a maior parte do tempo de carregamento vem do processo de geração de nível e ocorre em paralelo com o carregamento de ativos do disco”
Abordagem da versão slim
- A atualização beta da Steam permite o uso da ‘versão slim’
- Oferece uma experiência funcionalmente idêntica à versão anterior
- Progresso, contribuição de guerra e histórico de compras são mantidos
- Participantes da beta podem fazer opt-out (Opt-out) a qualquer momento
Significado da perspectiva de desenvolvimento de jogos
- Este caso é visto como um exemplo de possibilidade de reduzir espaço de armazenamento em jogos de PC
- Remoção de duplicação de dados ineficiente que era um problema comum em jogos AAA de grande porte
- Um ponto de atenção para outros estúdios sobre a necessidade de otimizar o espaço de armazenamento
Informações adicionais
- Helldivers 2 é um jogo de tiro cooperativo que, na atualização mais recente, melhorou eficiência de armazenamento e acessibilidade
- A Tom’s Hardware apresentou essa mudança como um avanço positivo para jogadores de PC
2 comentários
É lamentável, mas ainda bem que corrigiram. Acho que deve haver mais casos assim, só que ainda não vieram a público.
Opiniões do Hacker News
Segundo dados divulgados recentemente pelos desenvolvedores, foi confirmado que, mesmo para os usuários de HDD do Helldivers 2 (11% na semana passada), o tempo de carregamento das missões só aumenta alguns segundos no pior caso
A maior parte do carregamento ocorre por causa do processo de geração de fases, que acontece em paralelo à leitura dos assets no disco
Ainda assim, é difícil justificar que o jogo ocupasse mais de 150GB, e fica a dúvida de por que isso foi permitido mesmo sendo possível essa otimização
A maioria dos usuários não analisa com atenção o espaço em disco exigido antes de comprar o jogo, então quase não há impacto nas vendas, enquanto corrigir isso exige recursos de desenvolvimento
Se tivessem que bancar custos de armazenamento em nuvem de 150GB por usuário, isso teria sido resolvido imediatamente
O gargalo real aparece rápido quando é medido, e a correção também costuma ser simples
Mas esse tipo de trabalho é tedioso e custa caro, então tende a ter baixa prioridade dentro da organização
Talvez exista um ciclo vicioso em que, por causa do tamanho enorme da instalação, as pessoas acabam instalando no HDD secundário em vez do SSD
Muitos desenvolvedores ainda fazem otimização mais no feeling do que com base em dados reais
Isso porque o console foi construído partindo do pressuposto de SSD, então não havia dados duplicados
Os 154GB da versão de PC eram resultado de duplicação massiva de assets, e no início o jogo ficava na faixa de 40~60GB
Depois, com o desenvolvimento continuando em cima de um engine descontinuado (Bitsquid/Stingray, link da wiki), isso foi crescendo aos poucos
Foi calculado que, nos últimos 2 anos, o desperdício de recursos de hardware causado por esse problema chegou a pelo menos 10 milhões de dólares
A desenvolvedora basicamente economizou algumas centenas de milhares de dólares em custo de engenharia e empurrou a conta para os usuários
Acho que a única forma de evitar esse tipo de desperdício é uma cultura que valorize a qualidade de software
Pessoalmente, como eu tinha um drive de 2TB para jogos, não me importava muito com o espaço
Houve também quem questionasse se esse conceito representa um custo real do ponto de vista do consumidor
Outra pessoa acrescentou: “no fim, é só o incômodo de instalar um jogo a menos”
O Titanfall de 2014 foi um caso parecido
Dos 48GB totais, 35GB eram de áudio não comprimido, supostamente por causa de CPUs dual-core (artigo relacionado)
Decodificar MP3 quase não pesa na CPU, e o formato de áudio do Titanfall (OGG a 160kbps) já era compressão com perdas
Isso lembrou casos de economizar 10 mil dólares por mês ao limpar recursos não utilizados em uma conta da AWS
Em um mod recente de Monster Hunter: Wilds, foi usado o caminho oposto: salvar texturas já descomprimidas para reduzir o gargalo de descompressão na GPU (link do vídeo)
Agora eu também vou ali limpar minhas contas de nuvem
Fiquei curioso sobre que tipo de otimização foi feita
Como HDD não tem layout físico fixo, talvez duplicar armazenamento para reduzir tempo de busca nem fosse tão eficaz assim
Talvez a causa tenha sido simplesmente deixar desativada, no build, uma opção de “deduplicação baseada em hash”
Depois da deduplicação, o tamanho da instalação caiu bastante, e o arquivo de atualização chegou a ser maior que o jogo inteiro
Como SSD já é o padrão hoje, parece exagerado ter investido nisso para otimizar HDD
A ideia é incluir de forma duplicada, em cada estágio, os recursos comuns necessários e ler tudo de uma vez
É uma estratégia de trocar espaço por largura de banda, usada desde a era do CD
Baixei recentemente Hunt: Showdown, que tinha 70GB, e um mês depois um update baixou tudo de novo no mesmo tamanho
Provavelmente o update foi tratado como reescrita completa
Baixar de novo dezenas de GB é realmente muito ineficiente
Esse é um problema que a maioria dos jogos já tinha resolvido antes mesmo de a Steam ficar tão grande
O Helldivers 2 foi feito em um engine antigo (baseado em Bitsquid), mas mostra que ainda dá para fazer um ótimo jogo sem usar a tecnologia mais nova
A comunidade chegou a fazer campanha pedindo correções diretamente
Se não tivessem usado um engine sem suporte, o jogo provavelmente teria sido muito mais estável
Lembro que, numa otimização de jogo em que trabalhei no passado, consegui reduzir o tamanho para 1/4 em runtime, mas como visualmente tudo parecia igual, o produtor não ficou impressionado
Fiquei pensando se desta vez também houve resistência interna
Já tive experiência de a Steam decidir usar HDD como cache por achar que faltava espaço no SSD, e reinstalar tudo foi mais rápido do que atualizar
Foram 5 minutos de download para 8 horas de update, o que foi absurdo
Espero que esta atualização melhore esse tipo de problema
Isso acontecia porque os arquivos já criptografados precisavam ser descriptografados de novo no disco, aumentando a carga de acesso aleatório
Fiquei curioso se os arquivos duplicados eram realmente usados no PC
Parecia estranho imaginar que o acesso ao sistema de arquivos fosse restrito a ponto de dar para escolher qual cópia seria mais rápida no HDD
Isso permitia leitura sequencial sem busca no HDD
É uma técnica usada desde a época de Crash Bandicoot, e o motivo de ainda haver otimização para HDD em 2024 provavelmente foi apenas limitação do engine