Legacy of Kain: Soul Reaver - a origem da tecnologia de mundo aberto?
Uma vasta área jogável sem in-game loading...parece-te familiar?
Nos videojogos de hoje em dia, o mundo aberto é um dado adquirido: uma área jogável vasta, oferecendo aos developers uma espécie de quadro em branco. No nível mais básico, o que faz estes jogos funcionar é a tecnologia que eles fazem para carregar dados e informações em tempo real, sem qualquer tipo de espera ou loading, permitindo-te jogar sem qualquer tipo de interrupção. Aquilo que é agora uma norma, foi em tempos um dos conceitos mais ambiciosos no mundo dos videojogos, o qual surgiu nas consolas graças ao clássico Legacy of Kain: Soul Reaver para a Playstation original.
Este jogo foi lançado durante um período difícil para a PS1. A Dreamcast estava prestes a chegar ao Ocidente, e o Legend of Zelda: Ocarina of Time da N64 tinha elevado a fasquia de quão ambicioso um jogo de aventura deveria ser. Apesar disto, o Soul Reaver conseguiu deixar a sua marca como um dos jogos mais impressionantes a nível técnico na Playstation. Com mundos vastos para explorar, animação fluída e uma produção sonora fenomenal, este jogo épico da Crystal Dynamic continua a ser um marco da história dos videojogos, mesmo tendo passado 18 anos.
A chave para o seu sucesso foi a forma como este jogo incorporou elementos conhecidos como "Metroidvania" para um vasto mundo em 3D - a ideia central era que o jogador se focava em obter habilidades para desbloquear certos caminhos através de áreas previamente exploradas. O Gex engine, nome retirado da consola 3DO, ultrapassou os limites da época em questão, não apenas a nível de tecnologias de background world streaming. Tendo em conta o clássico Ocarina of Time, o qual corria a 320x240, o Soul Reaver conseguiu aumentar a resolução para 512x240, tendo como objetivo os 30 fps, ao contrário do limite de 20fps que a sua concorrência tinha. Apesar de correr a partir de um cartucho, o Zelda ainda tinha uma espécie de pausa para carregar as informações do cartucho. Esta pausa era suficientemente rápida, mas o mundo aberto do Soul Reaver não tinha nenhum in-game loading, exeto uma pequena pausa quando ligas o jogo pela primeira vez ou quando reinicias um save game.
Isto foi um avanço tecnológico substancial, mas a fundação já estava disponível, sendo esta fundação a capacidade de armazenamento. A Playstation usava CD-ROMs, oferecendo enormes quantidades de espaço, assim como a opção de levar o áudio e vídeo ao próximo nível. Infelizmente, tendo apenas uma drive de double speed, esta consola estava limitada por velocidades de transferência limitadas. O resultado? Na maioria dos jogos os loading screens eram uma realidade dura. O Blood Omen, o jogo que antecedeu o Soul Reaver, era apenas um jogo 2D e sofria deste problema. Portanto, era necessário encontrar uma solução para o novo jogo, por isso foi implementado um sistema que fazia streaming dos dados em tempo real, escondendo assim o loading. Basicamente, o jogo continuava a fazer stream de novos dados enquanto jogavas.
Então como é que funciona? Essencialmente, o jogo está dividido numa série de unidades, cada uma representando uma divisão, corredor, ou caminho para outras divisões. Quando o jogo está a correr, o Soul Reaver armazena três unidades na memória a qualquer momento - a divisão na qual o jogador se encontra, assim como as duas divisões adjacentes. Assim que o personagem principal se move para uma unidade nova, a unidade que está mais longe do jogador, e que está em memória, é descartada e carrega a próxima. Os mapas foram desenhados de forma a que o processo de carregar uma unidade nova demore menos tempo do que aquele que o jogador precisa para atravessar a unidade em que se encontra. Uma excelente ideia, certo?
Tendo em conta a drive de CD-ROM lenta, foram usados outros truques para melhorar a transferência de dados. Por exemplo, cada unidade de mapa tem uma lista de tipos de objetos usados nessa cena, cada objeto é carregado apenas uma vez, e a lista diz ao sistema quantas cópias deveriam ser colocadas numa determinada área. Este método é também usado nos modelos e ambiente. Essencialmente, torna-se possível procurar os dados de qualquer skin, animação ou polígono de qualquer modelo, usando estes truques.
Outra técnica usada no armazenamento baseia-se no uso do colour look-up tables (CLUT). Todas as texturas usam estas paletes para definir uma cor apropriada, assim como diferentes partes de uma textura podem usar look-up tables diferentes, permitindo esquemas decores mais ricos. Também é usado o per-vertex colouring, trazendo ainda mais variedade ao mundo. Isto permite que o developer use uma única textura em diversas situações, alcançando resultados diferentes.
Para além disso, devido à grande quantidade de armazenamendo que os discos possuíam, eram colocados ficheiros duplicados ao longo do CD, permitindo um acesso mais rápido a determinados ficheiros quando fosse necessário. Hoje em dia, com os discos rígidos, é menos crítico, mas antigamente a distribuição dos dados tinha um enorme impacto na velocidade de recolha de informações, e esta técnica ainda foi usada os jogos da Xbox 360 e Playstation 3.
Complicando ainda mais o level streaming, o Soul Reaver também usou dimensional shifting. Durante o jogo, os jogadores podem trocar entre o plano material e espectral, uma mecânica que está relacionada com os puzzles e com a história do jogo. Carregar duas versões diferentes do mesmo mapa iria forçar demais o sistema, o qual já estava a ser levado ao limite, mas a solução da Crystal Dynamic foi elegante, inovadora e eficiente. É usado os mesmos dados básicos do mapa, mas a geometria é mapeada para diferentes coordenadas em cada versão do nível. Ou seja, ao trocar entre os dois planos a geometria é intercalada.
No final, todos estes elementos juntam-se e permitem que o Gex engine proporcione um sistema de data streaming totalmente funcional, usando um hardware que simplesmente não foi produzido para realizar este tipo de tarefas. Era possível percorrer um mundo por completo e entrar noutro mundo novo sem haver um único loading screen. Esta tecnologia iria continuar a ser útil para o developer, mesmo após o lançamento do Soul Reaver, assim como também teve um impacto outras áreas.
Por exemplo, a drive de CD da Playstation era frequentemente usada para reproduzir Redbook audio, ou seja a Playstation podia reproduzir faixas de som em vez de gerar sons através do hardware. Com a drive a ser totalmente usada pelo level streaming, isto não era possível ser alcançado pelo Soul Reaver, por isso foi usado áudio em sequência, tal como na SNES. A Crystal Dynamic tirou partido da consola para alterar dinamicamente a música, ou seja a música mudava à medida que o gameplay mudava. A qualidade de som é estonteante, mas a memória e armazenamento eram reduzidos, e a banda sonora de Kurt Harland continua a ser um marco.
O Soul Reaver acabou por ser lançado em três plataformas: PS1, Dreamcast e PC. Por isso, qual é a melhor plataforma para jogar Soul Reaver? Se fores ao GOG podes comprar uma versão deste jogo, a qual funciona decentemente num PC moderno. Esta versão ultrapassa algumas das limitações do hardware da PS1, tal como a texture warping e baixa resolução, mas o jogo continua a estar limitado a 30fps, e não suporta comandos com analógicos modernos. Adicionalmente, a banda sonora dinâmica está ausente, a música está efetivamente presente, mas continua a ser reproduzida em loop em vez de alterar de acordo com o contexto. No entanto, jogar a versão da Dreamcast é uma opção viável. Com 60fps por segundo, geometria limitada, texturas melhoradas, assim como uma distância de visualização mais longa, é uma boa opção. Mas continuas a estar limitado a uma resolução de 540x480, as limitações do comando são um problema, e a performance não é tão consistente como desejas.
A emulação pode ultrapassar os frame-rate drops da Dreamcast, e os controlos podem ser personalizados, mas isto causa alguns problemas visuais. Por isso, da nossa perspetiva, caso queiras jogar o Soul Reaver, é indiferente jogar este título no hadware original ou usar o Demul. O Soul Reaver é um jogo que merece ser revisitado, apesar de a experiência poder ser agridoce: apesar de ter sido lançada uma sequela, nunca foi lançado um terceiro jogo. Ou seja, estamos perante um gigante adormecido, e apenas podemos esperar que a Square-Enix decida revisitar esta série algum dia. Apesar de tudo, a Crystal Dynamics continua a ser um developer central no conjunto de estúdios internos da Square-Enix...