Un Tower Defense stratégique où votre pire ennemi est la procrastination.
Ce projet Unity est un jeu de stratégie de type Tower Defense. Le but est de créer une expérience engageante où le joueur doit défendre sa concentration et réussir ses études face à des vagues incessantes de distractions.
Vous incarnez un étudiant dans sa chambre, bloqué à son bureau. Il doit impérativement travailler, mais l'univers semble ligué contre lui. Au lieu de monstres classiques, vous combattez les distractions du quotidien. Vous devez placer stratégiquement vos défenses pour empêcher la barre de "Productivité" de tomber à zéro.
Le joueur doit survivre à des vagues de plus en plus intenses. Les ennemis ne cherchent pas à tuer, mais à distraire :
- 📱 Le Smartphone : Envoie des notifications, des SMS et des appels incessants.
- 💬 Discord : Le PC notifie qu'une session de jeu va commencer.
- 💻 Pannes Matérielles : L'ordinateur qui crash, besoin de le recharger ou de le réparer.
- 💡 Environnement : La lampe de bureau qui grille au pire moment.
- Placement Stratégique : Choisissez où placer vos tours (outils de travail) pour maximiser l'efficacité.
- Système de Vagues : Une difficulté progressive avec des distractions de plus en plus agressives.
- Gestion de Ressources : Gérez votre énergie et votre temps pour acheter des améliorations.
- Système de Sauvegarde : Persistence des données (Score, Volume, Pseudo) via PlayerPrefs.
Système de Sauvegarde (PlayerPrefs)
Le jeu utilise un système simple pour conserver les préférences du joueur et son avancement.
Sauvegarder les données :
// Exemple de sauvegarde
PlayerPrefs.SetInt("score", 5);
PlayerPrefs.SetFloat("volume", 0.6f);
PlayerPrefs.SetString("username", "John Doe");
// Astuce pour les booléens (0 = faux, 1 = vrai)
bool val = true;
PlayerPrefs.SetInt("PropName", val ? 1 : 0);
PlayerPrefs.Save(); // Important pour écrire sur le disqueCharger les données :
// Lecture des données
int score = PlayerPrefs.GetInt("score");
float volume = PlayerPrefs.GetFloat("volume");
string player = PlayerPrefs.GetString("username");
// Récupérer le booléen
bool val = PlayerPrefs.GetInt("PropName") == 1 ? true : false;Ce projet utilise des assets de haute qualité pour le rendu visuel et l'animation.
- Animations : Mixamo
- Textures & HDRI : Poly Haven
Voici les procédures pour configurer le projet et importer les assets correctement.
-
Téléchargement Allez sur Poly Haven. Téléchargez la texture souhaitée (fichier ZIP contenant Diffuse, Normal, Roughness, etc.).
-
Importation dans Unity Décompressez le ZIP. Dans Unity, créez un dossier Assets/Textures/PolyHaven. Glissez-déposez les fichiers de texture dans ce dossier.
-
Création du Matériau Clic droit dans le dossier Project > Create > Material. Sélectionnez le Shader approprié (Standard ou URP/Lit).
-
Configuration Glissez les textures dans les slots correspondants du matériau : Diffuse/Albedo ➔ Champ Albedo Normal Map ➔ Champ Normal Map (Fixez le type si Unity le demande) Roughness ➔ Champ Metallic/Smoothness (selon le shader)
-
Application Glissez le matériau sur l'objet 3D dans la scène ou dans le champ Materials du composant Mesh Renderer.
-
Créer le projet Unity Ouvrir Unity Hub, créer un projet, choisir le template et l'emplacement.
-
Initialiser Git Ouvrir un terminal à la racine du projet :
git init
git branch -m main- Configurer le .gitignore Créez un fichier .gitignore à la racine pour exclure les fichiers temporaires :
Extrait de code :
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uilds/
[Bb]uild/
[Ll]ogs/
[Mm]emoryCaptures/
UserSettings/
.vs/
.DS_Store
Puis validez-le :
git add .gitignore
git commit -m "Ajout du .gitignore"- Lier à GitHub
- Créez un nouveau dépôt sur GitHub (vide).
- Liez le dépôt local au distant :
git remote add origin <URL_DU_DEPOT>
git push -u origin main- Premier Envoi (Commit)
git add .
git commit -m "Initial commit"
git push origin main- Collaboration (Cheat Sheet) Récupérer le projet : git clone Mettre à jour : git pull origin main Nouvelle branche : git checkout -b ma-feature Fusionner : git checkout main puis git merge ma-feature

