I was supposed to be working on multiplayer and possibly a Mac release this month. However, we’ve gotten feedbacks the current release (0.12) is rather error prone and wants to crash all the time.
It passed our initial tests, that’s why we put it up as a release. But further development and testing unmasks a whole set of errors. We’ve identified some issues we believe is behind most of the crashes, and all of those are related to multithreading.
While being a complex topic, we’ve been trying to keep it simple by enveloping parts of the game to different threads. Graphics and physics have each their own thread, terrain generation have their own thread and so on.
The problem lies between thread boundaries, namely when sending messages between threads.
Here we haven’t been diligent enough to offload the work when receiving a message to the “local thread”. The result have been that multiple threads have been trying to update the same sections of data simultaneously. Most of the time it’s fine, but sometimes, and specially on users computers, it seems to be an issue. Since we discovered those issues, fixing any crash-to-desktop problems have been my top priority.
It’s time consuming, and little or no features are added by me as I hunt down all crash bugs. But what’s a game full of features and content if it’s not playable…