Hi everyone,
today we had a bit of misunderstanding about who will write the regular update so we are coming with the news later than usual. But it is still Friday here (around 10 pm) so still it can be called the Friday Facts :)
Kovarex went skiing last week but he fell and hurt his shoulder. In the beginning of this week he went to see the doctor and actually got a kind of bondage for his left arm. It was not broken but he was advised to keep it very relaxed for a while. But after two days he was so frustrated from not being able to write the code (really difficult with just one hand) that he just took the thing off and went back to regular coding. Dedication :)
We have been fixing issues in the multiplayer for quite some time. But now after all that effort we decided it would be great fun to throw a lot of that code out of the window and rewrite it. The thing is that there were often errors when the game would just stop and not react or crash during strange connecting / disconnecting situations. This was because the code taking care of internal state logic has been growing incrementally for a long time without us revisiting the whole concept. So this revisit is what we did for the 0.11.17.
Actually I was so excited about the changes that I spent most of the last weekend working on them. And then surprisingly it worked much better than expected. After a bit of tweaking the tests were passing and all the tricky connection / disconnection situations from before seem to be handled rather well. So we are eager to see how these changes will stand the player test. For the technically curious: the refactorign was in the tricky logic called Map Align (you will see this a lot around in the logs). That is when all the peers have to synchronize and make sure that they have the map in the same tick with the input actions from everyone else. This happens for instance before a new peer connects or existing one disconnects or is dropped. There is a lot of state transitions and exceptional cases going on and before refactoring it was rather a mess.
The bug queue has consistently been getting shorter over the week so we had good hopes of releasing the 0.11.17 today. However from the very morning we were looking into a tricky desync issue and then kept discovering one problem after another (a lot of them in the Lua binding). This is somewhat so typical that there probably is a Murphy's law for that. We are patiently working throughout the week towards the release and then on the last day the whole structure just collapses. Afterwards over the weekend many new bugs are discovered and we can start again the next monday. Game development applied :) We even have an internal kind of joke for this: "Moments of expectation are replaced by moments of disappointment".
Albert took the opportunity to leave winter Prague for a week or two. He is now back in Mediterranean with his girlfriend and family. This hasn't stopped him from making more sketches of the entities that will come for the endgame. Below you can see some first proposals for the platform engines. The idea is that they would be powered by a hydrogen fuel compound.
The forum post is ready for whatever you might want to share.