- À Propos
- Fonctionnalités
- Captures d'Écran & Démo Vidéo
- Prérequis
- Installation
- Comment Jouer
- Structure du Projet
- Mécaniques de Jeu
- Technologies Utilisées
- Développement
- Contribution
- Licence
ÉnergiVille est un jeu de simulation et de gestion où vous incarnez le maire d'une ville en pleine croissance. Votre mission : développer une infrastructure énergétique durable tout en maintenant le bonheur de vos citoyens et l'équilibre financier de votre ville.
Gérez la production d'énergie, construisez des résidences, développez des infrastructures et faites face aux défis d'une ville moderne : pollution, demande énergétique croissante, et satisfaction des habitants.
- Développer votre ville de niveau 1 à niveau 10
- Équilibrer production d'énergie et demande
- Maintenir le bonheur des citoyens au-dessus de 50%
- Gérer vos finances pour éviter la faillite
- Réduire la pollution en investissant dans les énergies renouvelables
- Résidences : Maisons, Appartements, Gratte-ciels (3 niveaux)
- Centrales Électriques :
- Centrale à Charbon (polluante mais économique)
- Centrale Nucléaire (puissante mais coûteuse)
- Panneaux Solaires (propres, production variable)
- Éoliennes (renouvelables, dépendantes du vent)
- Infrastructures : Routes, Parcs, Écoles, Hôpitaux
- Gestion du Temps : Simulation jour/nuit avec vitesse ajustable (1x, 2x, 5x)
- Économie Dynamique : Revenus, dépenses, maintenance
- Population : Croissance organique basée sur le bonheur et les services
- Énergie : Production, demande, distribution intelligente
- Pollution : Impact sur le bonheur et l'environnement
- Vue Carte Interactive : Grille de construction avec zoom et défilement
- Panneau de Statistiques : Argent, population, énergie, bonheur en temps réel
- Menu de Construction : Sélection intuitive des bâtiments
- Notifications : Alertes et événements importants
- Système de Sauvegarde : Sauvegardez et chargez vos parties
- 10 Niveaux de Ville : De hameau à métropole
- Succès Débloquables : Objectifs et réalisations
- Objectifs Dynamiques : Défis adaptés à votre progression
- 3 Niveaux de Difficulté : Facile, Normal, Difficile
| Écran | Aperçu |
|---|---|
| Menu principal | |
| Carte de la ville | |
| Construction | |
| Statistiques | |
| Événements / alertes | |
| Fin de la partie |
Avant de commencer, assurez-vous d'avoir installé :
-
Java Development Kit (JDK) 21 ou supérieur
- Télécharger JDK
- Vérifiez avec :
java -version
-
Apache Maven 3.8+
- Télécharger Maven
- Vérifiez avec :
mvn -version
-
JavaFX 21 (géré automatiquement par Maven)
- OS : Windows 10/11, macOS 10.14+, Linux
- RAM : 4 GB minimum, 8 GB recommandé
- Résolution : 1024x768 minimum
git clone https://github.com/SpiritGitHub/Manager.git
cd Managermvn clean compilemvn javafx:runmvn clean package
java -jar target/Manager-1.0-SNAPSHOT.jar- Lancez le jeu avec
mvn javafx:run - Choisissez votre difficulté (détermine l'argent de départ)
- Commencez à construire votre ville !
- Clic Gauche : Sélectionner et placer des bâtiments
- Clic Droit : Annuler la sélection
- Molette : Zoom (si implémenté)
- Barre d'Espace : Pause/Reprendre
- Échap : Menu principal
- Commencez petit : Construisez quelques résidences et une centrale à charbon
- Surveillez vos finances : Ne dépensez pas tout votre argent d'un coup
- Équilibrez l'énergie : Production ≥ Demande
- Pensez long terme : Investissez dans les énergies renouvelables
- Maintenez le bonheur : Construisez des parcs et des infrastructures
Victoire : Atteindre le niveau 10 de ville avec un bonheur > 70%
Défaite :
- Bonheur < 5% pendant 3 mois
- Dette > 50 000€
- Population = 0
Manager/
├── src/
│ └── main/
│ └── java/
│ └── org/
│ └── td/
│ ├── Main.java # Point d'entrée
│ ├── controller/ # Contrôleurs
│ │ ├── GameController.java # Contrôleur principal
│ │ ├── BuildingController.java # Gestion des bâtiments
│ │ ├── TimeController.java # Gestion du temps
│ │ └── ...
│ ├── model/ # Modèle de données
│ │ ├── GameState.java # État global du jeu
│ │ ├── entities/ # Entités du jeu
│ │ │ ├── City.java # Ville principale
│ │ │ ├── Building.java # Classe de base
│ │ │ ├── Residence.java # Résidences
│ │ │ ├── PowerPlant.java # Centrales
│ │ │ └── ...
│ │ ├── enums/ # Énumérations
│ │ │ ├── BuildingType.java
│ │ │ ├── GameSpeed.java
│ │ │ └── ...
│ │ └── simulation/ # Moteurs de simulation
│ │ ├── EconomyManager.java # Économie
│ │ ├── EnergySimulator.java # Énergie
│ │ ├── PopulationManager.java
│ │ └── TimeManager.java
│ ├── view/ # Interface utilisateur
│ │ ├── MainView.java # Vue principale
│ │ ├── CityMapView.java # Carte de la ville
│ │ ├── StatsPanel.java # Panneau de stats
│ │ ├── BuildingMenu.java # Menu de construction
│ │ ├── BuildingListPanel.java # Liste des bâtiments
│ │ └── ...
│ └── utils/ # Utilitaires
│ ├── GameConfig.java # Configuration
│ ├── UIColors.java # Couleurs UI
│ └── UIStyles.java # Styles UI
├── saves/ # Sauvegardes (gitignored)
├── pom.xml # Configuration Maven
├── .gitignore
└── README.md
La ville évolue sur 10 niveaux, chacun débloquant :
- Plus d'espace constructible
- De nouveaux types de bâtiments
- Des résidences de niveau supérieur
Conditions de montée de niveau :
- Population minimale atteinte
- Bonheur > 50%
- Pas de dette importante
Tableau de Progression :
| Niveau | Population | Déblocages |
|---|---|---|
| 1 | 0 | Résidences, Centrale Charbon, Parc, Commerce |
| 2 | 200 | École, Hôpital, Police, Pompiers, Éolienne |
| 3 | 500 | Musée, Centrale Solaire |
| 4 | 1 000 | Jardin Botanique |
| 5 | 2 000 | Stade (Boost massif de bonheur) |
| 6 | 4 000 | Université, Centrale Nucléaire |
| ... | ... | Et plus encore jusqu'au niveau 10 ! |
Production :
- Chaque centrale produit une quantité d'énergie variable
- Les énergies renouvelables dépendent des conditions (jour/nuit, météo)
- La maintenance affecte l'efficacité
Types de Centrales :
| Type | Coût | Pollution | Production | Note |
|---|---|---|---|---|
| Charbon | Faible | Élevée | Stable | Idéal pour débuter, mais coûteux en charbon |
| Éolienne | Moyen | Nulle | Variable | Dépend du vent, pas de coût de carburant |
| Solaire | Moyen | Nulle | Jour | Ne produit que le jour, 100% propre |
| Nucléaire | Élevé | Faible | Massive | Très puissant, demande de l'eau |
Demande :
- Chaque résidence consomme de l'énergie
- La demande varie selon l'heure (pics matin/soir)
- Les infrastructures ont aussi une consommation
Distribution :
- L'énergie est distribuée automatiquement
- En cas de pénurie : coupures et baisse de bonheur
Revenus :
- Taxes des résidences (basées sur population)
- Vente d'électricité
- Bonus de niveau
Dépenses :
- Maintenance des bâtiments (mensuelle)
- Coûts opérationnels des centrales
- Salaires et services
Conseils pour l'Équilibre Budgétaire :
- Factures : Plus vous avez d'habitants, plus vous gagnez (0.65€/h par habitant).
- Taxes : Chaque niveau de ville vous rapporte une subvention (10€/h par niveau).
- Excédent : Vendez votre surplus d'électricité !
- Attention : Les services (Police, Hôpital) coûtent cher. Ne les construisez que si votre budget le permet.
Facteurs positifs :
- ✅ Énergie suffisante
- ✅ Faible pollution
- ✅ Infrastructures (parcs, écoles, hôpitaux)
- ✅ Revenus stables
Facteurs négatifs :
- ❌ Coupures de courant
- ❌ Pollution élevée
- ❌ Manque de services
- ❌ Surpopulation
- Les centrales à charbon polluent beaucoup
- Les centrales nucléaires polluent peu
- Les énergies renouvelables ne polluent pas
- La pollution réduit le bonheur et la santé
- 1 heure de jeu = quelques secondes réelles
- Cycle jour/nuit : 24 heures
- Mois : 30 jours
- Événements mensuels : Rapports, maintenance, évolution
- Java 21 - Langage de programmation
- JavaFX 21 - Framework d'interface graphique
- Maven - Gestion des dépendances et build
- MVC (Model-View-Controller) - Pattern architectural
- Observer Pattern - Pour les événements et notifications
- Singleton Pattern - Pour les gestionnaires globaux
javafx-controls- Composants UIjavafx-graphics- Rendu graphique- Java Serialization - Système de sauvegarde
# Nettoyer et compiler
mvn clean compile
# Exécuter les tests (si disponibles)
mvn test
# Créer un package
mvn package
# Lancer en mode développement
mvn javafx:runLe projet suit une architecture MVC stricte :
- Model (
org.td.model) : Logique métier et données - View (
org.td.view) : Interface utilisateur JavaFX - Controller (
org.td.controller) : Coordination et événements
- Modèle : Créer/modifier les entités dans
model/entities/ - Simulation : Ajouter la logique dans
model/simulation/ - Contrôleur : Gérer les interactions dans
controller/ - Vue : Créer l'interface dans
view/ - Configuration : Ajuster les constantes dans
utils/GameConfig.java
- Langue : Commentaires et noms en français
- Style : CamelCase pour les classes, camelCase pour les méthodes
- Documentation : Javadoc pour les classes et méthodes publiques
Ce projet a été réalisé en binôme avec une répartition équilibrée des tâches :
- Architecture & Noyau : Mise en place du pattern MVC et de la structure du projet.
- Système de Jeu : Développement de la boucle temporelle et de la gestion des ressources.
- Économie : Implémentation du système financier (revenus, taxes, dépenses).
- Interface : Conception de la fenêtre principale et des panneaux de statistiques.
- Bâtiments : Développement du système de construction et d'amélioration.
- Énergie : Logique de production des centrales et distribution d'électricité.
- Infrastructures : Gestion des routes, parcs et services publics.
- Simulation : Implémentation des mécaniques de population et de bonheur.
- Simulation : Implementation de l'interface Acceuil
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
- Merci à la communauté JavaFX pour les ressources et tutoriels
Construisez la ville énergétique du futur !
Si vous aimez ce projet, n'oubliez pas de lui donner une !