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
Dev blog
Release notes

The day Dota Captain got a real opponent

Dota Captain
6 min read

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.

For a while the simulator has been the fun part of Dota Captain. You draft, you press run, you watch a match play out. But there was always this quiet ceiling I could feel and never quite fix. The enemy captain was me, or rather a set of rules I wrote, and once you have played against your own rules enough times you start to feel where they end. A tool can teach you the shape of a good draft. It cannot really surprise you. And drafting, when it is at its best, is mostly about being surprised by another human who wants to beat you.

The ceiling I kept bumping into

A few of you said versions of the same thing over the past months. The solo drafts are good practice, but where do I play a real one? Someone wants to test a cheeky first pick against a friend who will actually punish it. I understood the itch completely, because I have it too. Practising against the AI captain is like practising a language by talking to a phrasebook. You get fluent at the phrasebook.

The problem is not that the AI is bad, exactly. It is that it is predictable in the way anything deterministic eventually becomes. It does not tilt. It does not overvalue a hero because it lost to that hero last week. It does not read your first two picks and decide, out of something like spite, to hard counter the exact carry you were building toward. Those human behaviours are half of what makes real Captain's Mode drafting stressful and alive.

So the honest gap was this. Solo practice has a hard ceiling, and no amount of tuning the enemy AI was going to raise it. The only real fix was to let a second person into the room.

So I added a real opponent

In 0.2.0 you can now play 1v1 Captain's Mode straight from the lobby. One person creates a game and gets a code, the other joins with it, and then you draft against each other head to head. Bans and picks, the whole back and forth, against a brain that is trying to read you while you try to read it. When the draft is done, you run the match and see how the two teams you both built actually resolve.

These games carry no XP and no MMR on purpose. I did not want the first thing anyone felt in a 1v1 to be fear of losing points. This is a room to experiment, to try the greedy draft, to first pick the hero you would never risk in a ranked queue. If it works, you learn something. If it blows up, you learned something cheaper. Ranked pressure and learning pressure are different pressures, and I wanted this to be the second kind.

Why the match had to move to the server

There was a subtle problem hiding inside the idea of two players. When the match ran only on your own machine, that was completely fine for solo play. There was only ever one of you. But the moment two people are staring at the same draft expecting the same outcome, running the resolution locally on each side is a recipe for two different truths. You win on your screen, your friend wins on theirs, and now you are arguing instead of playing.

So in 0.2.0 match outcomes are resolved on the server, not just locally. There is one authoritative result, and both players receive it. It sounds like plumbing, and it mostly is, but it is the kind of plumbing that decides whether a shared feature feels trustworthy or feels broken. A competitive mode where the two players can disagree about who won is not really a competitive mode.

I will be honest about the underlying limit while I am here. The match engine is still an approximation of Dota, not Dota. Moving it to the server makes the result consistent and fair between two people. It does not make the result perfectly true to how a real game of Dota would go. That is a longer, slower project, and I get things wrong in it regularly.

The rough edges I did not see until real people used it

This is the part where I admit the first version was a little rough. The moment actual pairs of people started drafting against each other, the timing felt wrong in ways I never noticed while testing alone. So 0.2.1 was mostly me cleaning up after myself. I bumped the ban step timer up to 20 seconds, because the old window was too tight for a real human weighing a real decision against a real opponent.

The nastier one was what happened when the timer ran out. Previously an unconfirmed ban or pick would just auto-commit, which meant you could lose a hero you were still thinking about simply because you took a breath too long. Now unconfirmed bans and picks draw from your reserve time instead of committing on their own. That is much closer to how the real draft clock feels, where the pool of extra time is yours to spend as the pressure mounts.

I also made the solo enemy captain take a bit longer to think before each ban or pick, and improved the realtime updates for the 1v1 lobby so the two sides stay in sync more reliably. None of these are glamorous. All of them were things a couple of you hit within the first day, and honestly, thank you for hitting them out loud instead of quietly closing the tab.

The Dota idea underneath all of this

If you take one game concept away from this, let it be the difference between drafting for a plan and drafting against a person. Against a fixed opponent, the best draft is the one that executes your plan most cleanly. Against a thinking opponent, the best draft is often the one that answers what they just did, even when that means abandoning the hero you loved three picks ago. Real Captain's Mode is a conversation, and every ban is a sentence about what you are afraid of.

That reactive layer is exactly what a solo game against the AI cannot give you, because the phrasebook never changes its mind. A human will look at your first pick, decide you are telegraphing a lane, and quietly deny you the thing that made it work. Learning to feel that pressure, and to keep a plan flexible enough to survive it, is a skill you can only build against someone who is actively trying to ruin your day.

So that is where Dota Captain is now. A real opponent, a shared and honest result, and a draft clock that no longer punishes you for thinking. It is still a one person project built in spare time, so it is rough in places and I will keep finding things that annoy you before I find them myself. Go create a game, send a friend the code, and first pick something reckless. That is what the mode is for.

Release notesMultiplayer