
A
criação de jogos em computador é uma
atividade extremamente excitante. Ela nos obriga a uma série
de pesquisas e discussões técnicas que, se
não são encaradas com maior seriedade pelos
"puristas da programação" pelo menos
nos colocam frente a um mundo onde a criatividade é
essencial e o inesperado uma constante.
Apesar disto, ou talvez em função disto, bons
textos técnicos ainda são escassos, principalmente
na língua nativa.
Por
trás de uma colocação como esta está
a apresentação de um estágio de desenvolvimento,
das técnicas atuais de construção de
jogos e animação gráfica, que pode
ser considerado como uma tecnologia avançada em questões
de criatividade. Nada do que será visto neste artigo,
porém, constitui-se em uma grande descoberta. O mérito
maior está na originalidade que, baseada num casamento
de técnicas e conceitos eficazes, produz um resultado
pelo menos exuberante.

Qualquer
usuário "mais velho" concordará
que, apesar dos fabricantes de hardware, os criadores de
software estão aí para provar que tudo é
possível. Talvez, quem sabe, até mesmo colocar
8 bytes em um bit.
O
Que É Filmation II?
Projetar um jogo para o computador sempre envolve uma questão
de compromisso entre disponibilidade de memória e
diversidade de elementos. De fato, qualquer que seja o tipo
de jogo, dos arcades aos adventures, o programador deve
estabelecer um limite a partir do qual o seu projeto passa
de possivelmente realizável à loucura total.

A busca por uma melhor performance da relação
espaço/desempenho tem levado muitos pesquisadores
às raias da paranóia total. Sendo um pouco
mais realista, eu diria que há muito equívoco
passando atestado de descoberta fantástica, mas é
inegável que, nos últimos tempos, uma técnica
sobressaiu-se a todas as demais, Trata-se da FILMATION II.
Ela surgiu em meados de 1985, na Inglaterra, por intermédio
do jogo Knightlore da Ultimate e foi imediatamente descrita
como um processo que garante uma ação instantânea
em três dimensões, usando-se gráficos
de alta complexibilidade, A indústria do marketing
entrou logo em ação e brindou-nos com a seguinte
descrição: ADVANCED HOME COMPUTER ACTION ADVENTURE
SIMULATION.
Exageros à parte, a técnica mencionada é
realmente um novo conceito em criação visual
para games. Lindos, maravilhosos e simplesmente fantásticos,
os efeitos criados em FILMATION Il são para inglês
nenhum botar defeito. Isso tanto é verdade que a
FILMATION introduziu uma nova classificação
para os jogos: o arcade adventure.
Na verdade, esta técnica permite a existência,
em computadores de pouca memória e sem drives, de
jogos que são um mito de adventures com o que há
de melhor em animação gráfica. Apesar
disso ela não opera milagres, mas os jogos comer
ciais que têm surgido desde então já
estão sendo apontados como as melhores produções
de todos os tempos (bem ao estilo Hollywood).

Jogos como Knightlore, Gunfright, Movie, Sweevo's World,
Nightshade, Rasputin, Alien 8, Pentagram, Batman, Heavy
on the Megick, Greyfell, Nuclear Countdown, The Great Scape
e o incrível Failight nos dão prova mais que
suficiente que o assunto em questão merece, por baixo,
uma atenção toda especial. E é justamente
isso que faremos aqui.
A
Concepção Da Filmation II
A criação em FILMATION pressupõe um
mundo real a ser projetado, onde existirão objetos
e seres que devem ser descritos como fisicamente possíveis.
Explico melhor: supondo, por exemplo, a existência
de uma "caverna labiríntica" (na falta
de um termo melhor fica este mesmo), onde existem morcegos,
pedras, um riacho, tochas, mesas, bolas, baús, sarcófagos,
ratos etc. (não me perguntem o que uma mesa faz numa
caverna). Todos esses elementos podem ser representados
por um desenho real tridimensional. Mas isso não
é tudo, pois devemos considerar também como
elementos as paredes da caverna, o mato na entrada dela
etc...
A criação deste mundo imaginário deve
ser de tal forma que os desenhos em alta resolução
dos elementos não roubem O espaço das outras
funções do jogo. Isto significa que se uma
tela em HI-RES, considerada como uma espécie de cenário,
normalmente ocupa 6 Kb de memória, então em
48 Kb é possívei colocar apenas e, tão
somente, oito telas. Assim nosso jogo só teria oito
lugares para se ir e não haveria espaço nem
para a função de mover-se de um lado para
outro ou nenhuma outra
função. Não haveria nem mesmo lugar
para o nosso nome na apresentação do jogo,
simplesmente porque não haveria espaço para
a apresentação.
As técnicas de compactação de imagens,
que floresceram antes da FILMATION, permitiam na melhor
das hipóteses levar o total de posições
de um jogo a um máximo de 30 ou 40 locais, Em FILMATION
II fala-se em quantidades por volta de 1000 a 2000 lugares,
ou cenários, possíveis de serem construídos.
Delírio de grandeza? Não, e a resposta é
muito simples: modularidade.

A natureza é pródiga em construções
simples e eficientes onde a organização dos
elementos, que compõem uma forma é um arranjo
inteligentemente estruturado. O raciocínio humano
muito cedo foi acordado para o fato de que uns poucos elementos,
bem escolhidos, podem proporcionar uma variedade quase infinita
de formas. O próprio computador nos fornece um exemplo
definitivo em que um conjunto de oito elementos, com uma
variação para duas formas 1 e O, pode fornecer
256
combinações absolutamente distintas. 16 elementos
nestas mesmas condições fornecem 65536 formas
distintas. Calculem, a título de curiosidade, quantas
formas proporcionariam 32 elementos.
Mas na natureza, bem como na construção de
jogos, nem todas as combinações resultam em
formas coerentes e inteligíveis. Vejamos um caso
literário onde o objetivo é construir frases
com as palavras homem, vinho, bom e ruim. Como exemplos
coerentes teríamos:
A modularidade estabelece, então, que para um dado
conjunto de elementos há uma série de combinações
coerentes e de expressividade lógica. A quantidade
de formas obtidas pela combinação é
diretamente proporcional à qualidade e quantidade
de elementos que estão à disposição.
Isso significa que quanto mais simples e claro for o elemento,
mais formas podem ser construídas.
Construir uma forma a partir de elementos fornecidos é
relativamente fácil, uma vez que podemos aplicar
o método da tentativa e erro, porém retirar
de um dado universo a ser reproduzido os elementos modulares
é um trabalho que exige algum treino e muita visão
espacial.

Os artistas, desenhistas, escritores e pintores normalmente
usam a sua acentuada capacidade de retirar do todo o detalhe
para irem construindo as suas obras. Um romance, um quadro,
etc, nada mais são do que a reconstrução,
parte por parte, de um universo que serviu de modelo.
Construindo No Computador
Para ilustrar esses conceitos, vamos ver um exemplo no próprio
computador. Como objetivo teremos à construção
de uma série de salas de um antigo casarão,
ao estilo daqueles construídos no Brasil pelos imigrantes
que aqui aportaram na época da colonização.
Não haverá muito rigor no traço dos
desenhos, pois a referência é apenas informal.

Nossa primeira preocupação é quanto
aos elementos estruturais, Janelas, portas e paredes devem
ser esquematizadas de forma a proporcionar um resultado
visual satisfatório. Estes elementos transpostos
para o computador na forma de figuras ou shapes resultaram
num banco de imagens (figura 1), que poderá ser manipulado
de forma permitir a construção das salas em
questão (figura 2, 3, 4, 5 e 6).
A partir das salas construídas vamos fazer algumas
observações: note como uma parede, que tecnicamente
ocupa um espago visual grande, é construída
com poucos tijolos expostos. Este é um truque de
síntese visual bastante utilizado no desenho em quadrinhos.
Note também como a porta foi projetada para existir
tanto aberta quanto fechada. O batente é o mesmo
para os dois casos.

Outro ponto importante é a disposição
especial dos elementos. Note como em alguns casos o mesmo
elemento é mostrado com um ângulo e, em outros
casos, o ângulo de visão foi alterado. Isso
para a FILMATION II é função da rotina
de impressão das imagens e não do desenho
propriamente dito, ou seja, existe um determinado shape
e várias formas de imprimi-lo no vídeo.
Outra regra fundamental, que comanda a FILMATION II, é
a de que uma forma não deve ser vista como um todo,
mas a sua imagem deve ser fracionada em tantos elementos
quantos sejam necessários para a construção
do todo e também de outras formas. Consegue-se dessa
forma uma grande otimização do espaço
de armazenamento das figuras na memória. Nas figuras
7, 8 e 9 você pode observar os shapes de alguns dos
jogos mencionados anteriormente.

No nosso exemplo, construímos cinco salas que se
fossem telas armazenadas gastariam aproximadamente 30 Kb
de RAM. Todos os shapes para compor as salas não
ocupam mais do que 300
bytes e cada sala custa aproximadamente 18 bytes. A fórmula
é à seguinte: para cada elemento da sala nós
temos um byte para designar qual é o shape a ser
usado, dois bytes para indicar a linha e coluna onde se
dará a impressão do elemento e mais um para
indicar como será essa impressão (normal,
invertida, espelhada, mixada, sobreposta, apagada etc.).
Construir formas com essa metodologia é quase como
se estivéssemos construindo realmente uma casa. É
uma boa oportunidade para o programador deixar aflorar o
arquiteto que existe dentro dele.
O que vimos até aqui está relacionado com
os elementos estruturais que compõe uma forma, ou
seja, os elementos que normalmente, mas não essencialmente,
são estáticos. Eles compõem o chamado
mundo físico base, do jogo, que garante e define
a existência dos outros elementos, ou seja, os elementos
dinâmicos. Tais elementos são as peças
e objetos que irão dar vida ao jogo, pois à
animação gráfica normalmente se concentra
neles.

O processo de impressão dos elementos dinâmicos
é extremamente diferente do processo que viabiliza
a disposição dos elementos estruturais. A
principal diferença está relacionada com o
fato de que os elementos dinâmicos não permitem
uma planificação única de sua existência,
pois um bom jogo deve partir do princípio de que
um dado elemento poderia estar em qualquer ponto da forma.
Assim, enquanto uma janela é sempre colocada do mesmo
local, uma mesa poderá estar até mesmo no
teto da sala. Mesmo que isso pareça fisicamente impossível,
o sistema que controla o jogo tem que ser hábil 0
bastante para prever uma situação que, por
mais duvidosa que seja, possa acontecer.
O problema da impressão dos shapes dinâmicos
está na sua complexidade e no detalhamento da sua
forma. Todo shape, seja ele criado no computador mais simples
ou no mais completo sistema gráfico, terá
sempre uma distribuição bidimensional de sua
estrutura, ou seja, comprimento e largura. Na figura 10
temos o esquema de uma mesa e suas zonas de definição
de imagem. Um ponto a destacar é o fato de que as
zonas mortas não devem se constituir em um obstáculo
à formação da imagem na tela do vídeo.
Quando um shape é enviado ao vídeo, todos
os seus pontos são impressos. Para que a zona morta
de um determinado shape não cause o branqueamento
do que já havia sido impresso anteriormente, faz-se
necessária a criação de uma máscara
especial.

Esta máscara obedece rigorosamente ao contorno do
objeto que se definiu no shape. À figura 10 ilustra
à mesa e sua respectiva máscara. O processo
de impressão é deveras simples: em primeiro
lugar, a máscara é enviada ao vídeo
com uma operação AND e logo a seguir o shape
é impresso com uma operação OR. Isso,
meus caros amigos, usuários, programadores e leitores,
constitui o grande segredo da FILMATION II. Tudo o mais
é perfumaria.

Na prática, O que acontece é que quando a
máscara é impressa ela apaga uma área
idêntica à área do objeto. Nem mais,
sem menos. Desta forma, quando o objeto for mixado com tela,
ele não causará o apagamento do que estiver
ao seu lado. Veja na figura 11 diversos elementos impressos
numa sala.
Conclusão
Trabalhar com FILMATION Il é uma atividade de programação
extremamente simples, Não requer grandes conhecimentos
técnicos e nem mesmo grandes computadores como suporte.
Mas não se iluda, meu caro leitor, pois fazer um
Knight Lore é muito, muito, muito, mais do que simplesmente
criar e imprimir shapes.
É claro que a ajuda de um bom editor gráfico
é fundamental, além disto, os programas de
apoio à programação, tais como editores
Assembler, monitores, debug, etc., também têm
a sua importância. De qualquer forma, o essencial
é ter uma metodologia de criação, sem
à qual nada do que foi dito aqui tem utilidade prática.
Observações
* Os shapes e as figuras desta matéria foram criados
com o editor gráfico GRAPHOS III, em um MSX;
* Os shapes dos jogos foram obtidos com a utilização
do utilitário PROKIT scanner para MSX; e
* As técnicas e rotinas de impressão de gráficos
podem ser vistas com detalhes na série "Animação
gráfica no TK90X".