Godot se ha convertido en uno de los motores de juegos más populares de los últimos años. Es gratuito, de código abierto bajo la licencia MIT, y lo suficientemente pequeño como para descargarlo y empezar a usarlo en minutos. La mayoría de los juegos de Godot se escriben en GDScript, el lenguaje de scripting propio del motor. Sin embargo, más temprano o más tarde, muchos proyectos necesitan algo que ya existe como una biblioteca de C o C++: una biblioteca de simulación, una base de datos, un protocolo de red, un entorno de ejecución de aprendizaje automático. GDScript no puede llamar a código nativo, pero Godot puede cargarlo a través de GDExtension, y godot-cpp, los enlaces oficiales de C++, te permite exponer ese código como clases normales del motor.
Escribir el código en C++ es la parte fácil. La parte difícil es la compilación: godot-cpp tiene que coincidir con tu versión de Godot, y cada biblioteca que agregues tiene que compilarse para cada plataforma a la que des. En esta publicación damos un breve recorrido por Godot, explicamos cómo funcionan las extensiones de C++, y mostramos cómo traer bibliotecas de C++ a un juego de Godot con Conan y godot-cpp 10, ahora disponible en Conan Center. Como ejemplo usaremos flecs, una biblioteca de sistema de entidades y componentes, para simular 100,000 partículas dentro de una escena de Godot.
GDExtension carga una biblioteca compartida (.dll, .so, .dylib o .wasm en la web) en una compilación oficial y sin modificaciones de Godot en tiempo de ejecución. El motor se comunica con la biblioteca a través de una interfaz estable en C. GDExtension es el enfoque recomendado para la mayoría de los proyectos, y es así como muchos plugins populares se distribuyen hoy. Debido a que la interfaz en C es muy verbosa de usar directamente, el equipo de Godot mantiene godot-cpp, una biblioteca de C++ que la envuelve con una API muy cercana a la usada dentro del motor. Desde la versión 10.0, una sola versión de godot-cpp funciona con cualquier versión de Godot desde 4.3 en adelante.
Usaremos flecs para simular 100,000 partículas dentro de una escena de Godot, huyendo del cursor del ratón. Descarga el video para ver la simulación completa en acción.
Entidades clave: Empresas: Conan, Godot, Hacker News