Dicas técnicas para desenvolver jogos.

Se você quer desenvolver jogos, você tem basicamente 3 caminhos: Se tornar um programador, se tornar um artista gráfico ou musical ou finalmente se tornar um designer. Geralmente em equipes pequenas é necessário uma mistura, basicamente designer mais um dos outros dois, e geralmente que quer desenvolver jogos gosta dessa solução.

Para quem quer começar a programar jogos, é necessário conhecimento técnico, e aqui vão algumas dicas para começar bem.

- Comece devagar

Não pense que vai começar programando um jogo 3D completo, do nível de um lançamento profissional. Esses jogos tem milhares de homens-hora e você é apenas um homem, que provavelmente tem mais coisa para fazer da vida. Comece programando coisas pequenas, tipo remakes de jogos mais antigos, sem intenção de lançá-los. A intenção é aprender. Isso vale também para a escolha da linguagem. Não adianta partir para a linguagem mais utilizada profissionalmente sem ter ideia do que está fazendo, você vai desistir na primeira semana (eu sei, já fiz isso). Eu recomendo linguagens onde a parte gráfica já está praticamente pronta, tudo que você tem que fazer é ler um tutorial simples falando como carregar a imagem em uma posição da tela e ele faz todo o resto. Actionscript e XNA são as minhas favoritas. Mas existem linguagens para todos os gostos.


Uma parte do código do novo jogo da Nuclear. Tudo bem simples no começo.

- Aprenda a matemática

Quando se faz um jogo, ele está fazendo muita coisa ao mesmo tempo. A melhor forma de diminuir esse trabalho é aprendendo funções matemáticas, de geometria analítica para tratar coisas como rotação de objetos na tela por exemplo. Se você não gosta de matemática então dificilmente vai fazer um código eficiente. Quem me conhece sabe que não sou dos melhores matemáticos. O que gosto de dizer é: "Eu gosto de matemática, ela que não gosta de mim." Eu sei que matemática não é a coisa mais fácil, mas mantenha a mente aberta e se esforce para ver utilidade, com certeza ela existe para boa parte dos ferramentais matemáticos. Isso serve também para complexidade de algoritmos.

As duas dicas acima são resolvidas de uma forma bem fácil: Universidade na área de computação. Seja qual curso for (Bacharelado em Ciências da Computação, Engenharia da Computação, Sistemas de Informação) eles provavelmente vão te ajudar e muito. Agora para dicas independentes do curso, porque sim: A faculdade não vai te ensinar NADA específico para jogos, você terá que correr atrás.

- Jogue!

Isso é fácil não é mesmo? Errado. Nesse caso a idéia é jogar um jogo e tentar entender como ele funciona, por baixo dos gráficos e do som. Tente pensar em como você faria aquilo. Para fazer isso você vai precisar saber programar. E não estou falando para fazer engenharia reversa. É apenas parar para pensar ao invés de jogar pensando apenas no jogo.

Agora: Vamos supor que já fez isso tudo acima, e pegou um projeto um pouco maior para trabalhar.

- Espere o design tomar forma.

Sair programando sem saber o que o jogo terá no final é implorar para repetir trabalho. Se requisitos forem adicionados no jogo enquanto você está fazendo este você terá muito mais trabalho. Protótipos de funções que você vai utilizar são uma boa para entender como vai fazer na hora H, mas tente se segurar para não fazer um código super complexo antes do jogo estar fechado.

Esse tipo de imagem não serve apenas para enfeitar posts de blogs dos desenvolvedores. Ajudam a definir muito sobre como o jogo vai funcionar e horas são gastas discutindo as direções que o jogo deve tomar baseada nela.

- Equilibre flexibilidade com eficiência.

Quando se faz um programa qualquer, uma regra básica é que quanto mais flexível o programa for mais lento ele vai ser, por ter que ficar analisando cada situação antes de fazer o necessário. Para partes que serão utilizadas em muitas situações compensa ser flexível. Vale lembrar também que código flexível consome mais tempo de desenvolvimento. Então não tente fazer uma engine completa no seu primeiro jogo, tente encontrar soluções prontas.

Agora algumas dicas bem específicas:

- Estude MEFs (Máquinas de Estado Finito)

Criar um menu principal que na verdade só muda o estado da sua MEF é bem fácil e consome pouco tempo. E nas transições é possível limpar o jogo do estado anterior, mantendo o jogo funcional e eficiente. Animações também podem ser abstraídas para MEFs.

- Estude Diagramas de Classe

Saber como cada componente de seu jogo interage ajuda na hora de criar cada um dos componentes. Isso está extremamente ligado a esperar o design ficar pronto. Um diagrama de classes deveria fazer parte de todos os designs de jogos, e facilita muito o trabalho (não acredito que disse isso).

- Use um repositório

Repositórios podem salvar vidas. E quando se trabalha em equipe são a forma mais fácil de se evitar duplicação de trabalho. O importante é aprender a usá-los direito, sem medo de ser feliz por não ter que juntar o código de 3 pessoas sozinho. Esse tempo perdido juntando porções de código podia ser melhor utilizado fazendo mais código, e terminando seu jogo.

0 comentários:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

 
Nuclear Core Studios © 2010 | Designed by Trucks, in collaboration with MW3, Broadway Tickets, and Distubed Tour. Customizado por Bruna Lanzillotta.