Skip to content
Zizeeria
Menu

News

Two now connected

Milestone

Two clients joined the same zone at the same time and each was given a character in the world. The line that says so did not exist this morning.

The milestone that ends pre-production is stated plainly in the plan: a cube that can move in a networked zone, and specifically two clients seeing each other move. Today the server said this, twice, eight seconds apart:

zone Savhamn: player joined, 1 now connected, pawn ZizeeriaCharacter_2147482352 — zone Savhamn: player joined, 2 now connected, pawn ZizeeriaCharacter_2147482333

The count going from one to two is the entire point, and it is worth explaining why. Before this, the server logged a join per client and a timeout per client — and a run where one client joined, dropped, and another joined after it produced exactly the same two lines as a run where both were present together. Two clients and one client twice were indistinguishable in the evidence. We read those two lines as success once, before checking the timestamps and finding they were not.

So the server now logs the number rather than the event, using the engine's own tally rather than a counter we keep, and it warns when a player arrives without a character — which is the failure that looks most like success: connected, welcomed, and with nothing in the world for anybody else to see.

What is honestly still missing is a person watching it. Two characters exist in one world and the replication that puts each on the other's screen is the engine's default, but nobody has yet looked at a screen and seen it. That needs a display, and a build host does not have one. Until somebody has looked, this is the server half of the gate and not the gate.

Getting here today: the engine built from source in seventy-six minutes, a Linux dedicated server cooked in thirty-seven, a Windows client in forty-two, 2.2 GB moved twice through a transport that had to be repaired twice, and a five-minute path for recompiling the server without cooking it again — which is what made the last iteration cheap enough to do properly.