Jak X shipped with online racing, and for a few years people raced each other over Sony's service. That service has been gone for a long time. The community brought it back with replacement servers such as Horizon, which the original disc can still reach today from a PS2, or from a PC through the PCSX2 emulator. This port is a different thing: Jak X running natively on a PC, with no emulator and no disc, and here its online menu has been a dead end since the first build. We are bringing it back, and we are doing it in a way that can be faster than the original and does not have to depend on anyone's server staying up, including ours.
Here is the shape of it. The part of Jak X that keeps six cars in sync, the code that decides who owns which car, predicts where everyone is between updates and settles a collision when two players see it differently, is still in the game. Naughty Dog wrote it, it ran every race on the PS2, and it is where we start: online play comes back on that code as the disc has it. What died with Sony's service was the layer underneath it: the library that carried every packet to a server in the middle and back out to the other players, and ran the lobbies. That layer is what we are replacing, with one of our own.
Direct or relayed: your choice
The new layer can connect players to each other directly. On the PS2 every packet went to Sony's server and back, which added a hop to every message. Ours can go straight to the other players, and a race between players who choose that has less lag than the original ever did. It also means that race does not care whether our service is reachable. If our server goes down in the middle of it, the race keeps going.
Direct connections come with a catch that anyone who has played a peer-to-peer game knows: the other players can see your address. So by default a race goes through our relay instead, which keeps every player's address private, and the game plays the way it did on the PS2, with a server in the middle. Anyone who wants the lowest lag can turn the relay off in the launcher. When two players have both turned it off, they connect to each other directly; everyone else in the race stays on the relay. You choose, per player, and the default is the private one.
The pieces
- The game's own racing code, as the disc has it for now, on top.
- Our layer under it: the connection, the shared clock the cars run on, and the bridge into the game's code. This is the part that replaces Sony's library.
- The launcher, which signs you in. Online play uses the same Phaethon account the launcher already has, so there is no second login and nothing to type in the game.
- Our service: the lobby that lists games and lets you join one, and the relay above. It never has to be in the path of a race unless you leave it there.
- LAN play, two machines on one network, which never touches our service at all, and joining a friend by address, which does not either.
One more thing you will not see: the PS2 asked you to pick a network configuration from your memory card before any of this, and checked for the network adapter. A PC has one network connection and the game simply uses it. There are no setup screens.
How this differs from Horizon
There is already a way to race Jak X online today, on a PS2 or on a PC through the PCSX2 emulator: community projects such as Horizon rebuild Sony's servers so that the original disc, unchanged, can log in and play as it did in 2005. That is the right design for a console, and for an emulator running the console's disc, because nothing on the disc can be altered, and those projects deserve the credit for keeping the PS2 games alive online and for documenting how Sony's service spoke, which helped us read our side of it.
It also means they inherit the service's shape whole. Every packet of every race passes through the server in the middle, the race ends if that server goes away, and the lobby is the one the disc had, down to the account you sign into. We are in a different position: we have the game's code, so instead of rebuilding Sony's side we replaced the layer under the game. The relay is a choice rather than the only road, LAN play and direct play work with no server anywhere, the account is the one you already have in the launcher, and the lobby is ours to grow. One honest consequence: a PS2 or PCSX2 on Horizon and Phaethon cannot race each other, because they no longer speak the same wire. For the foreseeable future, Phaethon players race Phaethon players. That could change if we and those projects can work together on a proper bridge between the two. What we will not do is make Phaethon act like a PS2 to reach their servers: that would bring back the network adapter setup and the redirected DNS servers a console needs, and a native PC game should never ask anyone for either.
Past what the PS2 did
Bringing back what Sony's service did is the first job, not the last one.
The relay will grow past the disc. Today it carries the races the game always had. Later it will host game modes the original never shipped, and races with more players than the PS2 ever allowed.
The racing code gets a pass of its own. It was written for a 2005 console on 2005 connections, and it plays like it. Once online play works the way it did, that code gets a modern update: the other cars easier to follow and smoother on screen, and the PS2 era's network rough edges gone. That is a change the revival projects cannot make, because it lives in the game, not on the server.
How we are testing it
Every piece under the game is checked the way the rest of Phaethon is, by automated tests that run on every change, including a simulated network that loses and reorders packets on purpose. The game itself is tested by running two copies on one machine, which is how the first join and then the first race happened, and then on two machines on one network, which is how the first LAN race happened.
The order from here: LAN play in your hands first, since it already works; then the internet, once its transport and the relay are built, in a closed test with people who volunteer, before it opens to everyone. Each step gets its own post, with what worked and what did not.
Where it stands today
The pieces under the game are built and tested: the connection, the shared clock the cars run on, and the bridge between our code and the game's. The game's own online road is back from the disc, from the menus all the way to the finish: one copy hosts a game, the other finds it in the game list and joins, both sit in the ready room together, and the race starts on both. This week two copies of Jak X on one machine raced each other for the first time, every car moving on both screens, the AI drivers included, with shots and hits crossing between them and the pause menu working on each. Getting there meant finding and fixing a handful of pieces the original only ever ran with a second console on the other end, which is exactly what this kind of testing is for.
Then we raced two machines on one network, each with its own copy of the game. A laptop hosted, its game showed up in the desktop's game list on its own, and the desktop joined it. Both cars drove on both screens, the AI drivers with them, and the two race clocks agreed to within a few hundredths of a second.

That race found one more piece of the same kind: a weapon fired by a car on one machine crashed the other, because a PC reads one value wider than the PS2 did. The cause is found, and the fix is under way.
What is left
LAN play works today, end to end: a game hosted on one machine is found by another on the same network, joined, and raced. That part is done.
What is left is the internet. The transport that carries a race between two homes is still being built, and so is the Phaethon relay that sits in the middle of it by default, with the lobby beside it. Alongside them go smaller fixes like the weapon crash above, in parts of the game that only run with another player on the other end and so never ran once in single player. LAN play comes to you first, while that work goes on.
No dates. When it is ready you will be the ones testing it.
Alex (maintainer, and a mechanical engineer by trade)
