Certo,
você deve estar se perguntando: mas como eu começo
meu jogo? Comece pelo tema.
Não
tem jeito. Partir para a criação de um jogo ou
apenas para a modelagem de um cenário 3D, sem ter um
tema definido é o mesmo que assistir um clássico
do futebol brasileiro, do meio da torcida adversária:
vai apanhar muito. Então, se chegou até aqui sem
ter bolado um tema qualquer, melhor tirar uns dias de licença
não remunerada e pesquisar. Nem preciso dizer que o club
TILT tem espaço para isso.
Mas,
e conto com isso, se já está em "ponto de
bala", então a hora é essa e vamos começar
pela parte mais interessante mesmo: criar o universo virtual,
no qual nosso jogo estará inserido. Para efeito de exemplificação,
vamos criar uma sala, de onde teremos que sair.
Para
tanto, qualquer modelador 3D serve. Basta que ele permita exportar
os modelos em formato 3DS, que é de
longe o formato 1001 utilidades do 3D. Ele nasceu com o velho
3D Studio, que
modelava barbaridades no tempo dos XTs de 12 Mhz e 512 Kbytes
de memória. O 3D Studio virou o consagrado 3D
Max, e é um dos modeladores mais utilizados
até hoje. Mas existem outros programas, como o Maya,
LightWave, Blender,
etc.
Vale,
para modeladores, a mesma regra de ouro de outros setores da
vida moderna: não é tanto a "potência"
da ferramenta que importa, mas a capacidade criativa de quem
a usa. Como estamos lidando com modelagem para renderização
em tempo real, a simplicidade é a palavra chave, para
obtermos sucesso. E simplicidade não quer dizer apenas
criar um cubo, colocar uma fachada de prédio nas faces
e pedir para o usuário: "olhe, que belo edifício
temos ali", ou ainda usar um cubo com fotos das laterais
de um carro, ou o pior de todos arranjos meia-boca: aquele cone
com textura de grama, fingindo ser um pinheiro.
Embora
a renderização em tempo real não permita
(ainda) o mesmo grau de detalhamento que a modelagem foto realística,
já podemos usar algumas coisas mais sofisticadas que
cubos, esferas ou cilindros. Mas ainda precisamos levar em consideração
que o desperdício atrapalha (e muito) o desempenho da
renderização e conseqüentemente do jogo.
Agora
a pergunta fatídica: e a tal física quântica,
ou a matemática compucabalística? Vamos ter que
lidar com elas? Bem, se você está querendo criar
uma engine 3D, do zero, com certeza vai ter que aprender ainda
muita coisa sobre números. Mas, se o seu objetivo é
fazer um jogo, então deixe essas coisas para os profissionais
que sabem lidar de fato com elas e vamos aproveitar ao máximo
as facilidades que o mundo da computação moderna
nos colocou à disposição.
E,
no caso do Delphi, você já deve ter ouvido falar
da GLScene (glscene.org)
e da OpenGL (opengl.org).
OpenGL é uma das bibliotecas gráficas mais poderosas
e fica mais poderosa ainda a cada nova implementação.
GLScene é uma engine 3D para o Delphi. Simplifica em
muito a programação em OpenGL, permitindo coisas
como criar um efeito de chama ou fogos de artifício,
com um pé nas costas, uma mão na cabeça
e assoviando o hino nacional, de trás para frente.
Mas
ela não é uma engine específica ou exclusiva
para jogos. Serve para fazer qualquer coisa em 3D, no Delphi.
Então, criamos um componente para simplificar ainda mais
a vida do programador. Um componente que irá otimizar
a programação da GLScene. Ficamos portanto assim:
nossa preocupação será modelar o cenário,
exporta-lo em 3DS, ajustar alguns parâmetros e programar,
no Delphi, aquilo que é pertinente ao nosso jogo, ou
seja, o que de fato queremos que aconteça com o jogador,
no cenário em questão.
Simples,
não é mesmo?