Aller au contenu

Le modèle de projet : s’y retrouver

Chaque nouveau projet part de ce modèle. Le code qu’il contient devient le tien.

Quand tu crées un projet, VibeStarter télécharge un modèle prêt à l’emploi : une base de jeu Roblox déjà structurée, avec les sauvegardes des joueurs, les notifications et une console d’administration. Cette page décrit ce que tu y trouves, où chaque chose atterrit dans Roblox, et ce qu’il ne faut pas toucher.

Dans ton projet Dans Roblox Ce qu’on y met
src/shared/ ReplicatedStorage.Common ce qui sert au serveur et au client
src/server/ ServerScriptService.TS la logique de jeu, invisible pour les joueurs
src/client/ StarterPlayerScripts.TS l’interface et tout ce qui tourne chez le joueur
src/first/ ReplicatedFirst.TS ce qui doit s’exécuter avant tout le reste
Packages/ ReplicatedStorage.Packages les bibliothèques Roblox utilisées par le jeu
include/ ReplicatedStorage.rbxts_include le support nécessaire au code traduit
Ton projetDans Robloxsrc/shared/ReplicatedStorage.Commonsrc/server/ServerScriptService.TSsrc/client/StarterPlayerScripts.TSsrc/first/ReplicatedFirst.TSPackages/ReplicatedStorage.Packagesinclude/ReplicatedStorage.rbxts_include
La correspondance entre les dossiers de ton projet et les emplacements de Roblox. Les quatre premiers passent par la compilation ; les deux derniers sont fournis tels quels.

Tout le reste de ta place — la map, l’éclairage, les modèles que tu poses dans Studio — ne vient pas du projet et n’est pas touché par la synchronisation. Voir La synchronisation, expliquée.

Un fichier placé dans src/server/services/ est chargé automatiquement côté serveur ; un fichier placé dans src/client/controllers/ est chargé automatiquement côté client. Il n’y a rien à déclarer ni à enregistrer : créer le fichier suffit. Tes agents connaissent cette convention et la suivent.

  • Les sauvegardes des joueurs. Un profil par joueur, avec de quoi démarrer : une monnaie, les volumes de musique et d’effets, la date de première et de dernière connexion, l’étape de tutoriel atteinte.
  • La réplication serveur vers client, avec le nettoyage à la déconnexion.
  • Les notifications : des messages passagers (cinq au plus à l’écran, quelques secondes chacun) et des bannières globales (trois au plus), pour prévenir un joueur, tous les joueurs, ou tous sauf un.
  • Une console d’administration, ouverte par la touche F2, avec historique et complétion. Taper adminpanel ou ap ouvre un panneau visuel. Commandes livrées : tuer un joueur, le téléporter, changer sa vitesse, l’expulser, afficher l’aide, envoyer un message à un joueur ou à tous, réinitialiser ou inspecter ses données.
  • La liste des administrateurs, écrite à la création du projet avec ton identifiant Roblox quand ton compte Roblox est déjà lié. Toute personne présente dans Studio et le créateur du jeu sont administrateurs de fait.
  • Une base d’interface : un thème central (couleurs, espacements, typographie), une mise à l’échelle calculée depuis un écran de référence et qui se rebranche quand la caméra change, des animations indépendantes du nombre d’images par seconde, la lecture de sons et le formatage des nombres.
  • Un sac à dos et une barre supérieure prêts à l’usage.
  • Un squelette de tutoriel : un calque, des surbrillances, des faisceaux dans la scène et la mémorisation de l’étape.

À dire franchement, pour éviter la déception : il n’y a pas de classement (leaderboard), pas de boutique, pas de bibliothèque de composants d’interface réutilisables, pas de parcours de tutoriel prêt à jouer, pas de monnaie à gagner, pas de tests. Le squelette de tutoriel est un socle : aucun parcours n’est livré, et il n’est branché nulle part.

C’est une base de jeu, pas un jeu. Ce qui manque, c’est ce que tes agents construisent avec toi.

Trois fichiers sont rendus non modifiables dans ton projet, parce qu’une seule mauvaise modification y casse à la fois la compilation et la synchronisation avec Studio :

Fichier Ce qu’il fait
default.project.json le plan qui dit quel dossier arrive à quel endroit dans Roblox
tsconfig.json les règles de la compilation
scripts/dev.mjs le démarrage du compilateur

D’autres fichiers appartiennent à l’app et sont remis à jour à chaque ouverture du projet, dont le README.md du modèle. Deux fichiers sont fusionnés plutôt que remplacés : tes lignes personnelles dans .gitignore sont conservées, et dans package.json seules les entrées de démarrage sont réconciliées.

Tout le reste — à commencer par src/ — est écrit une fois à la création du projet et plus jamais retouché : ce code est le tien.

Le Cloud sauvegarde et partage le code. Les images, modèles 3D et sons vivent sur Roblox une fois publiés : ton jeu les appelle par leur identifiant. Les stocker en double dans l’historique du projet l’alourdit jusqu’à gêner la synchronisation — c’est pourquoi ils en sont exclus par défaut. Le plan du projet ne monte de toute façon que le code traduit et les bibliothèques.

Voir Où vont tes assets.

  • Le compilateur tourne déjà, lancé par l’app. Ne le démarre pas une seconde fois : il refusera et te dira qu’un compilateur est déjà en cours.
  • out/ est réécrit en permanence : toute modification y est perdue.
  • Le modèle évolue avec l’app, mais seulement pour les fichiers qui lui appartiennent. Ton code ne bouge pas.

Puis-je renommer ou déplacer les dossiers de src/ ? Non. Le plan du projet les attend à ces emplacements, et il n’est pas modifiable.

Pourquoi mon code est-il en TypeScript et pas en Luau ? Parce que c’est la langue du modèle : tu écris du TypeScript, un compilateur le traduit en Luau, et c’est cette traduction que Studio reçoit.

Je veux ajouter une bibliothèque Roblox, c’est possible ? Oui : demande-le à un agent, il l’ajoute aux dépendances du projet. Elle apparaîtra ensuite dans ReplicatedStorage.Packages.

Comment devenir administrateur dans mon propre jeu ? Ton identifiant Roblox y est déjà si ton compte Roblox était lié au moment de la création du projet. Dans Studio, tu es administrateur de toute façon.