MUSHBUG WARS

OVERVIEW

TapTap Spotlight GameJam — Theme: "Are you sure it's not a bug?"

A meta-fictional tower defense game where you assume the role of a Quality Assurance (QA) Tester.

The Setting

Inside a glitch-ridden fantasy prototype. The game world is broken, and it's your job to fix it while surviving.

Objective

  • Defend against waves of enemies.
  • Identify & Report bugs that alter physics and logic.
TapTap Page
GENREMeta Tower Defense
YEAR2025
TapTap SpotlightTower-DefenseSystem DesignProgramming
MY ROLESystem Designer/Programmer
COLLABORATORS2 Artists, 2 Programmers, 1 Designer
PLATFORMWebGL (English version), Windows (TapTap client)

Play Now

Gallery

DESIGN DETAILS

1. The Design Challenge

In Mushbug Wars, the core narrative revolves around "game testing." The player acts as a tester who must report glitches to save the game world.

The Problem

How do we turn the abstract, boring concept of "software debugging" into a fun, mechanically deep gameplay loop?

The Solution

I designed a meta-system where "Bugs" are gameplay modifiers. Instead of looking at code, players observe anomalous behaviors (e.g., "Why are coins bouncing?") and use a keyword system to deduce the cause.

2. System Architecture

To support this, I needed a flexible system. "Bugs" had to essentially "attach" themselves to any part of the game (Movement, Physics, Economy) without breaking the core code permanently.

I used a Factory Pattern structure. This allows new Bug Types to be created as independent data assets, keeping the main game code clean.

ARCH_DIAGRAM_V1.0
BugManager
+GenerateBugs()
+ActivateBug()
"The Brain". Decides which bugs spawn.
<<Abstract>> Bug
Common Template
CoinBug Makes coins bounce
SpeedBug Makes enemies fast
ReportSystem
+TryReport()
"The Input". Checks player guesses against active bugs.

3. The Interaction Logic

I designed a "Fuzzy Match" algorithm for the reporting system. This means the player doesn't need to be 100% perfect.

If a player sees a bug and guesses "Physics" and "Coin", the system calculates a match score.

  • 1 Input Analysis
    Player submits keywords.
  • 2 Scoring
    System checks overlap with all active bugs. (e.g., 2/3 keywords match = 66%)
  • 3 Output
    If score > 60%, the bug is fixed!

Result

  • For the Player: They felt "smart" diagnosing invisible bugs based purely on behavior, like a real detective.
  • For Development: This architecture let us add 30+ unique bugs in the final week without breaking the game.