I finally got voxeling to work from my linode server! And just in time for Tuesday night’s Meetup.
The night summed up in a phrase: “Thanks for digging!"
At one point we had four players simultaneously walking around, creating blocks, digging holes under each other. There remains a glitch where some players were invisible to the others, but other than that, things went quite well. Player position updates and world changes were relayed over the internet without any serious issues … until the node.js server app crashed due to an unexpected client disconnection. Gotta fix that issue eventually.
In a previous post I mentioned past difficulties with running things my linode server, which has a newer version of node.js than my laptop. Eventually I figured out that nothing was wrong with the networking bits, but that compression/decompression of world chunks was to blame. The client was receiving an empty world! So I swapped out the voxel-crunch run length encoding for a very naive, slightly less space-conscious version. That did the trick! No more empty world!
Since I’ve been doing more with statsd lately, I decided to count each time a block was created or destroyed within the game. Roughly 2000 blocks were created and 1500 block were destroyed that night. Yay, graphs!
The first spike on the graph is the meetup activity. Later in the week I decided to build a mountain. (fullsize)
On several occasions during the meeting I asked other players where they were in the world. Given that there are no concrete landmarks – since one destructive player can level a structure in no time – it’s quite hard to describe exactly where you are. I plan to show x/y/z coordinates at the bottom of the window, but a map would be more user-friendly. Over the past week I created an alpha version of a map dialog, which I’ll showcase in a later post.
I’ve included some additional screenshots below. Thanks for reading!
Lava flow using a new lava texture (fullsize):
Two Max Ogden’s and a Substack (fullsize):
Towers to heaven (fullsize):