
Le moteur Fling vise à être un moteur de jeu Vulkan à plate-forme qui expérimentera les éléments suivants:
Il y a quelques étapes de base pour compiler les aventures sur votre plate-forme.
Ce projet nécessite Cmake 3.13 ou plus, vous pouvez l'installer ici.
Ce projet utilise GLFW, vous devrez donc installer ces bibliothèques sur votre machine. GLFW dépend également d'avoir du doxygen, donc vous voudrez peut-être également l'avoir.
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
De toute évidence, ce projet est construit à l'aide de Vulkan, vous devrez donc l'installer avant de compiler ou d'exécuter le programme.
Vous pouvez télécharger le SDK à partir du site Web de Lunarg ici.
Si vous rencontrez des problèmes avec le SDK Vulkan, consultez certaines de ces ressources:
Init.bat et Init.shAprès avoir installé le SDK, vous pouvez simplement exécuter l'un des scripts fournis.
L'exécution de l'un de ces scripts obtiendra simplement tous les sous-modules et bibliothèques externes que le moteur utilise et créera un dossier appelé build . Le dossier build aura vos fichiers de construction spécifiques à votre plate-forme (Visual Studio, MakeFiles, etc.).
Pour faciliter le développement et l'itération, les chemins de fichier vers les actifs (shaders, textures, modèles, etc.) sont tous des chemins absolus générés par Cmake. Si vous souhaitez avoir une copie de votre exécutable avec des chemins d'actifs par rapport au programme, générez vos fichiers de projet avec CMake avec ce drapeau:
cmake -DDEFINE_SHIPPING=ON -B build .
Remarquez que l'option -DDEFINE_SHIPPING est définie sur ON . Cela définit une définition que vous pouvez utiliser en C ++:
#ifdef FLING_SHIPPING
// Do some nice stuff
#else
// Do non-shipping code, perhaps with a lot of log messages
#endifSi vous avez des contributions ou des correctifs que vous souhaitez contribuer, n'hésitez pas à ouvrir un problème ou une demande de traction! Je suis heureux de parler du projet, alors n'hésitez pas à me contacter sur Twitter ou ici sur Github. Finalement, un objectif est d'avoir des modèles PR / normes de codage plus spécifiques, mais pour l'instant, ce n'est pas une priorité.
Nous utilisons une stratégie de branchement assez basique. Faites une branche de fonctionnalité de Main pour quelque chose comme "Add-Support-For-X", puis cette fonctionnalité est terminée et testée Créer une demande de traction pour le mettre en main.
Nous allons créer des branches "libéré" stables et les étiqueterons en conséquence avec des versions stables de la construction.
Certaines ressources excellentes sont le tutoriel Vulkan et le dépôt de Saschawillems avec différents exemples Vulkan