Un god game/sandbox 2D dans un monde souterrain où tu places des blocs et observes des entités évoluer.
God-game-Q1 est un prototype de god game développé en 3 semaines dans le cadre d'un projet d'école. Le joueur construit un petit écosystème souterrain en plaçant des blocs, de l'eau et d'autres éléments. Des entités autonomes évoluent dans ce monde et interagissent avec l'environnement. Le jeu tourne sur PC et WebGL.
Développé avec Unity 6000.2.2f1, le projet met l'accent sur la simulation physique de l'eau et l'optimisation pour rendre le tout jouable malgré le grand nombre d'éléments actifs.
- Placement de blocs : construction libre d'un terrain souterrain
- Système d'eau dynamique : simulation de fluide avec propagation et physique
- IA d'entités : comportements autonomes des créatures dans le monde
- Destruction de blocs : modification en temps réel de l'environnement
- Optimisation poussée : techniques d'optimisation pour maintenir les performances avec de nombreux éléments actifs
- Unity 6000.2.2f1 (version exacte recommandée)
- Plugins inclus dans le dépôt (voir section Plugins)
-
Clone le dépôt :
git clone https://github.com/DoriannX/God-game-Q1.git
-
Ouvre le projet dans Unity Hub avec la version 6000.2.2f1.
-
Laisse Unity importer les assets et compiler les scripts (première ouverture = quelques minutes).
-
Ouvre la scène
Assets/Scenes/MainMenu.unitypour lancer depuis le menu, ou directementAssets/Scenes/SampleScene.unitypour accéder au jeu. -
Appuie sur Play.
- PC Standalone : File > Build Settings > PC, Mac & Linux Standalone
- WebGL : File > Build Settings > WebGL (compression Brotli activée)
| Action | Commande |
|---|---|
| Placer un bloc / élément | Clic gauche |
| Déplacer la caméra | Clic droit ou clic molette (maintenir) |
| Zoomer / Dézoomer | Molette de la souris |
Le système de gestion de l'eau repose sur WaterSystem.cs qui gère la simulation du fluide dans le monde souterrain. L'eau interagit avec le terrain via HeightManager.cs et HeightCalculator.cs, qui calculent et mettent à jour les hauteurs des cellules (HeightCell.cs). Le composant WaterChecker.cs permet aux entités de détecter la présence d'eau et d'adapter leur comportement en conséquence.
L'optimisation du projet repose principalement sur une architecture modulaire et des systèmes de mise à jour ciblée :
- Système de ticks : TickSystem.cs contrôle le rythme de mise à jour des éléments du jeu
- Managers dédiés : séparation des responsabilités (GhostManager, TaskManager, MeteoManager) pour éviter les calculs inutiles
- Composants légers : découpage en 13 composants spécialisés permettant d'activer/désactiver des fonctionnalités par entité
- Pathfinding optimisé : utilisation d'une file de priorité (PriorityQueue.cs) pour le calcul de chemins hexagonaux
Le projet utilise une architecture basée sur le pattern Manager-Component-System :
- Machine à états : Unity HFSM avec StateMachineController.cs gérant les comportements (WanderState, WorkState, ScareState)
- Managers centralisés : 9 managers spécialisés coordonnent les différents aspects (tâches, fantômes, météo, input, sauvegarde, terrain)
- Composants modulaires : 13 composants réutilisables (MovementComponent, WorkComponent, PaintComponent, etc.) attachables aux entités
- Systèmes dédiés : gestion du cycle jour/nuit (DayCycleSystem.cs) et du système de ticks pour les mises à jour temporelles
- Pathfinding hexagonal : système de navigation A* adapté aux grilles hexagonales avec HexPathfinding2D.cs
Assets/
├── Scenes/ # Scènes principales (MainMenu.unity, SampleScene.unity)
├── Scripts/ # Code du projet (systèmes, IA, UI, managers)
├── Art/ # Sprites, animations, visuels créés pour le jeu
├── Prefabs/ # Prefabs des entités, blocs, UI
├── Plugins/ # Dépendances externes (voir section Plugins)
├── UI/ # Assets UI (polices, icônes, layouts)
└── Settings/ # Configurations Unity (Input, Render Pipeline, etc.)
Le projet intègre plusieurs outils externes pour accélérer le développement :
- DOTween : animations et tweening
- Flexible Save System : sauvegarde/chargement de parties
- FMOD : gestion audio avancée
- Pixel Weather Asset : effets météo pixel art
- The Black Cat 2D Trail Effect : trails pour les entités
- Unity HFSM : machine à états hiérarchique
- Code et game design : Doriann Xavier
- Art 2D : Doriann Xavier
- Plugins : voir section Plugins
Ce projet est open source sous licence MIT. Tu peux le réutiliser, le modifier et le redistribuer librement.
- Email : theodor.xav@gmail.com
- Portfolio : bit.ly/doriann-xavier
Projet réalisé en 3 semaines dans le cadre d'un cursus de développement de jeux vidéo.




