ContribuerTutorielPour contributeursS'applique de 4.4.0
Préparer son poste de développement
This page in EnglishCette page sur le wiki GitHub
D'un dossier vide à un dépôt du moteur dont les vérifications tournent sur votre machine. Une quinzaine de minutes, surtout des téléchargements.
Ce que vous allez obtenir
Un clone de wanoo/quest-n-click avec ses dépendances, les modules Python d'image, un Chromium de Playwright, et un
rapport de npm run doctor sans élément obligatoire manquant. À la fin, le jeu d'exemple tourne dans votre navigateur
et la suite unitaire passe.
Cette page sert à travailler sur le moteur. Pour faire un jeu avec un moteur publié, créez plutôt un projet (Votre premier jeu) ; pour installer depuis le dépôt sans contribuer, voir Installer depuis le dépôt.
Ce qu'il vous faut
- Git.
- Node.js 22.12 ou plus récent (
enginesdepackage.json:>=22.12). Le.nvmrcdu dépôt dit22:nvm useprend donc la 22 la plus récente que vous avez installée ; vérifiez qu'elle est au moins en 22.12. Le Studio, les outils qui écrivent un jeu et le Reality Bridge sur SQLite demandent 22.13 ou plus (node:sqlite). - Python 3 avec les modules de
requirements.txt(Pillow 13.0.0, NumPy 2.4.6, SciPy 1.18.1) : les tests d'assets etnpm run assetss'en servent. La CI utilise Python 3.12. - ffmpeg (facultatif) : la création audio, et
validate --release, qui mesure les stems de musique avecffprobe. - Environ 2 Go de disque pour
node_moduleset les navigateurs.
Les versions exactes par système sont dans Prérequis.
Étapes
Chaque commande ci-dessous se lance dans un terminal, dans le dépôt du moteur une fois cloné.
-
Clonez le dépôt et entrez dedans.
# dans le dossier qui contiendra le clone git clone https://github.com/wanoo/quest-n-click.git cd quest-n-clickVous voyez les dossiers du dépôt :
src/,games/,tools/,tests/,wiki/…
-
Choisissez Node. Avec nvm :
# dans le dépôt du moteur nvm use node --versionnode --versionaffichev22.12.0ou plus. Sans nvm, installez une Node 22 LTS depuis nodejs.org.
-
Installez les dépendances exactement comme le dit le fichier de verrouillage.
# dans le dépôt du moteur npm ciLa commande se termine sans erreur et crée
node_modules/. Utiliseznpm ci, pasnpm install: le fichier de verrouillage fait partie de ce que la CI vérifie.
-
Installez les modules Python d'image.
# dans le dépôt du moteur python3 -m pip install -r requirements.txtUn environnement virtuel convient aussi ; les outils appellent
python3, activez-le donc avant de les lancer.
-
Installez un navigateur pour les tests de bout en bout.
# dans le dépôt du moteur npx playwright install chromiumChromium est obligatoire (les e2e et les vérifications du Studio s'en servent). WebKit et Firefox sont facultatifs :
npx playwright install webkit firefoxles ajoute, pour les lignes que la CI lance dans ces navigateurs.
-
Consultez le docteur.
# dans le dépôt du moteur npm run doctorChaque ligne est
✔(présent),○(facultatif et absent) ou✖(obligatoire et absent), avec la commande qui corrige, par exempleRun: python3 -m pip install -r requirements.txtouRun: npx playwright install chromium. Il vérifie Node (version majeure 22 ou plus), Python 3, les modules d'image, ffmpeg, les trois navigateurs de Playwright, et Ed25519 et Biscuit pour le Reality Bridge. Seul un élément obligatoire fait échouer le rapport : Python, ffmpeg, WebKit et Firefox sont facultatifs au quotidien.npm run doctor -- --releaserend obligatoires Python, ses modules et ffmpeg, dontnpm run release-checka besoin. Le docteur n'installe jamais rien.
-
Lancez la suite unitaire et le jeu d'exemple.
# dans le dépôt du moteur npm test npm run devnpm testlance la suite unitaire (test:node: tous les fichiers de test sauf les tests lourds du solveur et les deux tests d'assets).npm run devsert le jeu d'exemple, « The Pantry Key », surhttp://localhost:5173/: ouvrez-le dans une fenêtre de la taille d'un téléphone.
-
Choisissez un autre jeu quand il le faut. Le jeu courant est, dans cet ordre : la variable d'environnement
GAME, le jeu vers lequel pointe le lien.cache/game,"config": { "game" }depackage.json, puisdemo.# dans le dépôt du moteur GAME=reference npm run dev # pour cette commande seulement GAME=heroes npm run game # déplace le lien .cache/game : les commandes suivantes utilisent heroes GAME=demo npm run game # retour au jeu d'exempleLes jeux fournis sont
demo,reference(« The Night Market »),heroes,signalset_template(le modèle que copienpm run new-game).npm run dev,npm run checketnpm run buildlancent d'abordnpm run game: le lien suit doncGAMEquand elle est définie.
Ce que vous avez appris
- Les outils du dépôt sont des scripts npm ; Scripts npm les liste tous.
npm run doctordit ce qui manque et comment le corriger :doctor.- Le jeu courant se choisit par
GAME, un lien, puispackage.json.
Pour aller plus loin
- La boucle de développement : changer, vérifier, regarder.
- Architecture et la Visite du code.
- Avant une pull request.