Skip to content

Commit 06e1896

Browse files
committed
big update
1 parent 4396c95 commit 06e1896

25 files changed

Lines changed: 3199 additions & 1723 deletions

README.md

Lines changed: 234 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,286 @@
1-
Dungeon Escape (JavaFX)
1+
# The End The Beginning - Dungeon Escape Game 🏰Dungeon Escape (JavaFX)
2+
23
📖 Overview
34

5+
## 📖 Overview
6+
47
Dungeon Escape is a text-adventure style game built in Java with a JavaFX GUI.
5-
Players explore, fight, and progress through levels while their stats are updated in real time.
68

7-
The MainController connects the UI (FXML) with the game logic, handling input and updating the display.
9+
**The End The Beginning** is an immersive text-adventure dungeon escape game built with Java and JavaFX. Players embark on a perilous journey through a mysterious dungeon, battling monsters, collecting items, and progressing through 10 challenging levels to achieve freedom.Players explore, fight, and progress through levels while their stats are updated in real time.
10+
11+
12+
13+
This enhanced version features a complete character class system, inventory management, achievements, and polished JavaFX GUI interface.The MainController connects the UI (FXML) with the game logic, handling input and updating the display.
14+
15+
16+
17+
**Current Version:** 2.0 (Enhanced Edition) 🚀 Features
18+
19+
**Developer:** Abdul Fornah
20+
21+
**Framework:** Java 17+ with JavaFX Interactive Story/Game Loop with dynamic text updates.
22+
823

9-
🚀 Features
1024

11-
Interactive Story/Game Loop with dynamic text updates.
25+
---Player Stats Tracking: health, attack, defense, and level displayed live.
1226

13-
Player Stats Tracking: health, attack, defense, and level displayed live.
1427

15-
Commands System: enter actions via text field (e.g., attack, explore).
1628

17-
Game Controls:
29+
## 🎮 Game FeaturesCommands System: enter actions via text field (e.g., attack, explore).
1830

19-
Start button → begins the adventure.
2031

21-
Submit button → sends player’s command.
32+
33+
### Core GameplayGame Controls:
34+
35+
- **🏰 Epic Dungeon Adventure** - Navigate through 10 increasingly challenging dungeon levels
36+
37+
- **⚔️ Character Classes** - Choose from Warrior, Mage, or Rogue, each with unique abilities and stat growthStart button → begins the adventure.
38+
39+
- **👹 Dynamic Monster System** - Face diverse enemies with special abilities and scaling difficulty
40+
41+
- **📦 Inventory Management** - Collect and use various items including weapons, armor, and potionsSubmit button → sends player’s command.
42+
43+
- **🏆 Achievement System** - Unlock achievements for exploration, combat, and progression milestones
2244

2345
Stats button → shows current stats.
2446

25-
Reset button → restarts the game.
47+
### Character Progression
48+
49+
- **📈 Experience & Leveling** - Gain XP from combat and exploration to level up your characterReset button → restarts the game.
50+
51+
- **💪 Stat Growth** - Each class has different stat growth patterns (health, attack, defense)
2652

27-
🛠️ Requirements
53+
- **🎯 Class-Specific Bonuses** - Warriors are tanky, Mages hit hard, Rogues have critical strikes🛠️ Requirements
54+
55+
- **📊 Detailed Statistics** - Track your progress with comprehensive stat displays
2856

2957
Java 17+ (recommended)
3058

31-
JavaFX SDK (matching your JDK version)
59+
### Interactive Interface
60+
61+
- **🖥️ Modern JavaFX GUI** - Clean, intuitive interface with real-time stat updatesJavaFX SDK (matching your JDK version)
3262

33-
IDE with JavaFX support (IntelliJ, Eclipse, or VS Code)
63+
- **⌨️ Text-Based Commands** - Enter actions via text field for immersive gameplay
64+
65+
- **🎛️ Control Panel** - Easy access to game controls (Start, Stats, Reset)IDE with JavaFX support (IntelliJ, Eclipse, or VS Code)
66+
67+
- **📱 Responsive Design** - Scales well with different window sizes
3468

3569
🎮 Gameplay
3670

71+
---
72+
3773
Press Start to begin the adventure.
3874

75+
## 🚀 Getting Started
76+
3977
Type commands (e.g., attack, explore, run) into the input field and hit Submit.
4078

41-
Track your health, attack, defense, and level on-screen.
79+
### System Requirements
80+
81+
- **Java:** 17 or higher (JDK recommended)Track your health, attack, defense, and level on-screen.
82+
83+
- **JavaFX:** Matching your JDK version (often bundled with JDK)
4284

43-
Press Stats anytime to review progress.
85+
- **IDE:** IntelliJ IDEA, Eclipse, or VS Code with Java extensionsPress Stats anytime to review progress.
86+
87+
- **OS:** Windows, macOS, or Linux
4488

4589
Use Reset to start fresh.
4690

47-
🧑‍💻 Developer Notes
91+
### Installation & Setup
92+
93+
1. **Clone the repository:**🧑‍💻 Developer Notes
94+
95+
```bash
96+
97+
git clone https://github.com/[your-username]/TheEndOfTheBeginning-game.gitMain.java → The entry point that loads the FXML and launches the JavaFX application.
98+
99+
cd TheEndOfTheBeginning-game/TheEndTheBeginning
48100

49-
Main.java → The entry point that loads the FXML and launches the JavaFX application.
101+
```MainController.java → Core controller that handles:
50102
51-
MainController.java → Core controller that handles:
52103
53-
User input (TextField)
54104
55-
Updating story text (TextArea)
105+
2. **Import into your IDE:**User input (TextField)
106+
107+
- Open the `TheEndTheBeginning` folder as a Maven project
108+
109+
- Ensure JavaFX is properly configured in your IDEUpdating story text (TextArea)
110+
111+
- Verify Java 17+ is selected as the project JDK
56112
57113
Managing buttons (Start, Submit, Stats, Reset)
58114
59-
Syncing player stats with labels (healthLabel, attackLabel, etc.)
115+
3. **Run the application:**
116+
117+
- Main class: `gameproject.TheEndTheBeginning`Syncing player stats with labels (healthLabel, attackLabel, etc.)
118+
119+
- Or use your IDE's run configuration for JavaFX applications
60120
61121
GameState.java → Holds all the game data (player health, level, attack, defense, etc.). Acts as the "model" in an MVC-like structure.
62122
63-
FXML → Defines the GUI layout (buttons, text areas, input fields, labels).
123+
### Quick Start
124+
125+
1. Click **"Start New Game"** to begin your adventureFXML → Defines the GUI layout (buttons, text areas, input fields, labels).
126+
127+
2. Choose your character class (Warrior, Mage, or Rogue)
128+
129+
3. Select difficulty level (Easy, Medium, Hard, or Death)CSS (optional) → Can be used to style the game window (themes, fonts, colors).
130+
131+
4. Enter your character name
132+
133+
5. Use text commands to navigate and interact with the game world📌 Tip for future dev work:
64134
65-
CSS (optional) → Can be used to style the game window (themes, fonts, colors).
66135
67-
📌 Tip for future dev work:
68136
69-
Keep game logic inside GameState (or dedicated classes) instead of bloating the controller.
137+
---Keep game logic inside GameState (or dedicated classes) instead of bloating the controller.
70138
71-
Use the controller mainly for event handling and updating the UI.
72139
73-
If the game grows, consider splitting into multiple controllers for different screens (menu, battle, etc.).
74140
75-
🧩 Next Steps
141+
## 🎯 Gameplay GuideUse the controller mainly for event handling and updating the UI.
142+
143+
144+
145+
### Character ClassesIf the game grows, consider splitting into multiple controllers for different screens (menu, battle, etc.).
146+
147+
- **🛡️ WARRIOR** - High health and defense, reliable damage
148+
149+
- *Starting Stats:* 120 HP, 15 ATK, 8 DEF🧩 Next Steps
150+
151+
- *Bonus:* Consistent damage output, high survivability
76152
77153
Add more story events and encounters.
78154
79-
Expand combat system with items and enemies.
155+
- **🧙 MAGE** - High attack power, learns quickly, fragile
156+
157+
- *Starting Stats:* 80 HP, 25 ATK, 3 DEF Expand combat system with items and enemies.
158+
159+
- *Bonus:* +20% experience gain, critical hit chance
80160
81161
Implement save/load functionality.
82162
83-
Polish UI with CSS themes
163+
- **🗡️ ROGUE** - Balanced stats, critical hit specialist
164+
165+
- *Starting Stats:* 100 HP, 20 ATK, 5 DEFPolish UI with CSS themes
166+
167+
- *Bonus:* +30% critical hit chance, balanced growth
168+
169+
### Game Commands
170+
During gameplay, you'll make choices by entering numbers or text commands:
171+
- **Combat:** Choose to attack, run, or use items
172+
- **Exploration:** Search rooms, move forward, check stats, manage inventory
173+
- **Inventory:** Use items during encounters or exploration
174+
175+
### Progression System
176+
- **Levels 1-3:** Learn the basics, face weak enemies
177+
- **Levels 4-6:** Encounter stronger monsters, better loot
178+
- **Levels 7-9:** Elite enemies with special abilities
179+
- **Level 10:** Final boss encounter and escape
180+
181+
---
182+
183+
## 🛠️ Technical Architecture
184+
185+
### Project Structure
186+
```
187+
src/main/java/
188+
├── gameproject/
189+
│ ├── TheEndTheBeginning.java # Application entry point
190+
│ ├── MainControllerNew.java # JavaFX controller & game logic
191+
│ └── Monster.java # Simple monster class for combat
192+
├── main/model/
193+
│ ├── Player.java # Enhanced player system
194+
│ ├── Item.java # Item management system
195+
│ └── [Monster.java] # Advanced monster system (future)
196+
└── resources/
197+
├── game.fxml # UI layout definition
198+
└── game-style.css # UI styling
199+
```
200+
201+
### Design Patterns
202+
- **MVC Architecture** - Clear separation of Model, View, and Controller
203+
- **Observer Pattern** - UI updates when player stats change
204+
- **Strategy Pattern** - Different character classes with unique behaviors
205+
- **Factory Pattern** - Dynamic item and monster generation
206+
207+
### Key Components
208+
- **MainControllerNew** - Handles all UI events and game state management
209+
- **Player Class** - Comprehensive player data with progression system
210+
- **GameState** - Legacy compatibility layer for smooth transitions
211+
- **Item System** - Various item types (healing, equipment, consumables)
212+
213+
---
214+
215+
## 🔄 Recent Updates (Version 2.0)
216+
217+
### ✅ New Features
218+
- Complete character class system with unique progression
219+
- Enhanced inventory management with item types and rarity
220+
- Achievement tracking and milestone rewards
221+
- Improved combat mechanics with status effects
222+
- Polished UI with better visual feedback
223+
224+
### 🔧 Technical Improvements
225+
- Modernized codebase with Java 17+ features
226+
- Better error handling and user feedback
227+
- Optimized performance and memory usage
228+
- Comprehensive documentation and code comments
229+
230+
### 🐛 Bug Fixes
231+
- Fixed class naming inconsistencies
232+
- Resolved import and dependency issues
233+
- Corrected switch statement syntax warnings
234+
- Eliminated unused variables and methods
235+
236+
---
237+
238+
239+
240+
## 🤝 Contributing
241+
242+
We welcome contributions from developers, testers, and players! Here's how you can help:
243+
244+
### For Developers
245+
- **Bug fixes** - Check the issue tracker for reported bugs
246+
- **Feature implementation** - Pick items from the TODO list
247+
- **Code optimization** - Performance improvements and refactoring
248+
- **Documentation** - Improve comments, guides, and examples
249+
250+
### For Testers
251+
- **Bug reporting** - Play the game and report issues with reproduction steps
252+
- **Balance feedback** - Suggest improvements to gameplay mechanics
253+
- **UI/UX suggestions** - Help improve the user experience
254+
255+
### For Players
256+
- **Feedback** - Share your gameplay experience and suggestions
257+
- **Screenshots** - Show off your achievements and high scores
258+
- **Reviews** - Help spread the word about the game
259+
260+
---
261+
262+
## 📞 Support & Contact
263+
264+
- **Issues:** Report bugs via GitHub Issues
265+
- **Questions:** Check documentation or open a discussion
266+
- **Suggestions:** Feature requests welcome in Issues or Discussions
267+
268+
---
269+
270+
## 📄 License & Credits
271+
272+
**Developer:** Abdul Fornah
273+
**Framework:** JavaFX
274+
**Language:** Java 17+
275+
276+
*This project is for educational and entertainment purposes. Feel free to learn from, modify, and build upon this code.*
277+
278+
---
279+
280+
## 🎉 Acknowledgments
281+
282+
- **Java & JavaFX Communities** for excellent documentation and examples
283+
- **UMBC Computer Science Program** for educational support and resources
284+
- **Beta Testers** who provided valuable feedback during development
285+
286+
*Ready to escape the dungeon? Your adventure awaits...* ⚔️

0 commit comments

Comments
 (0)