Pular para o conteúdo

Profissões na área de criação de jogos: Programador

16 de outubro de 2008
John Carmack (programador da série Doom e Quake) trabalhando.

John Carmack (programador da série Doom e Quake) trabalhando.

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.

Logo da linguagem LUA da PUC Rio

Logo da linguagem LUA da PUC Rio

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!

5 Comentários leave one →
  1. 28 de dezembro de 2008 5:21 pm

    legal… quero saber mais sobre o”artista” acho que essa é minha votação XD

    • originalspeeder permalink*
      29 de dezembro de 2008 1:31 am

      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…

  2. jeffersonm permalink
    12 de janeiro de 2009 6:40 pm

    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.

  3. GBULA permalink
    1 de dezembro de 2010 7:30 pm

    Cara muito bom esse artigo sobre Programadores me deu mais incentivo pra seguir com os estudos (Técnico de Informática)!!!

  4. wesley permalink
    8 de dezembro de 2012 11:50 am

    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.

Deixe um comentário por favor!