terça-feira, 18 de maio de 2010

Introdução à programação de Jogos para Leigos

Este post é destinado apenas a pessoas que querem trabalhar em programação. Vale a pena ressaltar que jogos não se resumem apenas a isso, existem muitas outras áreas como roteiro, level design, sonoplastia, etc... que também são bastante interessantes.

Por que não trabalhar com jogos?
Coloquei isso como inicial porque a maioria das pessoas que me procuram querendo aprender a fazer jogos têm a idéia errada.

A primeira coisa que todo mundo pensa quando quer trabalhar com jogos é que vai ser muito divertido. No pior dos casos acha que ficar jogando o tempo todo sem precisar fazer as "lições de casa". Porém, as coisas não funcionam assim, para desenvolver um jogo é necessário toda uma base de conhecimentos em estruturas, ferramentas e muita mão de obra.

Se você quer ser um programador, presica saber que vai passar a maior parte do tempo digitando código (imagem abaixo). O que demanda tempo e esforço, principalmente quando há necessidade de ajustar e procurar por erros de codificação.

Não quero implantar um medo e dizer que desenvolver jogos é algo extremamente impossível, claro que não, tem muita gente fazendo um agora mesmo. Apenas quero dizer que não é a mesma coisa que jogar jogos. Produzir jogos é como qualquer outro trabalho.


E por que trabalhar jogos?
Esse assunto é realmente variável, vai depender de de pessoa para pessoa, portanto colocarei por eu gosto de desenvolver jogos.

Em primeiro lugar eu gosto de programar, consigo ficar horas na frente do computador olhando código. Claro que quando tudo não funciona eu me estresso, paro e vou fazer outra coisa, mas quando funciona é como se fosse uma grande vitória, dá vontade de ficar mais tempo fazendo.

Gosto de saber como os jogos funcionam, das novas tecnologias e soluções que usam para tornar um jogo melhor. E nada como um grupo de pesquisa como o Indigente para discutir sobre isso, pois assistimos vários vídeos, jogamos, analisamos e comparamos jogos novos e antigos. Tentamos definir porque um jogo de gráfico ruim e velho é às vezes melhor do que um jogo lançado ontem.

Também acho que é uma grande satisfação ter algo como "Super Mario Bros." (por mais simples que seja) funcionando.

Como funciona um jogo?
Vou passar uma idéia bastante superficial de como um jogo trabalha e recomendo uma pesquisa.

Considere essas funcionalidade abaixo:

lógica de jogo: onde se implementa as regras. Por exemplo, em um jogo de damas as peças só podem andar uma casa na diagonal em direção ao seu adversário;

inteligência artificial: cria comportamento de entidades no jogo. Ex.: reação que um inimigo tem ao vê o jogador próximo em um game de luta

grafico, modelos: toda a parte visual do jogo

controle: entrada de teclado, mouse e joysticks

som: todos os sons presentes no jogo

Todas estas atividades ficam dentro de um loop. O jogo captura o teclado, calcula a lógica e inteligência artificial e gera o gráfico, som e outras partes sensoriais. Após essa iteração começa tudo novamente.
Boa parte do suporte para essas funcionalidades já estão implementadas em algum motor de jogos (game engine) facilitando bastante o trabalho.
Para iniciantes, recomendo esses dois motores (ambos com versões gratuitas):
Unity3D: http://unity3d.com/
Panda3D:http://www.panda3d.org/

Nenhum comentário:

Postar um comentário