We're seeing some capacity limits, so parts of the site may be slow or briefly unavailable while we work on an upgrade. Please try again later, or join our Discord for updates.
Discord

What, how, and why I build it

Dev blog

Design notes from behind DotaCaptain: what I change in the draft sandbox and match engine, how I build it, and the Dota 2 idea behind each decision.

Release notes
7 min read

Building guilds that reward showing up, not grinding

DotaCaptain's solo captain sim gets a social layer. Individual ranked matches now build a shared level for your roster. Notes on the design: why the daily cap rewards the group over the grinder, and the one paid edge on the leaderboard.

Match engine
6 min read

Giving the match sim a story

Watching pro Dota is fun because of the casters. So instead of handing you a dry match log, I made the sandbox read like a caster calling your game, without ever inventing a moment that did not happen.

Behind the scenes
5 min read

Thank you for catching what I can't

Why I genuinely look forward to sharp-eyed feedback from high-MMR players, the solo-kill catch that fixed the sim, and why aiming for "closer to true" instead of perfect is freeing rather than an excuse.

Release notes
7 min read

The Trust Update: making the whole match believable

A one-person dev blog post on the Trust Update, whose whole theme is making everything the match sim shows you something you can actually believe. It walks through the rebuilt map, the world outside the fights, smarter AI captains, and role-aware builds.

Match engine
5 min read

Why one smoke shouldn't catch two lanes

A gank happens in one place. When my kill model let a single smoke catch heroes standing in two different lanes, it broke the one thing a Dota player knows is impossible. Here is how I fixed it.

Match engine
5 min read

Kills should equal deaths (and why that was hard)

In any match, the kills one team scores equal the deaths the other team takes. Making a simulation guarantee that, while still handing out assists fairly, was harder than it sounds.

Release notes
6 min read

Keeping the lights on, and a medal for every hero you play

Some of you were already donating out of pure kindness and getting only a thank-you back. The Supporter Pack is my attempt to make backing the project actually worth it, real perks, plus a hero mastery medal for every hero you play.

Release notes
7 min read

A ladder of your own: ranked PvP and playing with people you know

The story of Dota Captain growing a social and competitive layer: first captain friends, then a full Ranked PvP mode on its own ladder, separate from solo MMR. An honest look at what a rating gives your games, and how daunting it is to build fair ranked multiplayer alone.

Behind the scenes
6 min read

Tens of thousands of captains showed up, and my database buckled

The happiest problem I have ever had: far more people showed up in the first month than I expected, and my little free-tier database started falling over. Here is what broke, the unflattering reason, and how I fixed it.

Release notes
6 min read

Six slots that come online: giving item builds real weight

Since launch my draft simulator ended and the items just happened invisibly. This is the story of giving every hero a real six-slot build you pick and order yourself, one that comes online during the match and actually swings fights.

Release notes
6 min read

Reading a pick at a glance: Team Value

A look at Team Value tags, the hover summary card, and teaching the AI captain to read the same verified hero data so drafts stop leaving obvious holes.

Behind the scenes
7 min read

The cheapest byte is the one you never send

The story of a bandwidth and compute audit, where the biggest wins came not from clever code but from simply not sending bytes I never needed to send. Download lazily, cache aggressively, and treat polling as a backup.

Release notes
6 min read

Making a teamfight readable: who killed whom, and why

On making the match log legible: attributing every kill, explaining cross-map rotations, flagging turning points, and adding post-game graphs so the sim can actually teach you something.

Release notes
6 min read

The shape of a game: hero timing and pacing

How I taught the match engine that a Dota game has a shape: per-hero timing windows, real game length, and late-game carries that actually win the fights they were drafted to win.

Release notes
6 min read

Getting every hero into the right lane

For a while my simulation put heroes in lanes they would never actually play, and that quietly poisoned everything downstream. Here is how I fixed it with a curated position map, and why position is the foundation the whole draft reads from.

Release notes
6 min read

Why did I win? Teaching the game to explain itself

The match recap used to retell a game in pretty prose that taught you nothing. This is about replacing that with a real breakdown: a verdict, a causal chain, ranked factors tied to real numbers, and a lesson for the loser.

Release notes
6 min read

Chasing a gold economy that tells the truth

The long, humbling story of teaching Dota Captain's match engine that gold is a finite, earned, map-gated resource, one broken scoreboard at a time.

Release notes
5 min read

Making draft counters actually bite

The story of turning draft counters from decorative labels into a real force that swings fights, plus giving the solo enemy captain a mean streak aimed at the heroes you actually spam.

Release notes
7 min read

How a game of Dota should actually end

The story of rebuilding how my simulated matches close, from breaking high ground and taking the Tier-4 towers to reworking Roshan, map control, and the whole economy underneath it.

Release notes
6 min read

The biggest update yet: two new heroes and a sim that reads true

The update where the draft you make finally shapes the game you get, plus two new heroes and a live map where everyone is actually doing something. Honest notes from one person who tried to ship far too much at once.

Release notes
6 min read

Drafting against your friends, and the bugs I fought to get there

The honest story of shipping PvP drafting in Dota Captain, where two people draft against each other live, and the sync bugs I had to fight before it actually worked.

Release notes
6 min read

Your record, and the small tools around the draft

A quieter update about the things around the draft: your full record, the leaderboard, the hero guide, and small comfort features that turn a demo into a place you come back to.

Release notes
6 min read

Practice without the pressure

Why Dota Captain has a practice mode: one player asked to learn without risking their rank, which turned out to be exactly the right thing to build. This post is about that request and the small settings that grew from it.

Release notes
6 min read

The day Dota Captain got a real opponent

Dota Captain now has 1v1 Captain's Mode, so you can draft head to head against a real person instead of the AI. Here is why a thinking opponent changes everything, and the rough edges I had to fix afterward.

Release notes
5 min read

Introducing Dota Captain

Drafting is the one part of Dota you almost never get to practice. Dota Captain is a sandbox for the captain's seat: draft a full Captain's Mode game, set a strategy, and watch it play out.