Where I left off

If you’re new here: I’m rebuilding the server for Fury, a PvP game that went dark in 2008. I have the client (the part that runs on your PC). The server (the company’s machines that everyone connected to) is gone. The job is to rebuild it from scratch, using the client as the only reference.

A few posts back, an AI code audit tore through the client’s program files and found a lot: server code, a full server configuration, the whole shape of the original setup, all still baked into the shipped game. Encouraging. But an audit reads what’s in the file. It doesn’t tell you what actually runs in 2026.

So I spent half a day running the thing and writing down what happened. Seven small experiments. This post is the scorecard, because the individual posts got into the weeds and it’s worth stepping back.

What I tried

Quick tour. Each of these has its own post if you want the detail.

Does a game from 2008 boot on Windows 11? Yes. First try, no compatibility tricks, clean shutdown, didn’t even write a file outside its own log folder.

Does a real gameplay screen load with no server? Yes, but only one. The character-creation screen comes up fully: 3D scene, animated character, menus, the scripted intro. It has a special offline fallback that loads a blank-slate character from disk. Every other area (the social hub, a match map) expects the backend alive and just hangs when it isn’t.

The character creator, running in 2026 with no server anywhere. This is about\nas far as “offline” gets me
The character creator, running in 2026 with no server anywhere. This is about as far as “offline” gets me

Can I start it as a server? No. Games on this engine have special startup modes: run as a dedicated server, open the level editor, rebuild the game’s code. On this copy, every one of those is bricked. You type the magic word, the game pretends its files are corrupt, and it launches the updater instead.

Can it host a match for itself? Also no. There’s a mode called a listen server where one copy of the game is both client and server, so friends connect straight to you. One extra word on the startup line turns it on. That word kills the game in half a second, the same fake-corruption way as the modes above. That’s four different developer entrances, all welded shut before release. They were thorough.

What does the login server sound like? I pointed the game’s login at a tiny program I wrote and listened. The very first thing it says is encrypted. It’s standard encryption, an old version, not some custom scramble, but it means there’s no readable conversation to just watch and copy. It talks on a specific door (port 24000, if you care) and I can redirect it there with an environment variable, which is something.

What I learned

Seven experiments, one line each. The client boots and runs; every developer door is bricked; the login tier is encrypted from the first byte.
Seven experiments, one line each. The client boots and runs; every developer door is bricked; the login tier is encrypted from the first byte.

The scorecard comes out lopsided in an interesting way.

The client is in great shape. Better than it has any right to be. Sixteen years old, boots cold on a modern machine, runs a real animated gameplay screen with no help. Whatever ends up being hard about this project, “get the client working” isn’t it.

There is no shortcut in. I was hoping one of these pokes would find a crack: a server mode that still works, a way to make the client quietly host, a plaintext login I could mimic in an afternoon. None of them did. The studio sealed every developer door, and the one remaining tier I have to deal with, login, is encrypted from the first byte.

So the real work is what I was trying to avoid. To get a single match running, I have to take the game’s compiled script, turn it back into readable code, understand how its match server was built in there, and rebuild that server myself. That was always the likely path. Now it’s the confirmed one, and I’ve stopped looking for a way around it.

One useful side effect of doing the boring triage first: my project plan had “run one match on a local server using the built-in server mode” written into it as a near-term step. That step is impossible. Better to find that out in an afternoon of poking than a month into building against it.

Next up

The decompile. This is the part where progress gets slow and the posts might get short.

The plan: build a tweaked version of an open-source tool that turns this engine’s compiled script back into something close to source code (the shipped files have a quirk that trips up the stock tool). Then start reading. First the small file that names every piece of the original server, then work outward toward the big one with the actual match logic in it.

Realistically that’s weeks, and a fair amount of it is going to be “still reading, here’s a weird thing I found.” I’d rather write those than pretend the middle of a project is all breakthroughs. See you in the code.