Episode 10: Final Wrap-Up & Expansion Ideas
Goal: Reflect on what we’ve built, review OOP principles applied, and explore ways to take this project further.
Episode 10: Final Wrap-Up & Expansion Ideas
1. Built the project
A console-based MOBA-style Java game using full OOP design.
Feature | Description |
---|---|
Heroes | Base class + subclasses (Warrior, Mage) using inheritance |
Encapsulation | Properties like hp, name, skills are private with controlled access |
Abstraction | Hero, Skill, and StatusEffect are abstract base classes |
Polymorphism | Override methods like useSkill() and apply() |
Design Patterns | Factory Pattern (ChampionFactory) for champion creation |
Battle System | Turn-based loop: Player vs Bot |
Status Effects | Burn, Stun, and Heal effects via StatusEffect |
PvE Bot | Basic AI using random decisions |
2. Architecture Overview
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
model/
├── Hero.java (abstract)
├── Warrior.java / Mage.java (extends Hero)
├── Skill.java (abstract)
├── BasicAttack.java / Fireball.java (extends Skill)
effect/
├── StatusEffect.java (abstract)
├── BurnEffect.java / HealEffect.java / StunEffect.java
factory/
├── ChampionFactory.java
main/
├── Main.java
3. Expansion Ideas
Here are ways students can extend the game and keep learning:
1. Cooldowns for Skills
Add cooldown to Skill class and prevent usage until ready.
1
2
protected int cooldown;
protected int currentCooldown;
2. Smarter Bot AI
Make bot evaluate HP, choose heal, or stun tactically.
3. Save/Load System
Use file I/O to let users save and resume games.
4. Add Buff/Debuff Effects
E.g., ShieldEffect, PoisonEffect, SpeedBoost, etc.
5. Multiple Champions (Team Fight)
Let players choose teams of 3 champions, battle in turns.
Congratulations!
You’ve completed a full OOP Java game project using real-world design techniques. This foundation prepares students to:
- Understand game architecture
- Apply OOP in projects
- Start building GUI-based or online multiplayer games in the future!
This post is licensed under CC BY 4.0 by the author.