
I Built a Tower Defense Game With Zero Dependencies — AI Art, Procedural Audio, and ~3,200 Lines of Vanilla JS
No React. No Phaser. No Pixi.js. No npm install. Just <canvas> , vanilla JS, and the Web Audio API. 🎮 Play it here · 📖 Full dev log What I Built Arcane Bastion is a crystal tower defense game with: 5 elemental towers(Fire / Ice / Lightning / Vine / Arcane)× 3 upgrade tiers 10 enemy types with status effects(freeze, burn, poison) AI‑generated art — every sprite and map background Procedural audio — every sound synthesized from oscillators, zero audio files Dynamic tower rotation — smooth tracking with recoil feedback The entire thing is 9 script files loaded via <script> tags in dependency order. Old school, but it works. The Architecture arcane-bastion/ ├── js/ │ ├── sprites.js ← async image loader (18 assets) │ ├── map.js ← 20×14 tile grid + AI backgrounds │ ├── tower.js ← 5 types, targeting, smooth rotation │ ├── enemy.js ← 10 types, waypoint pathfinding │ ├── projectile.js ← homing missiles, chain lightning │ ├── audio.js ← Web Audio synthesis (~400 lines) │ ├── ui.js ← HUD, panels,
Continue reading on Dev.to
Opens in a new tab

