Doug's Game Dev Log
About

Doug's Game Dev Log

One solo dev, several small games, and the bugs, upgrades, and questionable design decisions behind each one.

2026-08-10

An Enemy That Blinks and a Road That Forks

Two more days on td-survivors: a teleporting enemy, a map that forks in two, pause and options screens, per-tower lifetime stats, and cards that mean it.

2026-08-08

Now the Backlog Has Cards Too

Two days of small, satisfying fixes on td-survivors: the frost tower learned to chill a whole area, clicks fire on release so you can bail out of a misclick, co-op aim finally works, and the whole project moved onto a Trello board full of cards.

2026-08-07

Everything Snapped to a Grid and Started Glowing

Two days of making td-survivors look like an actual game: a marching-squares auto-tiler that bends grass around the path, a rigid 1080p grid, snap-to-8px placement, tilted glowing buttons, and a candy-arcade post shader.

2026-08-07

Two Numbers and a Straight Line

Every tower in td-survivors levels from 1 to 100. Instead of authoring 100 stat blocks, I author 2, level1 and level100, and let a straight line fill in the other 98. Then I deleted the old system that did it the hard way.

2026-08-05

The Waves Went on a Diet

td-survivors used to describe every wave enemy-by-enemy, spawn-by-spawn, in giant JSON files. I replaced all of it with a handful of multipliers and deleted about 12,000 lines. The game did not notice.

2026-08-03

The Server Stopped Repeating Itself

td-survivors co-op now streams field-level deltas instead of the whole world every tick: ~49% less bandwidth, lower CPU, and smoother play. Plus persistent players and enemy/tower tweaks.

2026-08-02

Banish It Before You Even Start

td-survivors gets meta-progression: buy permanent upgrades with bronze coins, banish cards and towers before a run starts, plus new normie and speedy sprites.

2026-08-01

One Simulation, Many Cursors: Bolting Online Co-op onto an ECS

How td-survivors got online co-op in a weekend: an authoritative headless Node server running the exact same ECS sim the browser does, no lockstep, no tears.

2026-07-21

No Classes, No `this`, Just Arrays: bitECS + LittleJS

How td-survivors is built: a strict no-OOP ECS on bitECS 0.4 and LittleJS 1.18, with all game state in struct-of-arrays and pure logic kept testable.

2026-07-18

Thirty Cards, Four Rarities, and a Stat Called Luck

How td-survivors' level-up card system gives each run its own identity, with four rarities, a Luck stat that reshapes the odds, and about 30 cards.

2026-07-16

Eleven Maps, and Every One of Them Cheats

Eleven stages in td-survivors, and not one is just a prettier path: every single map bends a core rule of the game. Plus medals and how victory works.

2026-07-14

Five Bosses, Five Ways to Tell You Your Build Is Bad

Each td-survivors boss is a deliberate check on one weakness of your defense: DPS, burst, placement, AoE, and single-target focus.

2026-07-12

A Field Guide to Things That Want to Leak

The td-survivors bestiary: ~23 enemies, each a tiny lecture on a lazy strategy it exists to punish. Grunts, counters, status effects, and one dormant mimic.

2026-07-10

A Tower for Every Occasion: 16 Ways to Ruin an Enemy's Day

How td-survivors ended up with 16 towers, and why each one is defined by behavior (chains, ramps, executes, hexes) instead of just bigger numbers.

2026-07-08

Tower Defense Meets Vampire Survivors (and Everything Is a Placeholder)

Kicking off a new devlog: td-survivors, a pre-alpha mashup of Bloons-style tower defense and Vampire Survivors leveling, built on bitECS and LittleJS.

2026-06-14

Sliders, Saves, and Remembering Where You Died

An Options menu with real-time volume sliders, and a tiny fix that remembers exactly which stage just ruined your run.

2026-06-11

Ghosts, Radial Bullets, and the Curious Case of LIFETIME

MULTISHOT fires bullets in a perfect circle, dead enemies keep playing, and one upgrade refuses to do percentages like everyone else.

2026-06-08

Trapped in a Cube: Why Memory Falling Into Place Runs on Excalibur

An introduction to Memory Falling Into Place — a bullet-hell roguelike about a ship stuck inside a cube — and the engine that makes it tick.