Inspiration
WORD WARD began with one question: what if spelling a word did more than trigger a generic ability?
In this game, collected letters physically assemble into the weapon they describe. A completed BOW becomes a bow that draws and fires arrows. GUN shoots bullets and ejects casings. ICE slows enemies, BOMB explodes, and LASER fires from a letter-built barrel.
This connects vocabulary, resource collection, tower placement, combat feedback, and the theme of defending meaning through one mechanic.
What it does
WORD WARD is a single-player portrait tower-defense game.
Enemies carry letters along a route toward the CLARITY core. Defeating an enemy adds its letter to the player's keyboard. The player selects a build node, spells an available weapon word, and deploys a defense made from those letters.
The playable prototype includes:
- Five campaign chapters with 39 levels
- Escalating waves and boss encounters
- Twelve distinct weapon words
- Weapon upgrades and tactical placement
- Three-star level objectives
- Campaign progress and local saving
- An Endless mode
- An Arsenal for previewing unlocked weapons
- A reversible Showcase Unlock for quickly testing every weapon
The twelve playable weapons are BOW, GUN, FIRE, ICE, SWORD, BOMB, LASER, AXE, WHIP, STAR, ROCKET, and DRONE.
How I built it
The prototype was prompt-built through an iterative AI-assisted workflow using OpenAI Codex.
I described the game rules, visual direction, interactions, balance problems, and playtest observations in natural language. Codex helped turn those decisions into a self-contained HTML5 game, then repeatedly revised the implementation as I tested it.
The game uses:
- HTML5 and readable, unminified JavaScript
- Three.js for the battlefield and letter-built weapons
- Web Audio API for locally synthesized sound effects
- Local storage for campaign progress, stars, unlocks, and settings
- Automated regression tests for navigation, input, balance, aiming, weapon behavior, touch selection, HUD states, results, and progression
All original game code is contained in index.html. Three.js is stored locally inside vendor/. The game does not require an internet connection or external assets at runtime.
Challenges
The largest challenge was making letter collection strategic without allowing bad luck to make a level impossible.
The final system considers the current weapon vocabulary, valid word prefixes, letters already carried by enemies, and letters already flying toward the player. Progressive opening kits and a pity-drop limit help ensure that useful words remain possible while preserving meaningful choices.
Another challenge was readability on a portrait phone. Enemies, weapon words, projectiles, boss information, the map, and a full letter keyboard all compete for limited space. I iterated on collapsible controls, touch-target priority, HUD states, weapon scale, health bars, and effect timing to keep the battlefield readable.
The letter weapons also required unusual animation work. Their letters needed to remain readable while the complete word still behaved like the object it represented. This led to features such as a nocked arrow on BOW, grip-centered SWORD swings, a flying AXE and ROCKET, an articulated WHIP, and a tethered DRONE.
What I learned
I learned that semantic animation is most effective when it also explains gameplay. BOW's pull and release communicate its firing rhythm, while ICE's restrained motion and color communicate control. The weapon should be understandable before the player reads its statistics.
I also learned that adding more waves does not automatically create better pacing. Reliable input, fair opening letters, visible escalation, preparation time, and clear feedback contribute more to engagement than content volume alone.
Most importantly, iterative playtesting turned the original novelty into a complete loop: defeat letter enemies, collect their letters, construct meaningful weapons, adapt the defense, and protect CLARITY.
What's next
A full version would expand the same letter-to-weapon system with more word families, chapter-specific enemy rules, weapon synergies, daily word constraints, accessibility options, and deeper Endless modifiers.
The goal would remain focused: every new word should become a readable tactical object, not simply another button or statistic.
Built With
- html5
- javascript
- local-storage
- openai-codex
- three.js
- web-audio-api
- webgl

Log in or sign up for Devpost to join the conversation.