Back to Projects
Open Source
| JavaScript | personal

Typing Wizard Duel

Browser typing-combat prototype where exact multi-line spell input drives combat, combo, guard, enemy pressure, and duel events.

Role
Solo Developer
Period
2026
Signal
Playable browser game
Why it matters

Turns a typing mechanic into a readable combat loop with separated managers for input, damage, enemy AI, events, UI, and animation.

Typing Wizard Duel

Typing Wizard Duel is a static browser prototype where spells are cast by typing exact multi-line incantations under pressure. The core loop is about precision, rhythm, and readable feedback: accuracy builds combo and guard, mistakes cause fizzle states, and a CPU opponent pushes the player with timed attacks.

The project demonstrates lightweight game architecture without a framework, emphasizing feel, state management, and clear separation between typing, damage, UI, enemy behavior, events, and animation systems.

Tech Stack

HTML CSS Vanilla JavaScript Vercel

Key Features

  • Exact multi-line spell typing
  • Immediate character highlighting and mistake feedback
  • Combo meter, guard gains, HP bars, and fizzle states
  • Local CPU opponent with timed spell casting
  • Duel events that interrupt rhythm with short skill checks
  • Tutorial overlay, reduced motion, debug controls, and post-match stats

Technical Highlights

  • Dependency-free static HTML/CSS/JavaScript implementation
  • Separated managers for typing, damage, UI, enemy AI, events, animation, and stats
  • Works from file:// and static Vercel deployment
  • Built around a readable global namespace rather than a build step

Architecture

Game Systems

  • TypingEngine for spell input
  • DamageManager and ComboManager for combat outcomes
  • EnemyAI and DuelEventManager for pressure and pacing
  • UIManager and AnimationManager for feedback

Challenges & Solutions

1

Making typing feel like combat rather than a form field

2

Balancing opponent pressure and mistake recovery

3

Keeping the prototype dependency-free while maintaining structure