>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
C-plus-plus

Conociendo Nau Engine: Construyendo un Motor de Juegos de Código Abierto desde el Código Fuente

Nau Engine ha sido objeto de muchas conversaciones, pero escuchar anuncios en conferencias es una cosa, y realmente sumergirse en el repositorio público para experimentar con el código es otra. El repositorio está abierto, el código fuente está disponible en GitHub, y cualquiera puede clonar el proyecto en su máquina para evaluar la arquitectura o intentar construir una versión de prueba.

Los autores declaran inmediatamente un modelo de distribución abierto: el motor es gratuito para cualquier propósito, incluyendo lanzamientos comerciales de juegos, sin tarifas de licencia ni regalías ocultas. El código fuente está disponible públicamente, por lo que la comunidad puede crear bifurcaciones, extensiones y solicitudes de extracción.

Qué hay dentro del repositorio

Si abres el repositorio NauEnginePublic, notarás inmediatamente una pila clásica de C++ para proyectos de gran escala. No hay intento de reinventar la rueda con un administrador de paquetes personalizado: las dependencias se obtienen a través de vcpkg, y las compilaciones se gestionan mediante presets modernos de CMake.

El motor en sí está escrito en C++, depende activamente de submódulos y requiere herramientas actualizadas:

  • MSVC v143 de Visual Studio 2022
  • Versión actual de Windows 10 SDK
  • Python 3.10 o superior para scripts de compilación
  • Sistema de compilación CMake con soporte CMakePresets

En la etapa actual, el repositorio tiene un enfoque claro en la plataforma Windows. La documentación describe presets para Visual Studio 2022 y la combinación Clang-CL con Ninja. El soporte para Linux o macOS aún no está detallado en el README, por lo que el escenario de trabajo principal está actualmente vinculado a la pila de Microsoft.

Configuración del entorno y las dependencias

Construir un motor de juegos desde cero siempre requiere paciencia. Lo primero después de clonar el repositorio es extraer los submódulos—sin ellos, el proyecto simplemente no se configurará:

git clone https://github.com/NauEngine/NauEnginePublic.git
cd NauEnginePublic
git submodule update --init --recursive

A continuación viene el trabajo con el administrador de paquetes vcpkg. Si aún no lo tienes instalado, los autores recomiendan clonarlo en un directorio separado, por ejemplo en c:\tools\vcpkg, y ejecutar la inicialización:

cd c:\tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat

Después de eso, necesitas establecer la variable de entorno VCPKG_ROOT. Sin esta variable, CMake no sabrá dónde buscar las bibliotecas.

Por cierto, hay una sugerencia útil en el repositorio: si el archivo vcpkg.json cambia en una rama, es mejor hacer una compilación limpia borrando el directorio de trabajo con git clean -d -x -f. Lo importante es guardar todos los cambios no guardados de antemano, de lo contrario git los borrará sin advertencia.

Configuración y proceso de compilación

Una vez que las dependencias están en su lugar, CMake toma el control. El proyecto tiene presets configurados listos para usar, por lo que no necesitarás especificar manualmente docenas de indicadores del compilador.

Para generar el proyecto para Visual Studio 2022, ejecuta:

cmake --preset win_vs2022_x64

Si prefieres la combinación Ninja y Clang, hay un preset alternativo:

cmake --preset win_ninja_clangcl-debug

También puedes simplemente abrir la carpeta del proyecto en VS Code o Visual Studio. El IDE detectará automáticamente el archivo CMakePresets.json y sugerirá seleccionar la configuración deseada en la interfaz.

El proceso de compilación en sí se inicia a través de CLI o directamente desde el IDE:

cmake --build build\win_vs2022_x64 --config=Debug

Una vez completada la compilación, puedes instalar el motor en un directorio local output:

cmake --install build\win_vs2022_x64 --config=Debug

En esta carpeta, obtendrás una compilación lista para una mayor integración.

Por qué los desarrolladores deberían estudiar este código

Nau Engine es interesante no solo para quienes planean hacer juegos con él, sino también para programadores regulares de C++.

Primero, es una base de código nueva. Muchos motores populares llevan el lastre de decisiones de hace veinte años. Aquí puedes ver cómo se organiza un proyecto moderno en el último estándar de C++, cómo se dividen los módulos y cómo funciona la canalización de procesamiento de activos.

Segundo, el proyecto está completamente abierto para contribuidores. Hay issues abiertos y solicitudes de extracción en el repositorio, y la comunidad está comenzando gradualmente a participar en la mejora del motor. Si has estado buscando un proyecto de código abierto complejo a nivel de sistema donde puedas contribuir con optimizaciones o nuevas características, Nau Engine ofrece esa oportunidad sin la burocracia de las licencias propietarias.

Tercero, es un buen campo de pruebas para experimentar con renderizadores personalizados, motores de física o envoltorios de scripting. Tener una estructura modular lista ahorra semanas de trabajo tedioso de configuración del entorno.

Cuarto, para los estudios de juegos, es una oportunidad real de obtener una pila tecnológica que no depende de los caprichos de proveedores extranjeros y cambios repentinos en los acuerdos de licencia.

Por dónde empezar

Si el proyecto te interesa, comienza de manera simple: clona el repositorio, sigue los pasos de la guía de compilación e intenta construir el motor en modo Debug. Lee la estructura del directorio, observa la implementación de subsistemas básicos en el código fuente y consulta la pestaña de Issues en GitHub. Para quienes están interesados en el desarrollo de motores de juegos desde adentro, este es un excelente material de estudio.

Proyectos relacionados