Análise à Performance: Firewatch
O que correu mal na PS4 - a v1.02 corrige os problemas?
Muito se falou sobre a pobre performance de Firewatch na PlayStation 4 ao longo destas semanas e com a chegada da actualização 1.02, decidimos investigar. Problemas no rácio de fotogramas podem não algo preocupante numa aventura focada na narrativa mas num jogo tão focado nas caminhadas pelos cenários, um refrescamento inconstante e trepidação intrusiva afectam a experiência. O Campo Santo finalmente entregou uma actualização.
O estado inicial do jogo era intrigante e confuso, mas o estúdio foi muito aberto na conversa com a comunidade. Falou sobre os problemas que estavam a corrigir e foi rápido com a actualização - mas o que se passou e até que ponto pode ser corrigido?
Olhando para o código de lançamento e vemos na perfeição os problemas técnicos. Firewatch corria com um rácio de fotogramas desbloqueado e v-sync de duplo buffer, que forçava o jogo a saltar entre vários rácios de refrescamento. Ao apontar a câmara para locais menos exigentes, como o céu, o rácio de fotogramas sobe para 60fps. Ao olhar em frente, as coisas regressam a 30fps ou inferior, criando uma performance instável. Desde logo sentimos que um bloqueio a 30fps teria suavizado as coisas.
Os problemas no rácio de fotogramas ficavam mais salientes devido a um problema comum a muitos jogos Unity - soluços e trepidação. Em Firewatch isto é muitas vezes causado pelo auto-save, mas existem outros momentos em que acontece quando estão a ser lidos novos bens. Combinado com o rácio de fotogramas inconsistente, o jogo começa a ficar muito inconsistente.
Por fim, temos o desorientador problema na aceleração da Câmara. Não existe ajuste para a sensibilidade nas opções. No lançamento, Firewatch alterna entre um movimento lento da câmara para um rodopio descontrolado. Moves o analógico numa direcção e, por um instante, mal se move e quando estás a apontar para a direita, entra a aceleração e a câmara parece que voa.
Com a chegada da actualização 1.02 as coisas ficam interessantes - o jogo consegue corrigir completamente dois dos problemas. Primeiro introduz um bloqueio a 30fps - não mais sofrendo com os picos e produzindo um nível mais equilibrado na performance. Além disso, quando o rácio de fotogramas desce abaixo de 30fps, na versão actualizada fica acima 3fps do que antes.
Os problemas com a aceleração da câmara também foram corrigidos. O analógico direito responde com mais naturalidade e permite melhor exploração. Os controlos melhorados e um rácio de fotogramas estabilizado ajudam imenso o jogo. Podemos dizer que agora a PS4 oferece uma experiência muito boa - uma incrível transformação.
Mas mesmo com esta melhoria, ainda existem muitos soluços, que parecem estar ligados ao streaming de novos bens - o que acontece muito. O auto-save também causa trepidação. Parece que o estúdio reduziu a sua frequência para aliviar alguns problemas. É a única nódoa na performance. O que se passa então? Acreditamos que a resposta está no motor. Firewatch usa o Unity - ferramenta desenhada para facilitar o desenvolvimento.
É fácil entender o apelo do Unity. É fácil criar um protótipo de um novo jogo, as ferramentas são amigáveis e existe uma comunidade vibrante em torno dele. Parece bom para construir um jogo. No entanto, a forma como gere certas tarefas não é a melhor. Actualmente, os programadores de consola familiarizados com a tecnologia dizem-nos que o motor tem dificuldades em criar tópicos de forma eficaz, muito importante para uma plataforma multi-core como a PS4.
Isto refere-se à capacidade do motor em explorar vários streams de instruções ao mesmo tempo. Tendo em conta a relativa falta de poder em cada um dos núcleos CPU da PS4, é crucial para obter performance suave. Compreendemos que existem problemas na recolha de lixo, responsável pela movimentação de dados de e para a memória - algo que pode gerar soluços. Quando o teu conceito começa a crescer em complexidade, as coisas que o Unity gere podem não ser suficientes quando os recursos são limitados.
Jogos construídos com o Unity têm um historial de problemas na performance. Rácios de fotogramas instáveis, problemas no carregamento, soluços, e outros afectam vários jogos. Mais vezes nas consolas do que no PC mas também aí podem sofrer. Jogos como Galak-Z, Roundabout, The Adventures of Pip, e outros operam com soluços que reduzem a fluidez do movimento. Outros casos, como Grow Home, Oddworld: New 'n' Tasty na PS4, e The Last Tinker operam com performance altamente variável que afecta a jogabilidade. Chegou ao ponto em que os jogos Unity que correm bem nas consolas, como Ori and the Blind Forest ou Counter Spy, são raros.
Existe esperança - a mais recente versão do Unity, a v5.4, chega a 16 de Março. Dizem que irá incluir várias melhorias na performance. Membros do Campo Santo, já sugeriram que estas melhorias estarão em Firewatch.
No entanto, sentimos que aqui a culpa não é toda do Unity. Dois dos principais problemas corrigidos na v1.02 podiam ser sido corrigidos durante o desenvolvimento. O rácio de fotogramas deveria estar bloqueado a 30fps quando se tornou óbvio que não havia espaço para a performance chegar aos 60fps.
Os grandes saltos entre 30 e 60fps afectaram a fluidez do jogo e agora, bloqueado a 30fps, aumenta a sua consistência. É estranho o jogo ter sido lançado no estado em que estava pois alguns problemas eram óbvios. Notámos a falta de bloqueio no rácio de fotogramas quando foi visto pela primeira vez na PS4 - visto como foi corrigido tão depressa, é intrigante não estar presente no lançamento.
É pena que a v1.02 não seja perfeita. É uma colossal melhoria sobre o código de lançamento - diferença incrível que reforça a ideia que o jogo não deveria ter chegado naquelas condições. É uma pequena aventura focada na narrativa e não é o tipo de jogo que vamos repetir diversas vezes - é jogar e terminar. Ficamos impressionados no PC mas se a primeira sessão tivesse sido na PS4, teríamos ficado desiludidos.
Apesar do Campo Santo ser rápido a responder às queixas, pode ser tarde para alguns. Felizmente, os principais problemas estão quase todos resolvidos e os novos jogadores vão ter uma experiência soberba - se estás a atrasar a compra, é agora altamente recomendado, apesar de estarmos curiosos para ver se a actualização v1.03 irá corrigir os restantes problemas.