Skip to content

An OOP-based tower defense game inspired by Plants vs Zombies, developed in Java for the POOB course at Escuela Colombiana de Ingeniería Julio Garavito. The game features AI-driven matches (PvE, PvP, Machine vs Machine), real-time threaded gameplay, save/load functionality, custom error handling, and resource management.

Notifications You must be signed in to change notification settings

AnderssonProgramming/POOB-VS-Zombies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 POOBvsZombies: Tower Defense Java Game

🏆 Best OOP Project — Escuela Colombiana de Ingeniería Julio Garavito

POOBvsZombies is a fully object-oriented tower defense game inspired by Plants vs Zombies, developed in Java as part of the POOB (Object-Oriented Programming) course. This project blends software engineering best practices, advanced Java skills, and real-time gameplay mechanics to deliver an engaging and technically solid gaming experience.

Note: This is not the complete version of the game. It represents only part of the general game.


⚙️ Features & Gameplay

  • 🧠 AI-Driven Matches: PvE, PvP, and even Machine vs Machine
  • 🌻 Real-time combat: Every plant and zombie runs as a thread
  • 💾 Save/Load your matches with persistent state
  • 🔧 Custom exceptions with error logging
  • 💸 Resource & score management system
  • 🧟 New plants and zombie types

🛠️ Tech Stack

  • ☕ Java + Maven for build & dependency control
  • 🧱 MVC Clean Architecture (Domain, UI, Logic separated)
  • 🧬 UML Design: Class & Sequence Diagrams
  • 🧪 Testing & Static Analysis with Eclipse + Jacoco
  • 🔁 GitHub for version control and teamwork
  • 🗃️ Custom Queue-Priority for entity control

📝 Current Game Elements

Plants:

  • Sunflower: Generates suns over time.
  • Peashooter: Attacks zombies by shooting peas.
  • Wall-nut: Acts as a defensive barrier.
  • PotatoMine: Explodes after a delay, eliminating nearby zombies.
  • ECIPlant: Unique representation; generates a larger sun.

Zombies:

  • Basic: The common, straightforward zombie.
  • Conehead: Zombie with a protective cone, offering increased resistance.
  • Buckethead: Highly resilient with a bucket as extra armor.
  • Brainstein: Remains stationary and generates brains over time.
  • ECIZombie: Shoots projectiles (POOmBas) periodically.

These elements are part of an evolving project. Further game features, plants, zombies, and refined rules will be implemented in future versions.


🚀 Wanna Play? Clone & Run the Game || Download the branch

Here’s how to launch POOBvsZombies on your machine in minutes:

# 1. Clone the repository
git clone https://github.com/AnderssonProgramming/POOBvsZombies.git
cd POOBvsZombies

# 2. Clean and compile the code
mvn clean
mvn compile

# 3. Package into a runnable JAR
mvn package

# 4. Run the game (if exec plugin is configured)
mvn exec:java

# Or run the JAR manually (replace with actual JAR name)
java -jar target/poobvszombies.jar

🧰 Requirements: Java 8+ & Maven installed


📸 Including Screenshots

pvz_main pvsp pvsm mvm garden


🔗 Want to learn more? Reach out via:
📧 [email protected]

About

An OOP-based tower defense game inspired by Plants vs Zombies, developed in Java for the POOB course at Escuela Colombiana de Ingeniería Julio Garavito. The game features AI-driven matches (PvE, PvP, Machine vs Machine), real-time threaded gameplay, save/load functionality, custom error handling, and resource management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages