2021/03/01

Fã corrige má programação do GTA Online - reduz tempo de carregamento de 6 para menos de 2 min.

Os milhões de jogadores que perderam dias da sua vida à espera que o GTA Online carregasse, poderão gostar de saber que o tempo de carregamento poderia ser reduzido para menos de um terço com umas pequenas correcções.

Quem me conhece ou por cá me acompanha há algum tempo saberá que nada me deixa mais irritado que coisas mal programadas. Fico "doente" sempre que vejo um qualquer programa a adicionar mais um serviço ou tarefa à longa lista de coisas que o programa executa quando arranca, com particular ódio para todos os que mantêm processos a correr para verificar actualizações, quando isso seria algo que poderia ser eficientemente tratado pelo agendamento de tarefas do sistema operativo - e nem me falem dos sistemas de DRM dos jogos, que se podem equiparar a autênticos vírus a infiltrar-se por todo o sistema. Infelizmente, nos tempos que correm, as opções acabam por ser "dar em louco" com estas coisas, ou desistir e aceitar que as coisas são assim (e que em parte foi responsável por fazer com que começasse a dedicar-me aos jogos nas consolas, em vez de "infectar" o computador com eles).

Mas, há quem não se resigne tão facilmente. Temos este caso exemplar de alguém que não baixou as mãos ao ser confrontado com o facto do jogo GTA Online continuar a demorar 6 minutos para carregar no seu computador, e havendo relatos de pessoas em que esse valor passa dos 10 minutos, e que decidiu investigar qual seria a causa, com um desfecho surpreendente.

Há muitas coisas que podem explicar tempos de carregamento longos nos jogos, mas nada pode explicar que num computador relativamente recente, algo demore 6 ou mais minutos! Ainda mais, neste caso havia a curiosidade adicional do jogo carregar em pouco mais de 1 minutos em "story mode", mas no modo online demorar 6x mais. O que poderia explicar isso?
Depois de ter descoberto que o computador só passava cerca de 1 minuto a carregar dados do disco, e depois passava o resto do tempo a "queimar" CPU (e apenas num dos cores), a investigação acabou por revelar que todo aquele tempo é (mal) passado a fazer a interpretação de parâmetros JSON de um ficheiro com 10MB, e que só demora esse tempo inacreditável por o processo estar a ser mal feito. Com dois pequenos ajustes, o tempo de carregamento passou de 6 minutos para menos de 2 minutos, e seguramente poderia ser reduzido ainda mais, se fosse bem feito de raiz, em vez de ser apenas uma solução de "desenrasque" feita por uma pessoa que não tem qualquer relação com o estúdio que desenvolveu o jogo.

Agora imaginem só, quanto mais casos não haverá por este mundo fora, de jogos e outros programas, onde algumas linhas de código serão responsáveis pelo desespero de milhões de pessoas ao longo de anos. Faz-me recordar outro dos meus ódios de estimação, que são aqueles jogos que mesmo em PCs com 32GB de RAM, se se morrer assim que um nível acaba de ser carregado, voltam a fazer-nos suportar todo o carregamento do nível novamente, como se não estivesse já completamente em memória!


Infelizmente a situação dos jogos é caso habitual da má programção, apesar das reclamações não se ficarem por aí.


Actualização: A Rockstar vai mesmo implementar a correcção feita por este fã.

13 comentários:

  1. A sério um array em vez de um hashmap com tantos hashes unicos e com tantos acessos, até eu se estivesse no secundário faria melhor código.

    ResponderEliminar
    Respostas
    1. Se era assim tão fácil, já poderias ter sido tu a fazer, não? Agora que alguém já fez, é fácil mandar palpites...

      Eliminar
  2. Jogo no console, e nunca cronometrei o tempo, 6min.é mais tempo do que eu pensava!

    ResponderEliminar
    Respostas
    1. Não é 6 min Man no meu ps3 é cerca de 2:15 cronometrado

      Eliminar
  3. Não sei como é que o jogo está neste momento na PS3 ou xbox 360...Mas 6 minutos é demasiado lento!

    Na PS4 diria que em 3 minutos se calhar o jogo carrega... Vou tentar experimentar.

    De qualquer forma, não será estranho isto ser culpa apenas do ficheiro? Não acredito que não tenham feito nada durante este tempo todo (o jogo saiu originalmente em 2013) com tantos recursos que a rockstar tem. Este ficheiro não têm qualquer utilidade?

    ResponderEliminar
    Respostas
    1. No meu PS4 demora mais de 10 minutos para entrar no jogo. Desde quando comprei o ps4 e instalei o jogo demora.

      Eliminar
  4. "Put a five second delay - ex: Thread.Sleep(5000); behind every common action in your software, then after 3 months when your users go crazy remove the delays and tell them you worked tirelessly to improve performance and suddenly everyone will love you."

    ResponderEliminar
  5. Tá, e onde está a solução?

    ResponderEliminar
  6. Também fiquei esperando ..

    ResponderEliminar
  7. Só vim em busca da solução e nada, kkk

    ResponderEliminar
  8. A Raiz quadrada da iportenusa €({×y=[€×a=y}9).

    ResponderEliminar