Pre-alpha screenshot. Art and interface will change.
The first version of this game lived in Godot, with a server written in Rust. It was a small hunting slice: one patch of woods, deer, wolves and a player with a knife. The art was 2D sprites I rendered out of Blender at a fixed angle.
It worked, and it taught me a lot. The deer grazed, the wolves got hungry and hunted them, and you could walk in and take your share. That part I wanted to keep.
The look was the problem. Every new creature meant rendering eight directions of every animation. Every new building meant more sprite sheets. I could see years of that ahead of me before the world felt like a place.
What changed
On 26 October I switched engines. The client is now a Unity project, and the server is C# on .NET.
The big win is one shared library of game rules. Skills, items, combat math and the network protocol live in plain C# that both the server and the client compile. When the server says a hatchet weighs 4 stones, the client is reading the same line of code.
I also get to reuse work. Another Unity project of mine already had a click-to-move controller, an orbiting camera and a character creator I liked. Those came across in days instead of months.
Porting the server
I didn’t want to lose the hunting slice, so I ported the Rust server to C# first. The rule was strict: same wire protocol, same random numbers, same results. I ran the ecology simulation in both versions with the same seeds, and the output files came out byte for byte identical across 12 runs.
That gave me a server I trusted before I’d drawn a single tree in Unity.
Where it is today
The screenshot above is the first thing the new client showed: a grey box town wall and a red capsule standing in for me. The next day the capsule could walk around a 1.4 km region with a walled town, a river, farmland and woods.
It’s still pre-alpha. Most of the art is stand-in. But the world is now full size, in 3D, and every change I make lands on both sides at once.