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
- Drop the mod folder into
<game>\mods\.
- Turn it on in the SA2 Mod Loader, and let it load
first.
- 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.
- 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.
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.