While working on cleaning up the avatar movement messages, I decided to move the rendering and scene updates to their own threads. This certainly smooths things out quite a lot! For one thing, input device updates don’t get starved whenever the rendering slows down. There are a few concurrency issues that I still need to work work out, however.
I’m keeping the game offline until I finally reconstruct everything that I have deconstructed!