A small update once again, before I start studying to an exam.
I guess people already had noticed that block placement and removal caused a slight spike in framerate. This is the result of the recalculation of a mesh of a chunk being done synchronously in the main thread. It takes around 50ms or up to 200ms when the lighting changes in a long distance, which is quite noticeable especially when others are placing and removing blocks.
Well, I noticed that, in the past few days, I had completely created the framework for doing that in a separate thread. And went on to make it so. Now building with lots of people causes no spikes in framerate at all!
Also, one thing that had bugged me for a long time is that the server sent all block placements and removals in the whole world to every player, no matter how far away from each other they were. I changed those to be sent only to players that are reasonably close (100 nodes). For the others, the server just marks the changed part of the world as “unsent” and it will be re-sent when needed.
In addition to that, I changed the versioning scheme to such that the version is now 0.2.20110406_0. I will stick to this scheme from now on.