Today, An Update

The inestimable Meowza created new art for the units in the Maze Dungeon! Now they’re distinctive and they look like they belong together, in one big happy maze family.

A more subtle change is that we’ve made the muzzle flash effect a bit simpler and more focused. See if you notice the difference!

The rest of today was mostly spent on server stability and performance. You alpha players
are really hitting some spots that we hadn’t exercised ourselves yet.
Love it, keep it coming!

I fixed some issues in the controller which starts and stops game servers. It was deciding to shut them down for silly reasons like “using too much memory” and “not connected to the network”. Wah wah wah, it’s more permissive now, so servers should stay alive for even longer!

Players were noticing the server getting choppy when only small numbers of players were on it. It turns out that server performance is very spiky. A lot of the time, it’s perfectly smooth, but then it’ll get jerky for a bit. One of the causes is talking to the backend. It was using the legacy Unity WWW class, and apparently that thing totally sucks! So we switched to a different HTTP system and that should help, though it’s by no means the entire solution.

Another major slowdown on the server is logging. Unity has a very convenient logging system, but every log is very expensive because it generates a full stack trace. There’s a way to make it not have a stack with every request, so I’m doing that, and it should also help somewhat.

I’m quite serious about server performance, so this is just the beginning. We have some performance tracking in place, but it can’t track everything, so please let us know if you see sever hiccups or other badness. Together, we can fight fires!

Another id issue cropped up this morning, for player ids this time! When you connect to a server, it creates and gives out a “host prefix” number for you. This is a kind of identifier that your client uses to disambiguate the units it creates from ones created by other players. Well, we ran out of those in the Rebel City a few times. Players are just continually entering and leaving, and it churned through the ids. Eventually, connecting to the Rebel City would just stop working. Fortunately, it would send me an email, so I could hop in there and restart it real quick! The solution this time was to recycle ids once a player leaves the server. That way, we can have essentially infinite host prefixes on a server. Infinity is a much nicer number than “4 billion”, don’t you think?

Tune in soon, for another episode of Identifier Generation Theater!