Categorias
Gamedev

Quem Faz Games, Parte 4: Programadores

Video games são obras de arte e entretenimento digitais que são desenvolvidas como programas de computador. Na verdade, os games representam um dos tipos mais complexos e multidisciplinares de projetos de software, demandando profissionais de programação altamente especializados em várias áreas diferentes da ciência da computação. Nesta quarta e última parte da nossa jornada pelos papéis dos desenvolvedores de games, vamos conhecer melhor algumas dessas especialidades fundamentais dos programadores de games.

Programadores de jogabilidade têm um papel fundamental no desenvolvimento de games.

Os programadores e programadoras de jogabilidade (gameplay) são responsáveis por transformar as ideias e mecânicas definidas pelos game designers em sistemas de software funcionais e divertidos. Esse trabalho inclui desde a programação dos comandos do jogo — ou seja, o que acontece quando o jogador aperta cada botão do controle — até as mecânicas que resultam dessas ações — fazer o Mario crescer quando pega um cogumelo, por exemplo.

Cabe também aos programdores de jogabilidade fornecer ferramentas para que os próprios designers possam fazer ajustes finos nas mecânicas do jogo por conta própria — experimentar diferentes valores para a altura e a distância do pulo do personagem, ou ajustar o grau de erro no chute ao gol no FIFA, por exemplo.

Ferramenta interna da Electronic Arts feita pelos programadores para que os designers façam ajustes de jogabilidade no FIFA 22.

Os gráficos lindos e ultrarrealistas geralmente causam a primeira impressão nos jogadores sobre a qualidade do game, e por isso os programadores de computação gráfica (rendering) são uma das especialidades mais valorizadas no mercado. Esses profissionais precisam entender profundamente o funcionamento das luzes, sombras, materiais e como representar as diferentes técnicas de renderização em tempo real nos jogos, como ray-tracing, por exemplo.

Demo de ray-tracing da NVidia mostra alguns efeitos avançados de iluminação que os programadores de computação gráfica desenvolveram.

Jogos multiplayer exigem uma programação robusta do sistema de comunicação entre os consoles ou PCs dos jogadores e os servidores do jogo. Esses profissionais de programação de redes precisam garantir que as informações de ações do jogador (por exemplo, a direção de um tiro) sejam transmitidas o mais rápido possível para o servidor, que determina o resultado no mundo do jogo (se a bala acertou o alvo ou não), e transmite esse feedback de volta para todos os jogadores, mantendo o game em perfeita sincronia.

O principal objetivo do programador de redes é diminuir ao máximo o sentimento de lag do jogo — a demora entre o input do jogador e o resultado transmitido de volta pelo servidor, que pode atrapalhar muito a experiência multiplayer do game.

Jogos como a série Battlefield, da EA, precisam de um sistema robusto de redes para suportar partidas com até 128 jogadores simultâneos.
  • Inteligência Artificial: implementam o comportamento de todos os outros personagens e criaturas que preenchem o mundo do jogo, incluindo inimigos, companheiros de time e todos os outros NPCs (non-playable characters, ou personagens não-controláveis pelo jogador).
  • Simulação Física: desenvolvem sistemas complexos de interação entre objetos do mundo do jogo, colisões, trajetórias de balas, e muito mais, simulando as leis da física real no computador.
  • Interface: programam as telas, os menus e o HUD (heads-up display), que são aqueles indicadores de dano, munição, objetivos e etc. que aparecem sobre a tela do jogo.

E aí, com qual especialidade da programação dos games você mais se identifica? Conte pra gente nos comentários e confira aqui no blog da Mentorama os artigos anteriores da série Quem Faz Games para conhecer melhor o mundo dos artistas, game designers e muito mais! Um abraço, boas festas e feliz 2022!