
El motor Fling tiene como objetivo ser un motor de juego Vulkan de plataforma cruzada que experimentará con lo siguiente:
Hay algunos pasos básicos para compilar la aventura en su plataforma.
Este proyecto requiere CMake 3.13 o superior, puede instalarlo aquí.
Este proyecto utiliza GLFW, por lo que deberá instalar esas bibliotecas en su máquina. GLFW también depende de tener doxígeno, por lo que es posible que también desee tenerlo.
Ubuntu:
sudo apt-get update
sudo apt-get install doxygen
sudo apt-get install -y libglm-dev libxcb-dri3-0 libxcb-present0
sudo apt-get install -y libpciaccess0 libpng-dev libxcb-keysyms1-dev
sudo apt-get install -y libxcb-dri3-dev libx11-dev libmirclient-dev
sudo apt-get install -y libwayland-dev libxrandr-dev
sudo apt-get install -y libglfw3-dev
sudo apt-get install -y xorg-dev
Obviamente, este proyecto se construye usando Vulkan, por lo que deberá instalarlo antes de compilar o ejecutar el programa.
Puede descargar el SDK desde el sitio web de Lunarg aquí.
Si tiene problemas con el SDK de Vulkan, consulte algunos de estos recursos:
Init.bat e Init.shDespués de instalar el SDK, simplemente puede ejecutar uno de los scripts proporcionados.
Ejecutar cualquiera de estos scripts simplemente obtendrá todos los submódulos y bibliotecas externas que el motor usa y creará una carpeta llamada build . La carpeta build tendrá sus archivos de compilación específicos de la plataforma (Visual Studio, Makefiles, etc.).
Para facilitar el desarrollo y la iteración, las rutas de archivo a los activos (sombreadores, texturas, modelos, etc.) son todas las rutas absolutas generadas por CMake. Si desea tener una copia de su ejecutable con rutas de activos en relación con el programa, genere sus archivos de proyecto con Cmake con este indicador:
cmake -DDEFINE_SHIPPING=ON -B build .
Observe que la opción -DDEFINE_SHIPPING está configurada en ON . Esto establece una definición que puede usar en C ++:
#ifdef FLING_SHIPPING
// Do some nice stuff
#else
// Do non-shipping code, perhaps with a lot of log messages
#endifSi tiene alguna contribución o solución que desee contribuir, ¡no dude en abrir un problema o una solicitud de extracción! Estoy feliz de hablar sobre el proyecto, así que siéntase libre de comunicarse conmigo en Twitter o aquí en Github. Eventualmente, un objetivo es tener algunas plantillas de relaciones públicas más específicas/estándares de codificación, pero por ahora eso no es una prioridad.
Utilizamos una estrategia de ramificación bastante básica. Haga una rama de la función en Main para algo como "Agregar-soporte-for-x", y luego esa característica se realiza y se prueba crear una solicitud de extracción para llevarlo a Main.
Crearemos ramas estables de "lanzamiento" y las etiquetaremos en consecuencia con versiones estables de la compilación.
Algunos recursos excelentes son el tutorial de Vulkan y el repositorio de Saschawillems con diferentes ejemplos de Vulkan