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.
- 🧠 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
- ☕ 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
- 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.
- 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.
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
🔗 Want to learn more? Reach out via:
📧 [email protected]