Como a falta de cuidado e o “hardware instancing” podem arruinar parcialmente um jogo?

Numa altura em que os jogos atingirão um detalhe como nunca antes visto, a falta de cuidado e o uso abusivo do “hardware instancing” podem diminuir ou mesmo estragar a qualidade geral de um produto.

Nota: As imagens que se seguem são do jogo Ryse: Son of Rome, um exclusivo Xbox One. No entanto o teor deste artigo não se destina a criticar a consola ou o jogo em si, até porque o mesmo ainda está longe de se encontrar finalizado. No entanto a Build usada para demonstrar este jogo mostra como, caso a mesma não seja ajustada, a falta de cuidado e o “hardware instancing” podem destruir a qualidade de um produto.

O “hardware instancing” apareceu com o Direct X 9. Trata-se de uma capacidade das placas gráficas de replicar certas situações já rendidas sem a necessidade de as render novamente. É uma situação bastante útil na criação de florestas onde com uma única árvore calculada a mesma pode ser repetida vezes sem conta de forma a ser criada uma floresta, e tudo isto sem qualquer peso adicional no cálculo que de outra forma teria de render as árvores uma a uma, mesmo que iguais.

Apesar das notórias vantagens desta situação o uso do “instancing” necessita de bastante cuidado no seu uso. Afinal com uma floresta criada com uma única árvore o que teriamos seria uma plantação de clones e não uma floresta. Daí que há que se ter o cuidado de aplicar subtis alterações a cada uma das árvores, nem que sejam ligeiras rotações das mesmas, de forma a que o que o utilizador visualiza seja algo de único e não cópia atrás de cópia da mesma coisa.

Assim o normal em situações deste género é a criação de cerca de meia dúzia de parâmetros diferentes associados à geometria, e combinar vários valores dos mesmos com rotações do produto final, criando-se assim um conjunto que quando visualizado parece constituído por entidades únicas, mas que na realidade são apenas variações de algo préviamente calculado.



E Ryse: Son of Rome, tal como a maioria dos jogos actualmente existentes, é um dos jogos que dá uso a esta característica do hardware. Mas no entanto, na Build apresentada na E3, a implementação dessa situação estaria certamente numa fase ainda bastante primitiva. É que quando analisada a imagem com cuidado o que se podia ver era o seguinte (carreguem sobre a imagem para a resolução total).

Ryse 2

Como podem ver, o “instancing” é usando intensivamente nesta cena. Há 3 barcos iguais, mas em posições diferentes, e existem dois conjuntos de troncos afiados de grandes dimensões colocados na água e igualmente rodados. De resto a maior parte das batalhas que se encontram a decorrer em baixo são igualmente cópias uma das outras, apesar de rodadas.

O grande problema aqui não se trata dos barcos ou dos conjuntos de troncos que estão rodados o suficiente para passarem despercebidos. E diga-se que no que toca à cena das batalhas o que está em causa não é igualmente o uso do “instancing” para as mesmas. Essa é uma situação perfeitamente comum em quase todos os jogos.

O que chama a atenção nesta cena é que não houve cuidado com a mesma, e assim sendo as batalhas não foram trabalhadas de forma a parecerem diferentes. Na realidade todos os conjuntos de soldados que vemos assinalados a vermelho na imagem estão a lutar exactamente da mesma forma. E no mesmo frame! Quer isso dizer que quando um levanta a espada todos os outros fazem o mesmo. Quando um é empurrado para trás, todos os outros fazem o mesmo, etc . Não só aqui não houve o cuidado de se criarem parâmetros que tornassem as lutas diferentes, como faltou o cuidado principal de não colocar todas a serem executadas na mesma altura. Um dessincronizar das batalhas poderia dar a ilusão de que as mesmas são diferentes o suficiente para passarem despercebidas.



Note-se que a imagem de cima não foi obtida do video passado na E3, mas por alguém que jogou o jogo e teve o cuidado de parar para admirar o cenário, apercebendo-se desta situação que certamente deverá estar resolvida na versão final do jogo.

No entanto a mesma serve claramente para demonstrar como a falta de cuidado nestas situações pode ser prejudicial ao realismo de um jogo, e numa altura onde se esperam situações cada vez mais perfeitas este é o tipo de situações que há que ser corrigido e não pode existir.

Existe contudo outra situação de notória falta de cuidado com o detalhe neste jogo, e para a explicitar melhor vou colocar uma imagem de The Last of Us para a Ps3:

Joel

Em The Last of US, e no sentido de se criar o maior sentido de realismo possível, o conteúdo da mochila de Joel é constantemente alterado de forma a reflectir a totalidade do arsenal que este possui. Absolutamente todas as armas no inventário são visíveis e Joel remove-as das suas costas conforme necessita das mesmas. O machado ali visível é uma arma que é regulamente substituída por troncos, ferros ou outros, e mesmo aí o que vemos nas suas costas é efectivamente o objecto que Joel possui. E é de louvar que quando melhoramos essa arma, por exemplo com a colocação de uma tesoura na ponta de um tronco, o que vemos nas costas de Joel actualiza para reflectir esse pequeno pormenor.

Mas em Ryse: Son of Rome, durante uma cena, os soldados avançam para um ataque a um grupo de arqueiros (carreguem sobre a imagem para a resolução total):

Ryse 5

Mas surpreendentemente, vindo sabe-se lá de onde, eis que, por duas vezes os soldados obtêm Javelins (lanças) que atiram sobre os arqueiros (como se o alcance de um Javelin (cerca de 30m) pudesse ser igual ao de uma flecha (mais de 160 metros)… mas isso é outra história).

Ryse 3

Muitos irão contestar… É apenas um jogo! Mas se estas falhas ao realismo não são importantes então o grafismo também não é. E se não é, voltemos todos a jogar gameboy. Para além do mais, se todos os bons jogos tem esses cuidados, espera-se que a versão final de Ryse tambem os tenha.





Posts Relacionados