Post

Getting Started

You will build a turn-based console game in Java, inspired by League of Legends (LoL). The game allows the player to:
- Select a champion from a list
- Fight against a bot opponent
- Use skills with special effects (stun, burn, heal)

Getting Started

Overview

You will build a turn-based console game in Java, inspired by League of Legends (LoL). The game allows the player to:

  • Select a champion from a list
  • Fight against a bot opponent
  • Use skills with special effects (stun, burn, heal)

This project demonstrates all 4 principles of Object-Oriented Programming (OOP):

  • Encapsulation
  • Inheritance
  • Abstraction
  • Polymorphism

It also integrates:

  • Factory Design Pattern
  • Java Collections (List)
  • A game loop with PvE (Player vs Bot)

Learning Roadmap – 10 Episodes

EpisodeTopicLearning Objectives
1Game structure setupCreate the base folder and file structure. Write the Main class and display a welcome screen.
2Implement subclasses (Inheritance)Create specific hero types like Warrior, Mage, etc., inheriting from Hero.
3Define Hero class (Abstraction)Learn how to use abstract classes and interfaces to define common hero behavior.
4Add Skills and EffectsBuild a Skill class and apply it to heroes. Use simple logic to deal damage.
5Use Collections (List<Hero>)Store available champions in a list and allow player to select one.
6ChampionFactory (Factory Pattern)Implement a factory class to instantiate heroes by name dynamically.
7Status Effects (Stun, Burn, Heal)Create a StatusEffect interface and apply real-time effects to heroes.
8Basic Combat SystemImplement a turn-based combat loop between player and bot.
9Add a Bot AICreate a BotHero class with basic decision-making to simulate PvE.
10Polish and ExtendImprove game experience, refactor code, add more heroes, skills, and effects. Prepare for deployment or further expansion.

Key Concepts Practiced

  • Object-Oriented Design
  • Abstraction & Encapsulation
  • Inheritance & Polymorphism
  • Design Patterns (Factory)
  • Java Collections (List, Random)
  • Game logic: turns, skills, effects, AI
This post is licensed under CC BY 4.0 by the author.