DEV Community

Yurukusa
Yurukusa

Posted on • Edited on

My AI Agent Designed a Game Synergy. Here's the Design Reasoning It Used.

I didn't tell my AI agent "add a synergy for phantom enemies."

It read the game state, identified a gap in player counterplay, proposed the solution, and implemented it. I approved the commit.

Here's the full design reasoning - written by the agent, preserved exactly.


The Problem It Identified

Spell Cascade v0.9.7 introduced phantom enemies: units that alternate between invincible (1.5s) and vulnerable (1.5s) on a 3-second cycle. The intended player experience was "timing-based strategy" - read the cycle, hit during the window.

But the agent noticed a problem:

"phantom (v0.9.7) introduced invincible/vulnerable cycling but had no corresponding player counterplay in the upgrade system. The correct play was just 'keep shooting and wait.' Nothing in the build rewarded reading the timing."

The enemy was designed for timing. The build system rewarded none of it.

That's a design gap.


The Solution It Proposed

The agent identified the key question: what's the minimum change that makes timing skill rewarding?

Not a new enemy type. Not a UI indicator. Not a dedicated anti-phantom skill tree.

Just a synergy condition: if you have pierce + trigger supports, your projectiles deal +60% damage to phantoms during their vulnerable phase - counted as a critical hit for visual distinction.

"Pierce+trigger players deal 60% more damage if they understand what the red flash means. Players who don't read the visual miss the bonus. Same projectiles, different outcomes based on timing awareness."

Three design principles in that paragraph:

  1. The reward is conditional - you have to understand the mechanic to get it
  2. The feedback is visual, not numerical - red flash, not a "+60%" popup
  3. The build identity is defined by player behavior - reading timing, not just stacking damage

The Implementation

Four files, ~40 lines of new code:

synergies.json - new entry:

{
  "id": "phantom_punisher",
  "name": "Phantom Punisher",
  "description": "Pierce + Trigger: +60% damage to phantoms during vulnerable phase",
  "condition": {
    "type": "supports_combo",
    "required_supports": ["pierce", "trigger"]
  }
}
Enter fullscreen mode Exit fullscreen mode

enemy.gd - public method + visual cue:

func get_is_phantom_vulnerable() -> bool:
    if enemy_type != "phantom":
        return false
    return not _phantom_is_invincible

# In _phantom_process():
# Red flash at the moment invincible ? vulnerable transition
if not _phantom_is_invincible and phase >= 1.5 and phase < 1.6:
    sv.modulate = Color(1.0, 0.25, 0.25, sv.modulate.a)
Enter fullscreen mode Exit fullscreen mode

tower_attack.gd - damage multiplier on hit:

if synergy_phantom_punisher and body.has_method("get_is_phantom_vulnerable"):
    if body.get_is_phantom_vulnerable():
        final_damage = int(float(final_damage) * 1.6)
        is_crit = true  # visual distinction
Enter fullscreen mode Exit fullscreen mode

game_main.gd - stat injection:

if "phantom_punisher" in _active_synergy_ids:
    stats["synergy_phantom_punisher"] = true
Enter fullscreen mode Exit fullscreen mode

The agent followed the existing pattern for synergies (frozen_storm, chain_reaction, thunder_god) exactly. No new architecture. No new systems. One gap filled.


What I Found Interesting

The agent didn't just "add a damage bonus." It reasoned about what makes timing skill rewarding in game design:

  • The gap is closed at the system level (synergy condition), not the UI level (a hint popup)
  • The visual feedback (red flash) is attached to the enemy, not the player's HUD - the world communicates, not the interface
  • The synergy is discoverable - pierce+trigger are common supports, but their combination against phantoms isn't obvious until you see the flash and the bigger damage number

This is the kind of design reasoning I didn't know an AI agent could do independently.


Play It

Spell Cascade is free in browser: https://yurukusa.itch.io/spell-cascade

Try a pierce+trigger build. Get to Wave 18. Watch for the red flash.

Then keep going past Wave 20. As of v0.9.9, Endless Mode kicks in automatically - Wave +1, +2, +3... your score is how many you survive. Phantom Punisher finally has a reason to exist past the endgame.


I'm building an AI game studio - every game here was designed, coded, and shipped by an agent. Follow along: @yurukusa_dev


More tools: Dev Toolkit - 56 free browser-based tools for developers. JSON, regex, colors, CSS, SQL, and more. All single HTML files, no signup.

Top comments (0)