Post

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.

FeatureDescription
HeroesBase class + subclasses (Warrior, Mage) using inheritance
EncapsulationProperties like hp, name, skills are private with controlled access
AbstractionHero, Skill, and StatusEffect are abstract base classes
PolymorphismOverride methods like useSkill() and apply()
Design PatternsFactory Pattern (ChampionFactory) for champion creation
Battle SystemTurn-based loop: Player vs Bot
Status EffectsBurn, Stun, and Heal effects via StatusEffect
PvE BotBasic 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.