Skip to content

23 de maio de 2010

1

Quero fazer jogos!

Unity 3D

Unity 3D - Game Engine

No último post falei sobre os anos 90. Cheguei a ser chato falando do Wolfenstein 3D e do Doom, mas isso faz parte. Você precisa conhecer os games mais importantes (pelo menos) de todos os tempos para entender as motivações das empresas e dos desenvolvedores para entender melhor o mercado de games. Você precisa entender como funciona a cabeça de participantes de equipes experientes, os problemas que elas enfrentam e a complexidade que é desenvolver jogos com a qualidade dos que apresentei até agora. Essa é a vida de um desenvolvedor de jogos! Bem vindo ao meu mundo <<risada maligna>>! A partir de agora, além de artigos na linha dos anteriores – falando um pouco mais da história dos jogos, olhando para os jogos de uma forma mais holística -, escreverei artigos mais específicos, focando na carreira como programador de jogos. Sempre que possível, no entanto, tentarei trazer comentários a respeito das outras áreas.

Então você quer ser um programador de jogos? Se você quer mesmo ser um programador de jogos já deve ter visto essa pergunta uma porção de vezes em uma quantidade razoável de sites/blogs. Ela não é feita à toa e, por isso, farei-a novamente: então você quer ser um programador de jogos? Você tem certeza disso? Espero que continue com essa certeza ao final deste artigo. Em um artigo que li na Game Career Guide (uma revista que recebo uma vez por ano como parte integrante da assinatura da Game Developer Magazine) vi um parágrafo genial sobre os programadores de jogos. Fazia uma comparação entre as principais áreas que englobam o desenvolvimento de um game. Dizia que artistas criam mundos e personagens fantásticos, “game designers” são capazes de definir como o jogo funcionará, mas sem a programação eles acabariam com um monte de artes bonitas e palavras. A programação tem a missão de fazer o jogo funcionar, de trazer as idéias de várias pessoas (incluindo suas próprias) à existência.

God of War Chains of Olympus

God of War Chains of Olympus

O desenvolvimento de jogos é, sem sombra de dúvida, uma das áreas mais complexas da computação, pois envolve uma série de conhecimentos específicos de diversas áreas: gráficos, animações, inteligência artificial, interface gráfica do usuário (GUI – Graphical User Interface), redes, simulações físicas, áudio, entradas de dados, bancos de dados, dentre outras. É, também, a área mais recompensadora: é muito mais legal falar para os seus amigos que você trabalhou no último God of War do que no desenvolvimento do último sistema de missão crítica da Dell. Mas tudo tem um preço.

Um programador nada mais é do que um solucionador de problemas, na maioria das vezes problemas tão complexos que a mente humana não é capaz de resolver sem o auxílio de máquinas digitais (não estou falando de câmeras fotográficas). O programador de jogos é, além disso, um otimizador: além de resolver problemas complexos, ele tem que ser capaz de escrever códigos que rodam extremamente rápido, que possam ser reutilizados e sejam flexíveis o bastante para que possam ser adaptados quando necessário e tudo isso com um prazo a cumprir. Você normalmente será solicitado a realizar tarefas em áreas totalmente desconhecidas para você e também a realizar os sonhos mais loucos de diretores de arte e designers. Você também poderá trabalhar construindo ferramentas para aumentar a agilidade da equipe de arte ou facilitar a prototipagem de jogos futuros.

“Tudo bem, Raphael, é isso que eu quero!”

Se você está com a frase acima em mente, prepare-se para enfrentar os desafios mais divertidos de sua vida!

Personagem 3D

Personagem desenvolvido por Alessandro Lima

A segunda pergunta que você deve se fazer (a primeira é “então você quer ser um programador de jogos?”) é: qual meu nível de conhecimento de computadores e programação? Não se sinta envergonhado e não minta para você mesmo. Diga a verdade, você passou os últimos meses “programando” em HTML e acha que já sabe o suficiente sobre linguagens de programação? Sabendo isso é possível determinar quais deverão ser seus próximos passos. Falarei, hoje, apenas do caminho principal a seguir, mas outras coisas deverão ser feitas paralelamente. Falarei sobre elas mais tarde.

Se você está começando a programar agora, fez uma ótima escolha optando pelos jogos: será muito mais divertido aprender. Você deverá estar preparado para se decepcionar quando as coisas não derem certo e, principalmente, a terminar as coisas que começar. Estava lendo o artigo do Guilherme Rambo e me deparei com uma pergunta que você deve estar se fazendo agora: “qual linguagem de programação eu devo escolher?”. A resposta para essa pergunta é fácil, você não precisa escolher: use o C++! Brincadeiras a parte, o C++ é a linguagem mais utilizada na indústria profissional, principalmente pela estabilidade e robustez que apresenta. Eu poderia indicar o Java também, pela orientação a objetos, mas prefiro indicar o C++ por causa dos ponteiros. Aprenda a utilizá-los sem medo (eles não mordem… muito…)! Ponteiros são muito importantes no trabalho com dispositivos de entrada e saída, principalmente com a placa de vídeo.

A primeira coisa que recomendo você a aprender no C++ é como fazer um comentário! Comente seu código sempre! É muito difícil para outras pessoas te ajudarem quando não entenderem o que você pretendia fazer (comentários em inglês são muito bem vindos e, aliás, aprender inglês é uma de suas “side missions” enquanto aprende a programar). Participe de fóruns, leia tudo sobre C++, aprenda a trabalhar com a documentação da linguagem (o inglês é novamente importante), aprenda a fazer comentários. O primeiro jogo que você deve tentar fazer é o famoso “Adivinhe o número”. O computador sorteia um número e pergunta para o usuário qual é esse número. A cada chute ele diz se o número informado é maior ou menor do que o número sorteado. Quando o jogador acerta o número, o computador exibe a mensagem “Parabéns!” e pergunta se deve sortear um novo número ou encerrar a execução. Você aprenderá muito sobre laços (while, do… while, for) e sobre entrada e saída de dados (mandem seus projetos por email se quiserem, para que eu diga como está funcionando sua linha de raciocínio).

Depois de fazer o “Adivinhe o número” tente implementar o “Forca”. Esse é um pouco mais complexo (não precisa desenhar nada). A cada ciclo, a tela é limpa, na parte superior é mostrada a palavra (com as letras que já foram adivinhadas e sublinhados nas letras que faltam), logo abaixo são aprensetadas as letras que já foram informadas e abaixo o número de partes restantes no corpo. A partir da lógica será fácil, posteriormente, inserir gráficos alucinantes, aliás, esse ponto é importante: a lógica é o que importa, o “core” (núcleo) do sistema, como as coisas funcionam. Inserir elementos gráficos, áudios, etc, é uma etapa simples quando o jogo funciona bem.

Outra dica: programe muito, leia livros de programação em C++ (recomendo o C++ Como Programar do Deitel), leia trechos de código e entenda como, por que e o que os programadores pretendiam fazer com seus programas. Depois de escrever seus programas, tente otimizá-los: isso te ajudará a aprender mais sobre a linguagem e a perceber os pontos críticos do código.

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments