A 2D tower defense game applying object-oriented programming principles and game logic design. Built as a Pemrograman Berbasis Obyek (Object-Oriented Programming) course final project.
Overview
A Java/LibGDX tower defense game built for an object-oriented programming final project. The project demonstrates game state management, entity behavior, and reusable class design through a playable tower-defense loop.
Problem
The academic challenge was to apply object-oriented programming to a stateful game with enemies, towers, upgrades, scoring, and wave progression.
Target Users
Casual gamers
My Role
Developer
Implemented core mechanics including enemy pathfinding, tower placement, attack logic, and wave progression using Java and LibGDX.
Key Features
→ Enemy path and wave progression
→ Tower placement and attack logic
→ Projectile and collision behavior
→ Money, score, health, and remaining enemy state
→ Pause, speed, reset, and upgrade controls
Challenges & Trade-offs
Keeping game entities modular enough for OOP evaluation
Managing real-time state updates across enemies, towers, projectiles, and HUD
Proof Artifacts
Wave start screen showing the map, HUD, health, money, and upcoming wave timing.Gameplay loop with tower placement, projectile attacks, score, money, health, and remaining enemy count.Map and HUD surface for placing towers, pausing, speeding up, resetting, and upgrading attributes.