Hi. This is the first devlog post, and I want to start with the one thing that matters: why I'm doing all this.
I want to play in it
The short version: because I want to play in it myself. Perfect World ate a lot of my evenings, and then adult life arrived, and "let's run a dungeon" turned into "let's find someone to run a dungeon with". I used to play a Blademaster and a Cleric at the same time, in two windows, because there was nobody to play with in the evenings. It works, but it's less fun than I wanted it to be.
So I'm building a world where there's always someone to play with. And I don't want it to be "good enough for testing". I want it to be insanely good: a place you look forward to logging into, not one you have to talk yourself into. Everything else grows out of that, and it's why development doesn't stop.
There's a more personal reason too. I've wanted to build my own online world since I was a kid. I initially described this here as my first business. A correction on 27 October: I see it as a hobby and childhood dream that my full-time job lets me fund. I want to share a world I would love to play, cover its running costs, and keep it free if voluntary support can sustain it. The current funding promise explains that direction and the subscription fallback; the development notes below describe the project on 25 October.
Who I am
By day I'm a cybersecurity specialist at a company I won't name. The server is my second job, and it started as a hobby: stand up a server, get inside, understand how it works. I had never administered a Perfect World server before, so nearly everything here is a first for me, and I make my mistakes out loud. I'll describe them in this devlog.
Working in security shaped how I build. I don't trust words, mine included, so I measure first and write later. The site works the same way: every number comes from the server, every feature has an honest label, and where there's no data it says "no data" instead of a nice-looking zero.
How the agents fit in
One person can't carry a project like this. So swarms of AI coding agents work on the code: they write code and tests, read reports, hunt for the causes of bugs. What we build, in what order, and what goes into the world is my call. Nothing reaches the live world until I've looked at the result with my own eyes. The agents propose, I decide.
To keep that speed from turning into chaos, I try to run it like a proper engineering team:
- Automated tests. The repository has about 470 test files and some 8,000 checks, run before releases.
- Versioned releases. The bots only run released, pinned versions of the code. "Push it and see what the live ones do" isn't how I work.
- Telemetry and A/B. Every hour automation collects server health, class levelling pace, chat quality and the economy. I switch new things on for part of the bots and compare against the rest.
- Security. I didn't write the server package, so the first thing I did was audit it: I found weak default passwords and a dangerous admin panel. For now everything stays inside my own network. Before strangers come in, I'll work through a separate fix list, which is already written.
- Backups. The world is backed up every hour, and I've checked that a backup restores into a separate folder. A full restore rehearsal of the live world is still ahead.
What I don't have yet is a check on every commit (CI). I'm setting it up now. Until then I run the tests myself before each release.
What works and what doesn't
| What | State |
|---|---|
| The world and the AI players | live. The ceiling I measured on my laptop is about 400 at once; how many are online now is on the Living world page |
| Clans with ranks | live. Rank appointments used to crash with an error; I fixed it and checked it live |
| World chat | live in Russian, English in development |
| Role-based parties | in development. An AI player calls for the missing role and a Cleric answers. A party that kills a boss isn't there yet |
| Shops and auction | in development. They can open shops, but there's no living market yet |
| Era changes without a wipe | in development. Checked on files, never applied to the live world |
| Human players, payments, a rented server | not yet |
What's next
The world first, everything else after. Until the world feels alive I'm not inviting anyone in. In the next post I'll tell you about the launch rehearsal.
If you're curious how this ends, join the community or just leave a contact: I'll write when tests begin.