Profissões na área de criação de jogos: Programador
Olá leitores de meu novo blog! Vou começar já com uma série de artigos sobre as profissões na área de criação de jogos, neste primeiro artigo vamos ter uma introdução a série e então falaremos sobre a profissão de programador.
Na área da criação de jogos (não só eletrônicos, deixa-se claro) existem basicamente os seguintes cargos: projetista, artista, produtor, testador e no caso de jogos eletrônicos, programador ou engenheiro eletrônico.
Vou começar a série explicando as profissões mais genéricas, para somente depois explicar alguams das especializações que existem.
Vamos começar pela profissão de programador.
O programador de jogos é um programador de software como qualquer outro, com a diferença que ele trabalha com uma área específica, a área de softwares de entretenimento.
Primeiramente deve-se entender o que torna estes softwares diferentes de outros softwares. Basicamente os jogos tem que ser muito velozes para entender a entrada do jogador e responder com uma saída, propiciando o básico da interatividade, isso é necessário até mesmo em jogos de texto que são totalmente estáticos. A maioria dos jogadores não se contenta com um jogo primariamente estático, espera que tenha coisas se movendo, gráficos e animações, não necessariamente de alta-qualidade e super-realistas, mas o razoável para a cena ser entendível e para que o jogador saiba exatamente o que está acontecendo, isso também faz com que jogos necessitem de uma programação de alta qualidade em representação gráfica e sonora, exigindo uma qualidade excepcional do programador em usar os recursos de sua máquina de forma eficiente, o que não é algo fácil, especialmente em máquinas menores (como celulares, palms e consoles antigos). Outra diferença de um jogo para um software qualquer é que um jogo eletrônico é um jogo, existem regras, e é o trabalho do programador transformar as regras escritas no papel em regras que o computador aplique no jogador, uma falha comum de equipes iniciantes é não serem explícitos quanto as regras, um computador não vai abstrair e entender regras ambíguas, as regras programadas tem que ser totalmente claras e objetivas.
O programador não é aquele que inventa as coisas, o trabalho de programador por mais chato que possa parecer é transformar aquilo que o projetista criou em algo que uma máquina entenda.
Agora dicas para os aspirantes a programdor:
Primeiro, tenha paciência, MUITA paciência, não se aprende a programar em apenas 1 semana, alías uma pessoa só se torna um “bom” programador (leia: bom, não ótimo) em 10 anos de prática, entenda que saber a sintaxe de uma linguagem de programação e saber passar um algorítimo para uma linguagem não te torna um programador, e sim um “tradutor”.
Segundo: na área de programação de jogos performance é algo muito necessário, aprenda uma linguagem de baixo nível, mesmo que não pretenda usar, uma hora vai ser necessário, e o mais importante: ao aprender uma linguagem aprenda a pensar como ela exige. Eu creio que um programador deveria saber C ou C++, uma linguagem de alto nível (como C#, Basic ou Java), deveria pelo menos saber ler o básico de assembly (muito útil para depurar código e para entender porque é melhor usar ++VAR ao invés de VAR++ por exemplo), uma linguagem de script qualquer (Lua, Phyton, Perl, PHP…) e alguma linguagem única e interessante (eu aprendi MUSHCode, uma variação do LISP), esta última não é uma necessidade, mas vai te mostrar alguams coisas mais sobre como pensar como programador.
Terceiro: Não existe programador que não saiba matemática, se você não gosta de matemática não vire programador, a matemática está infiltrada por todos os lados no trabalho de um programador mesmo que ele não perceba, a maior parte de suas linhas de código consiste em realizar operações matemáticas, e o computador só faz isso, o “segredo” é em como transformar dados matemáticos em algo que o usuário do programa entenda sem saber matemática (por exemplo uma imagem, um som, uma regra de jogo)
Quarto: Mesmo que você odeio trabalhar com hardware e queira ser só um programador de jogabilidade saber como o hardware funciona pelo menos basicamente é algo muito importante, mesmo para programar só a jogabilidade por exemplo, você deveria saber como funciona os dispositivos de entrada.
Dicas de bibliotecas, APIs e afins:
Horde3D, gráfico de cena, muito leve e poderoso
Allegro, permite a criação de jogos 2D com facilidade, sua versão 4.3.10 permite usar OpenGL opcionalmente, e a versão 4.9 permite o uso totalmente do OpenGL (mas este se torna obrigatório)
Cube 2, engine completa muito interessante, possui vários recursos, é de graça.
Chipmunk Physics, engine de física 2D, muito boa, muito fácil de integrar com outras coisas, eu juntei ela no Allegro com muita facilidade e o resultado é muito bom, suporta inclusive colisão com rotação (se um objeto rodando atinge outro, este altera a rotação do outro e muda o ângulo de reflexão, perfeito para implementar um jogo de sinuca com efeito de bola por exemplo)
Até breve nos próximos artigos da série! O próximo vai ser sobre o artista!
Nota: Aprenda Inglês também, para programadores é muito útil!
legal… quero saber mais sobre o”artista” acho que essa é minha votação XD
Então, eu estou escrevendo esses artigos e o artigo sobre a profissão de músico está quase pronto, mas como deve saber, esse fim de ano é corrido! Passo a maior parte do tempo visitando meus parentes…
A area de programador de jogos ou outras areas de programação da muito lucro ?
Penso em investir no curso de Ciencias da Computação, pois pretendo trabalhar com jogos e programação.
O que você me orienta a fazer.
Cara muito bom esse artigo sobre Programadores me deu mais incentivo pra seguir com os estudos (Técnico de Informática)!!!
parabéns cara,ótima matéria..
gostaria que fizesse uma matéria falando sobre em que se especializar para seguir na carreira de um ” o cara que ‘desenha’ personagems e talz “.
tenho 14 anos.