Java Swing tower defense game built as an object-oriented programming project.
- Real-time tower defense gameplay with enemies, towers, projectiles and waves.
- Multiple enemy types with different behaviors, including bosses and support enemies.
- Upgradeable towers with different targeting and attack mechanics.
- Map selection and an in-game map creator/editor.
- Save slots, settings, sound effects and help screens.
- Asset-based rendering for maps, enemies, towers, UI panels and audio.
src/: Java source code, game resources and assets.documentacion/: implementation notes and feature documentation.config/: local runtime configuration. User settings and saves are ignored by git.
- JDK 17 or newer.
From the repository root:
PowerShell:
New-Item -ItemType Directory -Force out
Get-ChildItem -Recurse src -Filter *.java | ForEach-Object { $_.FullName } | Set-Content sources.txt
javac -encoding UTF-8 -d out @sources.txtBash:
mkdir -p out
find src -name "*.java" > sources.txt
javac -encoding UTF-8 -d out @sources.txtPowerShell or Bash:
java -cp out MainThe game expects to be run from the repository root so it can load assets from src/assets and resources from src/resources.