ZombieWash
Overview
ZombieWash is a turn-based task management game where players satiate the needs of the undead during a zombie apocalypse. Built in Unity, the game challenges players to balance limited resources and time while managing their zombie "clients."

Instead of fighting zombies, you're running a service facility for them, creating a uniquely humorous take on the post-apocalyptic genre. Players use a card-based action system to perform different treatments while strategically planning each turn to maximize efficiency and survival.
Technical Implementation
Developed using Unity's 2D framework, ZombieWash features custom systems for turn management, zombie interactions, and resource tracking. The card system forms the core gameplay mechanic, representing different treatments and services players can perform on their undead clients.

Each zombie has procedurally generated needs and preferences, creating varied gameplay scenarios that require adaptive strategies. The game's architecture separates the UI, game logic, and data management layers to facilitate testing and iteration throughout the development process.
Challenges
Creating the card system was the most challenging aspect of development. We needed a flexible framework that could handle various card effects while maintaining game balance and preventing scenarios that were impossible to win.

Additionally, optimizing for WebGL presented significant hurdles as initial builds suffered from long loading times and memory issues. We implemented asset compression, reduced draw calls, and asynchronous loading to achieve smooth browser-based performance without requiring downloads.
Key Achievements
My WebGL optimization achieved a 65% reduction in loading time with stable cross-browser performance. ZombieWash successfully implements a unique gameplay concept that subverts traditional zombie game tropes.
The procedural zombie generation system creates enough variety to keep gameplay fresh across multiple playthroughs, ensuring players experience different challenges each time they play.
Takeaways

Modular code architecture proved essential during development, allowing us to modify components with minimal coupling between systems. This approach facilitated rapid iteration based on playtest feedback.
The four playtest sessions we conducted revealed unexpected player behaviors and usability issues, particularly around card mechanics, leading to improved tutorials and visual feedback for a more intuitive player experience.