Skip to content

DoriannX/God-game-Q1

Repository files navigation

God-game-Q1

Un god game/sandbox 2D dans un monde souterrain où tu places des blocs et observes des entités évoluer.

Aperçu du projet

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.

Fonctionnalités

  • 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

Captures et vidéo

Capture 1

Capture 2

Capture 3

Capture 4

Capture 5

Comment lancer le projet

Prérequis

  • Unity 6000.2.2f1 (version exacte recommandée)
  • Plugins inclus dans le dépôt (voir section Plugins)

Étapes

  1. Clone le dépôt :

    git clone https://github.com/DoriannX/God-game-Q1.git
  2. Ouvre le projet dans Unity Hub avec la version 6000.2.2f1.

  3. Laisse Unity importer les assets et compiler les scripts (première ouverture = quelques minutes).

  4. Ouvre la scène Assets/Scenes/MainMenu.unity pour lancer depuis le menu, ou directement Assets/Scenes/SampleScene.unity pour accéder au jeu.

  5. Appuie sur Play.

Build

  • PC Standalone : File > Build Settings > PC, Mac & Linux Standalone
  • WebGL : File > Build Settings > WebGL (compression Brotli activée)

Contrôles

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

Points techniques

Système d'eau

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.

Optimisation

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

Architecture

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

Structure du dépôt

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.)

Plugins utilisés

Le projet intègre plusieurs outils externes pour accélérer le développement :

Crédits

  • Code et game design : Doriann Xavier
  • Art 2D : Doriann Xavier
  • Plugins : voir section Plugins

Licence

Ce projet est open source sous licence MIT. Tu peux le réutiliser, le modifier et le redistribuer librement.

Contact


Projet réalisé en 3 semaines dans le cadre d'un cursus de développement de jeux vidéo.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors