Necrown - Devlog #02 [Engine Dev] : Bases du projet et automatisation
Splix Il y a 12 mois Premium Pro - Adhésion à vie0

Salut à tous les gamecodeurs!!!

Nous allons entrer dans le vif du sujet. A la fin de ce devlog, nous serons encore loin d’avoir un proto jouable, ni même le début d’un proto, puisque l’on va commencer par mettre en place le projet, et de toute façon nos premiers devlogs ne concerneront que la création d’un petit moteur basé sur love2d. Ce devlog et les prochains vont être un peu technique, mais ne fuyez pas maintenant, après tout nous sommes sur gamecodeur, et nous allons voir des choses très intéressantes, je vous assure 😉

Avant de commencer, je précise que nous allons développer sur et pour Windows. La portabilité c’est bien beau, mais il faut parfois faire des choix, surtout en début de projet…

Je vais évidemment vous passer les bases des bases de la création du projet : Création du dossier Necrown, ajout du fichier main.lua (on va le laisser vide pour l’instant). J’ai tout de suite préparé un dossier Assets, contenant les dossiers Images, Musics et Sounds, destinés à recevoir les ressources qui seront utilisées par le projet…

C’est ici que l’on va commencer à s’amuser: J’ai créé un dossier Excluded, contenant lui-même un dossier GenExe. Dans ce dossier j’ai placé un dossier contenant les sources de love2d (version 11.3). Les autres éléments contenus dans GenExe ne nous intéressent pas pour le moment…

Nous allons nous concentrer sur un petit fichier nommé genExe.cmd. En voici le contenu:

@echo off

:: Variable qui contient le nom du jeu
cd ../../
for /f %%a in ('cd') do set "game=%%~nxa"
:: On supprime le dossier du jeu et on le recré vide
rd /s /q "Excluded/GenExe/%game%"
md "Excluded/GenExe/%game%"

:: On y copie le contenu des sources de love2d
xcopy "Excluded/GenExe/Love2d_11.3.0_win32" "Excluded/GenExe/%game%" /e

:: On zip tout le contenu du projet en excluant le dossier Excluded
"C:/Program Files/7-Zip/7z.exe" a -tzip -mx=9 "Excluded/GenExe/%game%/%game%.zip" * -x!"Excluded"

:: On créé l'executable en 32 bits
cd "Excluded/GenExe/%game%"
ren "%game%.zip" "%game%.love"
copy /b "love.exe" + "%game%.love" "%game%.exe"

:: On change l'icône du jeu par le fichier ico présent dans le dossier GenExe
cd ../
copy /b "game.ico" + "%game%/%game%.exe" "%game%/%game%.exe"
:: On supprime le .love et love.exe
erase "%game%.love"
erase "love.exe"

pause

Si vous lisez le code de ce fichier (que j’ai d’ailleurs annoté pour vous), vous verrez que comme son nom l’indique, il génère automatiquement l’exécutable Windows du jeu à partir du projet, en excluant le dossier Excluded et tout son contenu. Il suffit de double cliquer dessus. Si vous ouvrez un exécutable généré par ce fichier avec 7zip, vous constaterez que le dossier Excluded en est bien absent. Notez que le nom du jeu est correspond au nom du dossier contenant les sources du projet…

Super me direz-vous, mais quel intérêt de créer ce fichier genExe et ce dossier Excluded? Ce à quoi je répondrai: L’automatisation de tout ce qui peu l’être, tel est la voie du développeur petit scarabée! Mais vous verrez que le dossier Excluded nous sera encore utile à l’avenir, et pas seulement pour exclure des fichiers de l’exécutable final…

Mais nous verrons cela dans le prochain devlog.

En attendant, bon code à tous!!!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.