As primeiras dúvidas

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?


online