Godot se tornou um dos motores de jogo mais populares dos últimos anos. É gratuito, de código aberto sob a licença MIT, e pequeno o suficiente para ser baixado e começar a usar em minutos. A maioria dos jogos Godot são escritos em GDScript, a linguagem de script própria do motor. No entanto, mais cedo ou mais tarde, muitos projetos precisam de algo que já existe como uma biblioteca C ou C++: uma biblioteca de simulação, um banco de dados, um protocolo de rede, um runtime de aprendizado de máquina. GDScript não pode chamar código nativo, mas Godot pode carregá-lo por meio de GDExtension, e godot-cpp, os bindings oficiais de C++, permite que você exponha esse código como classes normais do motor.
Escrever o código em C++ é a parte fácil. A parte difícil é a compilação: godot-cpp precisa corresponder à sua versão do Godot, e cada biblioteca que você adiciona precisa ser compilada para cada plataforma para a qual você distribui. Neste post, damos uma breve visita ao Godot, explicamos como as extensões C++ funcionam, e mostramos como trazer bibliotecas C++ para um jogo Godot com Conan e godot-cpp 10, agora disponível no Conan Center. Como exemplo, usaremos flecs, uma biblioteca de sistema de entidades e componentes, para simular 100,000 partículas dentro de uma cena Godot.
GDExtension carrega uma biblioteca compartilhada (.dll, .so, .dylib ou .wasm na web) em uma versão oficial e não modificada do Godot em tempo de execução. O motor fala com a biblioteca por meio de uma interface C estável. GDExtension é a abordagem recomendada para a maioria dos projetos, e é assim que muitos plugins populares são distribuídos hoje. Como a interface C é verbosa para usar diretamente, a equipe Godot mantém godot-cpp, uma biblioteca C++ que a envolve com uma API muito próxima à usada dentro do motor. Desde a versão 10.0, uma única versão do godot-cpp funciona com qualquer versão do Godot a partir de 4.3.
Usaremos flecs para simular 100,000 partículas dentro de uma cena Godot, fugindo do cursor do mouse. Baixe o vídeo para ver a simulação completa em ação.
Entidades-chave: Empresas: Conan, Godot, Hacker News