Online 2P alpha

Two people, one race, the real game.

asking the coordinator…

You

Your name comes from Steam, so there is nothing to type. Press the button and your machine will tell the coordinator who you are.

Getting it

asking the coordinator…

Find a match

The only one there is. Two-player treasure hunting and the rest are ideas, not modes; this is here so the link already carries the answer when one of them stops being an idea.

🌲

★ means it has been played enough that we would suggest it. There is no formal bar — the rest are not known to be broken, they are just not known.

Alpha. Expect the race to be the interesting part and everything around it to be rough.

Debug against yourself

Player two is you, replayed a moment late by the coordinator and handed back as an opponent. Not something to practise against: it traces your path exactly, including where the world has since made that path impossible — what it replays is your input, not your intent, so it jumps for a spring you already sprang and runs at a ring you already took. What it is for is exercising the whole thing — pairing, connecting, prediction, correction, scoring — with one machine and nobody else online.

You race the other one, as in a real match.

🌲

Top ten

asking the coordinator…

Last races

asking the coordinator…

What this is

The short version

Sonic Adventure 2's two-player mode, played over the internet against somebody else's machine instead of a second controller on the sofa. Your own game runs your character; the other one is driven by what they press, arriving sixty times a second.

What it is for

Two things, and the second is why the first is worth the trouble. Getting into a match should be one button. No port forwarding, no swapping addresses, no lobby client — press it here and the game opens already looking for somebody. And it should be worth winning: a real ladder, results the coordinator keeps, and races decided by frame counts rather than by whose connection was better.

Where it has got to

This is an alpha, and what is being tested is the netcode. One stage has been raced from end to end. Balance and the comforts — rematches, a proper readout, spectating — are planned and deliberately untouched, so that a bad race is evidence about the network rather than about something somebody tweaked last week.

The source will be published; it is not out yet.

What you need

Sonic Adventure 2 (the 2012 PC release) and the SA2 Mod Loader. Nothing else — no account, no separate client. Your name comes from Steam.

Installing it

  1. Drop the mod folder into <game>\mods\.
  2. Turn it on in the SA2 Mod Loader, and let it load first.
  3. Start the game once the ordinary way. It will ask whether these links may open it — say yes, which is what makes the buttons here work.
  4. In the Mod Loader's Patches tab, leave Framerate Limiter on. This one is not optional: the game's physics is tied to its frame rate, so at 120 fps it runs at literally double speed and two machines at different rates are playing two different games.

Known issues

All of it is meant to be fixed. It is listed so that finding one of these is confirmation rather than a surprise, and so that the feedback form has something to point at.

  • Time stop and Chaos Control can behave oddly. They may end early or late, the frozen player may be able to move while the effect is still on screen, and mashing may not speed the counter up the way it does in the original.
  • Pause is not handled yet. Please do not use it during a race.
  • One race per launch. The game closes itself afterwards; a rematch means pressing the button again.
  • The time recorded for a race is not exact yet.
  • Other mods can break the synchronisation — see below.
  • The opponent may announce a special ability falsely or repeatedly, and the icon showing what B will do may be wrong as well.

Other mods

Turn them all off. Two machines have to be running the same game for a race to mean anything, and every mod is a way for them not to be — a changed level is the obvious one, but a changed physics constant would be invisible until somebody lost a race to it.

If you would rather not, these are the ones we currently expect to be harmless. Tolerated, not tested: none of them has been through a race, they are here because they change how the game looks and sounds rather than how it behaves. When the mod stops changing weekly this list becomes the whole of what is allowed.

asking the coordinator…

What the mod sends back

Every race reports how it went: round trip, packet loss, how far the two simulations drifted apart, and the log if something failed. It is how the netcode gets debugged at all — several of the bugs fixed so far were invisible from either seat and obvious in the numbers. Through the alpha and the beta this will grow rather than shrink; after that it gets looked at again and cut back to what is actually needed. If that is not something you are comfortable with, that is fair, and this is not the mod for you yet.

Once per launch it also describes the machine: mod loader and its version, which mods and codes are on, the loader's own settings, the game's resolution and language, the Windows version and language, how many cores, and what kind of controller is plugged in. Not your name, not your files, nothing typed. The reason is that every confusing thing so far has turned out to be a difference between the two machines rather than a fault in the netcode — one of them had a setting the other did not — and that is unanswerable after the fact.

If it does not work

The mod narrates itself in the corner of the screen, and the line it starts with names the coordinator it is talking to. Check that first when the page and the game seem to disagree about whether you are queued — two coordinators, one of them from an old browser tab, looks exactly like matchmaking being broken.

Some answers are already sentences. “this mod is too old for the coordinator” means download it again from here. “it is redirecting us, probably to HTTPS” means config.ini points at an https:// address; the mod speaks plain HTTP and wants the coordinator itself. Nothing happening at all when you press a button is the game not knowing these links mean it — start it once the ordinary way.

Otherwise there is a record. Every step of connecting is reported here as it happens, so a failure is usually written down before anybody thinks to look, and the log uploads itself when a race ends. Between races it is prototype.log beside the mod, with earlier runs kept alongside it as prototype.log.run2 and so on — comparing a run that worked against one that did not has settled more of these than reasoning about either alone.

Nothing happened when you pressed a button? The game has to be told that these links mean it: start Sonic Adventure 2 once the usual way and answer yes when it asks. The link this page opens is —