Voltar para o Blog
Quest Log

Bohemia Libera o Código-Fonte do ARMA e da Engine Poseidon

Soldado de uniforme militar em uma ilha ao amanhecer com linhas de código C++ sobrepostas no céu

A Bohemia Interactive liberou o código-fonte do ARMA Cold War Assault e da engine Poseidon sob GPL v3. Veja o que dá pra aprender lendo uma engine real.

Notícia grande pra quem gosta de olhar por dentro das coisas: a Bohemia Interactive liberou o código-fonte do ARMA Cold War Assault Remastered e da engine Poseidon, tudo público no GitHub sob licença GPL v3. Se o nome não acendeu nada aí, deixa eu traduzir. ARMA Cold War Assault é o antigo Operation Flashpoint, um marco dos jogos militares, e a Poseidon é a engine que rodava ele por baixo. Essa mesma engine evoluiu depois pra Real Virtuality, que sustentou a série ARMA inteira, e influenciou a Enfusion, a engine atual da empresa. Ou seja, não é um projetinho de fim de semana que virou público. É o DNA técnico de um estúdio que faz jogo grande há mais de duas décadas, aberto pra qualquer pessoa ler.

A notícia saiu no GameFromScratch e o código está no repositório oficial da Bohemia no GitHub. Antes de você sair clonando o repositório achando que vai fazer o próximo jogo de guerra brasileiro nessa engine, vamos conversar sobre o que isso realmente significa pra quem está começando ou toca um projeto indie no Brasil. Porque tem valor de verdade aqui, só que provavelmente não é o valor que a manchete sugere.

O que exatamente a Bohemia liberou

Vamos aos fatos, porque notícia de código aberto costuma vir cheia de confusão. O que está no repositório:

  • O código do jogo: ARMA Cold War Assault Remastered, o remaster do antigo Operation Flashpoint.
  • O código da engine Poseidon: a engine original que rodava o jogo, com renderização, simulação, rede e todo o resto.
  • Licença GPL v3: você pode ler, compilar, modificar e redistribuir, com obrigações que a gente detalha mais abaixo.

E não é um despejo de código velho pra arquivo morto. A Bohemia modernizou o projeto antes de abrir:

  • Código atualizado pra C++20, o que torna a leitura bem menos dolorosa do que seria o C++ original de vinte e tantos anos atrás.
  • Suporte nativo 64-bit pra Windows e Linux.
  • Um novo renderer OpenGL 3.3, substituindo o pipeline gráfico da época.
  • Suporte a resoluções modernas e ultrawide.
  • Compatibilidade com Steam Deck.
  • Multiplayer LAN e servidor dedicado, além de Voice over Network.

Isso muda o caráter da coisa. Um código-fonte histórico sem build funcional é curiosidade de museu. Um código que compila hoje, roda em Linux e no Steam Deck, e ainda tem multiplayer funcionando, é um laboratório vivo. Você pode alterar uma linha, compilar e ver o efeito dentro de um jogo comercial completo. Pouquíssima gente da nossa área já teve essa oportunidade com uma engine desse porte.

Por que o código-fonte aberto do ARMA e da engine Poseidon importa pra você

Aqui entra o ângulo que interessa pro leitor do CursoGame.Dev. Você provavelmente nunca vai trabalhar na Bohemia, e talvez nem goste de jogo militar. Então por que prestar atenção?

Porque código de engine comercial quase nunca fica público. Engine é o segredo industrial de um estúdio. Quando uma empresa abre isso, ela entrega de graça algo que normalmente só se aprende trabalhando anos dentro de um estúdio grande: como um time profissional organiza um software gigantesco que precisa rodar a 60 quadros por segundo, todo frame, sem desculpa.

E não é a primeira vez que isso acontece. A CCP liberou a Carbon, a engine que roda o EVE Online, e a gente destrinchou o que a abertura da engine da EVE Online significa pra você aqui no blog. Cada abertura dessas soma uma peça ao acervo de código de produção real que qualquer pessoa com internet pode estudar. Há dez anos, esse acervo praticamente não existia. Hoje você tem MMO espacial e simulador militar abertos na mesma prateleira.

O caso da Poseidon tem um tempero a mais: linhagem. Essa engine não morreu, ela evoluiu. Poseidon virou Real Virtuality, que carregou a série ARMA, e as lições dela influenciaram a Enfusion. Ler a Poseidon é ler o ancestral de uma tecnologia que ainda está em produção. Dá pra ver quais decisões de arquitetura sobreviveram vinte anos e quais foram descartadas. Isso é história da engenharia de jogos contada pelo próprio código.

Próximo nível
Quer aprender isso na prática?

No CursoGame.Dev você sai dos tutoriais soltos e constrói jogos publicáveis, com trilha progressiva, quests práticas e feedback real.

Conhecer a plataforma
+500 alunos4.9/5Garantia 7 dias

O que dá pra aprender lendo uma engine de verdade

Tutorial ensina o caminho feliz. Código de produção mostra o caminho real, com os remendos, as gambiarras documentadas em comentário e as decisões tomadas com prazo apertado. Alguns pontos que valem seu tempo no repositório:

Arquitetura geral. Como os sistemas conversam? Onde termina a engine e começa o jogo? Na Poseidon você vê essa fronteira num projeto que shippou. Repare em como renderização, simulação, entrada do jogador e rede se organizam em camadas, e compare com o que você conhece da Godot ou da Unity. Você vai perceber que os princípios são os mesmos, só que aqui estão expostos, sem editor bonito na frente.

Loop de jogo. Todo iniciante uma hora pergunta como funciona o game loop de verdade, além do exemplo de dez linhas dos tutoriais. Aqui está um: leitura de entrada, atualização de simulação de um mundo militar aberto com dezenas de unidades de IA, e renderização, tudo coordenado frame a frame. Ver como um jogo comercial ordena essas etapas ensina mais que muita apostila.

Renderização. O port pra OpenGL 3.3 é um caso de estudo por si só. O time pegou um renderer antigo e o levou pra uma API moderna mantendo o jogo funcionando. Se você tem curiosidade sobre programação gráfica, acompanhar como as chamadas de desenho, os shaders e o gerenciamento de recursos foram reorganizados é um curso prático de migração de pipeline gráfico.

Rede. Multiplayer LAN, servidor dedicado e Voice over Network estão no código. Netcode é uma das áreas mais nebulosas pra quem aprende sozinho, porque quase todo material público é teórico. Aqui você pode ler como a sincronização de um jogo militar com veículos, projéteis e IA foi implementada de fato.

Uma dica honesta de método: não tente ler tudo. Ninguém lê uma engine inteira, nem quem trabalha nela. Escolha uma pergunta específica, tipo "como o jogo decide o que renderizar?" ou "como um tiro é comunicado pela rede?", e siga só essa trilha pelo código. Uma pergunta bem escolhida por semana vale mais que scrollar milhares de arquivos sem rumo.

GPL v3: o que você pode e o que você deve

A licença escolhida foi a GPL v3, e ela é diferente da MIT que você vê em muito projeto por aí. Vale entender a diferença, porque isso define o que dá pra fazer com esse código.

O que a GPL v3 permite: ler, baixar, compilar, modificar, redistribuir e até usar comercialmente. Você pode criar seu próprio fork do jogo, portar pra outra plataforma, fazer uma versão com outra ambientação, o que quiser.

O que a GPL v3 obriga: se você distribuir qualquer coisa construída sobre esse código, seja modificado ou não, você precisa liberar o seu código também, sob a mesma GPL v3. É o chamado copyleft. A liberdade que você recebeu, você é obrigado a repassar. Não existe pegar a Poseidon, fazer seu jogo fechado em cima e vender sem abrir nada.

Pra estudo, isso não muda nada: ler e compilar na sua máquina não gera obrigação nenhuma. Pra projeto próprio, muda tudo: qualquer jogo distribuído em cima dessa engine nasce de código aberto por contrato. Alguns projetos vivem muito bem assim, mas é uma decisão que você precisa tomar de olhos abertos, não descobrir depois.

O aviso honesto: estudar engine não é fazer jogo

Agora a parte que separa este post de uma manchete empolgada. Ler o código da Poseidon vai te ensinar muito sobre engenharia. Não vai te fazer terminar um jogo.

São habilidades diferentes. Entender como um renderer funciona por dentro é conhecimento de quem constrói ferramenta. Terminar e lançar um jogo é habilidade de quem usa ferramenta. Dá pra ter as duas, mas a segunda é a que paga as contas de um indie, e ela se desenvolve fazendo e lançando jogos, não lendo engine alheia.

Aliás, se a notícia despertou aquela vontade de criar sua própria engine do zero, respira antes. A gente já discutiu a fundo se vale a pena criar uma engine própria, e a resposta curta é: pra 99% dos casos, não vale, e a Poseidon reforça o argumento. Aquele código representa décadas de trabalho de um time inteiro de especialistas. Um dev solo tentando reproduzir isso passa anos construindo fundação e nunca chega ao jogo. Quem insiste no caminho de engine autoral costuma ter motivos muito específicos, como mostra o caso da Doriax, uma engine open source criada por um dev independente, e mesmo assim o custo é altíssimo.

Pra fazer jogo hoje, a jogada continua a mesma: engine pronta, madura e gratuita. A Godot te dá editor, física, renderização multiplataforma e uma comunidade enorme, de graça e sem copyleft no seu jogo. Você foca no que só você pode fazer, que é o seu jogo, e deixa o problema de engine com quem já resolveu ele.

O papel da Poseidon na sua vida é outro: leitura complementar. É o livro técnico que você abre pra entender por que a ferramenta que você usa funciona do jeito que funciona.

Como aproveitar isso na prática

Fechando com um plano realista pra três perfis de leitor:

Você está começando agora. Marque o repositório com uma estrela e volte pro seu projeto na Godot. Sério. O maior ganho pra você hoje é saber que esse material existe. Daqui a um ou dois jogos terminados, quando surgirem perguntas sobre o que acontece por baixo do capô, o código vai estar lá esperando.

Você já programa e quer profundidade. Clone o repositório, compile (o suporte a Windows e Linux 64-bit ajuda bastante aqui) e escolha uma trilha de leitura: loop principal, renderer ou rede. Trate como leitura técnica guiada por perguntas, uma por vez. Se você usa Steam Deck ou Linux, testar o build nessas plataformas já é um exercício ótimo de build e portabilidade.

Você sonha em trabalhar com tecnologia de engine. Esse repositório é ouro. Estudar a Poseidon, entender as decisões dela e quem sabe contribuir com correções é o tipo de experiência que aparece bem num portfólio pra vagas de programação de engine ou gráficos, uma área pequena mas real na indústria.

O resumo da ópera: a Bohemia abriu uma porta que quase nunca abre, e isso merece ser celebrado e aproveitado. Só não confunda a porta. Ela leva pra biblioteca, não pro atalho. O seu jogo continua sendo feito do mesmo jeito de ontem: uma engine pronta, escopo pequeno e constância. A diferença é que agora, quando bater a curiosidade sobre o que existe embaixo do play, você tem mais um código de verdade pra consultar.

Perguntas frequentes

O que é a engine Poseidon?

É a engine que a Bohemia Interactive criou para o Operation Flashpoint, jogo que depois foi renomeado para ARMA Cold War Assault. Ela evoluiu para a Real Virtuality, usada na série ARMA, e influenciou a Enfusion, a engine atual da empresa. O código dela foi liberado no GitHub sob GPL v3.

O código do ARMA Cold War Assault é gratuito?

Sim. O código-fonte está público no repositório BohemiaInteractive/CWR no GitHub, sob licença GPL v3. Você pode baixar, ler, compilar, modificar e redistribuir, desde que qualquer versão que você distribuir também seja liberada sob GPL v3, com o código aberto.

Posso fazer um jogo comercial com a engine Poseidon?

Tecnicamente pode, porque a GPL v3 permite uso comercial. Mas você seria obrigado a liberar o código do seu jogo sob a mesma licença, e a engine foi desenhada há mais de 20 anos para um tipo muito específico de jogo. Pra fazer seu jogo hoje, uma engine moderna como a Godot é o caminho prático.

O que foi modernizado no código liberado?

O código foi atualizado para C++20, ganhou suporte nativo 64-bit para Windows e Linux, um novo renderer OpenGL 3.3, suporte a resoluções modernas e ultrawide, compatibilidade com Steam Deck, multiplayer LAN com servidor dedicado e Voice over Network.

O que dá pra aprender lendo o código de uma engine comercial?

Arquitetura de sistemas, loop de jogo, renderização, rede e as decisões de engenharia que um time real tomou sob pressão de lançamento. É material de estudo raro. Não é o mesmo que aprender a fazer jogo, mas é uma aula de como software grande e de longa vida é construído.