GameSpot: Como a engine do Vice City foi alterada para permitir um mapa do mundo muito maior em San Andreas enquanto ainda se livra completamente das telas de carregamento para a área do mundo?Obbe Vermeij: Um sistema de nível de detalhe [LOD] completamente novo foi implementado, por meio do qual vários modelos (construções) podem compartilhar um único modelo de baixo nível de detalhes [LOD]. Dessa forma, os modelos de baixo nível de detalhes podem ser carregados conforme o jogador se move pelo mapa, ao contrário de uma vez conforme o jogador se move entre as ilhas, como em Vice City.
GameSpot: Com este novo mapa de streaming, há algum limite para o tamanho que o mapa mundial pode ter? O que cria esse limite, se houver um?John Whyte: Sempre há limites! Existem limites para o número de objetos que podem estar em qualquer seção do mapa, e isso determina mais do que qualquer coisa a densidade dos objetos no jogo. Algumas das seções da cidade efetivamente maximizaram o jogo em sua forma atual. Se quiséssemos aumentar a densidade dos objetos, teríamos que voltar ao código e reescrevê-lo para lidar com números muito maiores. (Tecnicamente falando, há muitas estruturas no código que dependem da indexação de 8 bits para economizar espaço.)
GameSpot: Com os rumores crescentes de “Pé Grande” circulando no jogo, há uma maneira de controlar a probabilidade de que um evento apareça? Um único evento pode ser programado para ocorrer extremamente raramente, digamos uma vez por ano?John Whyte: Essa é uma boa ideia! Mas receio que não haja como os scripts identificarem a data e criarem eventos agendados dessa forma.
GameSpot: Qual é a escala estimada do jogo no mundo real? Qual é o tamanho de San Andreas em termos “reais”?John Whyte: O mapa tem 6 por 6 quilômetros ou 36 milhões de metros quadrados. Esse é apenas o mapa externo e não inclui os locais internos do jogo, que são muitos. Além disso, o jogador não está restrito à área povoada do mapa. O jogador pode pegar um barco ou avião e viajar em qualquer direção que desejar.
GameSpot: Quantos objetos (carros e coisas do tipo pedestre) estão ou podem estar ativos ao mesmo tempo? Este número aumentou na versão para PC da versão PS2?John Whyte: Com certeza. A versão para PC tem uma distância de clipe [visão, desenho] maior, então mais do mapa está sempre visível, e o mapa tem muitos detalhes que tiveram que ser removidos da versão para PS2 para caber no espaço de memória menor. As distâncias de clipe para carros e pedestres também aumentaram. Precisamos tirar essas coisas mais adiante porque o PC funcionará em uma resolução mais alta. No total, isso significa que o PC está empurrando muito mais do que o PS2.
GameSpot: Como o mecanismo de script mudou desde Vice City? Como isso melhorou? Quais são alguns de seus novos recursos favoritos?Chris Rothwell: Nossa equipe dedicada de programadores está sempre se esforçando continuamente para melhorar os conjuntos de recursos, a eficiência e a usabilidade do mecanismo de script durante o desenvolvimento da série GTA. Embora fundamentalmente a linguagem de script e o mecanismo não tenham mudado muito desde que foram usados para fazer o GTA3 há cinco anos.
Desde Vice City, inúmeras melhorias foram feitas para tornar o script mais poderoso, como a adição de arrays, instruções de troca [SWITCH], sequência de tarefas para inteligência artificial de personagem [TASK_SEQUENCE] e inúmeros comandos específicos do jogo. Uma ferramenta favorita adicionada durante San Andreas foi a capacidade de registrar as posições dos carros enquanto os dirigia pela cidade no jogo [carrec], podendo então reproduzir essas gravações dos carros em tempo real durante uma missão. Isso nos permitiu realmente polir e melhorar nossas missões em trilhos [on-rails] e cenas com script.
Muitos dos novos recursos de jogo em San Andreas só foram possíveis devido a esses avanços na linguagem de script. Por exemplo, o casino baseado em 2D e jogos de console não eram viáveis em Vice City até que uma série de comandos de sprite de exibição de heads-up foram adicionados durante o desenvolvimento de San Andreas. Também havia muito poucas animações personalizadas usadas durante as missões em Vice City, mas para San Andreas tínhamos uma interface de script de animação totalmente nova. Esse sistema permitiu que os designers implementassem uma jogabilidade com muita animação codificada inteiramente na linguagem de script, como no jogo de sinuca, no basquete, no para-quedas e em várias outras áreas.
GameSpot: O que pode ser programado no jogo? Como os scripts são gerenciados?Chris Rothwell: O mecanismo de script GTA é incrivelmente poderoso e flexível, e dentro do jogo há muito pouco que não pode ser afetado, alterado ou modificado pelo script. Em teoria, quase qualquer gênero de jogo poderia ser feito usando o motor GTA sem uma única alteração no executável apenas adicionando novos scripts e recursos de arte.
Temos um script geral de governança que chamamos de “main script”. Entre outras coisas, este script principal mantém o controle de seu progresso no jogo, depois carrega e inicia um script de missão quando você pisa em um gatilho de missão ou inicia um dos trabalhos estranhos. Apenas um script de missão está na memória e em execução por vez. Além das missões, temos scripts de ambiente residentes na memória ao longo da duração do jogo que controlam uma grande variedade de sistemas do jogo. Exemplos disso são o telefone celular, saltos de acrobacias e scripts de interface de loja. Outro tipo de script de ambiente entra e sai da memória conforme o jogador se move pelo mapa [streaming]. Eles seriam usados para encontros específicos de locais ou anexados aos vários objetos utilizáveis ao redor do mapa, como o guindaste ou máquinas de venda automática.
GameSpot: Haverá a possibilidade de refazer o skin do personagem principal da mesma forma que na versão para PC de Vice City?John Whyte: Reskinning é uma tarefa muito mais complicada em San Andreas. Isso ocorre porque o modelo para CJ tem três variações (normal, musculoso e gordo, dependendo da jogabilidade), e as roupas do modelo devem ser montadas item por item para ter controle total sobre o guarda-roupa de CJ. Ainda pode ser feito, mas provavelmente exigirá algumas ferramentas personalizadas para ser utilizável.
GameSpot: Se você for capaz de fazer o reskinning, como o jogador e também o artista [modder] lidarão com o fato de que o modelo do personagem pode mudar muito durante o jogo?John Whyte: Por tentativa e erro!
GameSpot: Que contagem de polígonos a engine gráfica pode gerar? Isso é um aumento de Vice City? Como esse aumento foi realizado?Obbe Vermeij: O código de renderização geralmente passou por uma grande reformulação. Foram feitas melhorias nas técnicas de seleção que impedem as coisas de serem renderizadas quando não estão visíveis na tela [occlusion culling]. Resultando em uma taxa de quadros [framerate] mais alta em combinação com toneladas de novos efeitos, dá ao jogo um novo visual incrível.
GameSpot: Como os ativos de textura [TXD] foram gerenciados entre todas as versões para que as texturas pudessem ser as mesmas do PS2, mas ser muito mais nítidas e detalhadas no PC?John Whyte: As texturas foram todas originalmente criadas em sua resolução mais alta e depois cortadas para as plataformas que não tinham memória ou desempenho para lidar com isso.
GameSpot: Como os reflexos são tratados quando projetados na lateral dos carros e as sombras no CJ?John Whyte: As sombras são uma mistura de buffers e volumes de sombra para obter os resultados que desejamos. Infelizmente, é difícil conseguir uma aparência consistente com eles quando misturados. Os reflexos sobre os carros estavam sendo feitos em um ponto por ambiente – mapeando o conteúdo do buffer de tela no carro com um alfa baixo [uma versão simplificada de screenspace reflections?]. Mas não parecia certo em alguns casos, então o removemos.
GameSpot: Por que você usa Z-buffers em vez de campos de partição de espaço binário para disposição de textura?John Whyte: Muito do código em San Andreas é feito de uma maneira particular para mantê-lo bem sincronizado com as versões do console, caso contrário, demoraria muito mais para terminar! Nos consoles, temos que confiar muito mais no hardware gráfico para fazer as coisas, ao invés de sermos capazes de processar através da CPU.GameSpot: Obrigado, pessoal. Foi esclarecedor.