Friday Facts #63 - The endless struggle

Posted by kovarex on 2014-12-05, all posts

Hello,

I'm turning 30 today. Few years ago, I was thinking, that I should achieve something great before I get 30. Now I work on Factorio, and I feel like this is the best position for me that could exist. I enjoy it very much and I feel that it also is the best learning experience I could hope for. I managed to not disappoint the younger me, and it makes me happy ... or maybe just less frustrated from the infinite queue of bugs waiting to be solved :)

The endless struggle

It was really nice surprise to find out, that 18 years ago, the Patrick Wyatt was facing exactly the same kind of problems when developing Warcraft as the creators of age of empires and as we are facing now. It is nice to read about it and to think about it. But it is hard to really understand the experience. The experience of working days and nights to fix all the bugs and desync issues just to find out, there is unknown count of different causes for desyncses waiting to be solved. You never know if the thing you just solved is the last one, or there are 1500 more waiting. The good thing is, that I made quite reliable way of testing determinism issues, by running given problematic save in the heavy mode.

The trick is, that most of the desync problems are caused by "hidden state", that is not properly initialised or saved. This method reliably finds all these hidden state problems. There is a single save that helped me to find 4 different synchronisation problems so far using this techinque, and there is still one problem it reports. So yes, there are known synchronisation problems in the current 0.11.5 release that we know about. We just need to fight it one after another, so give us time please.

The 0.11.5

The 0.11.4 contained a loads of bugfixes, and some of them required some smaller or bigger refactorings. We try to cover all the changes with tests, but it is not always as complete as we would hope for, because we have limited time to do it. This resulted in several critical bugs in the 0.11.4, so we decided to make another release today, to make the experimental 0.11 at least normal buggy experience instead of "crash every 2 minutes" experience.

The build server

The work on the build server is still in progress, but it is much more complicated than expected (as always). The linux crosscompiling of mac bineries "almost" works, but it still crashes on mac. As it is almost impossible to run mac on the virtual machine reliably we had to buy mac pc just to be able to test the Factorio on it. We plan that the mac machine will be slave of the build server. The build server will use it to run the tests and if we fail to crosscompile, it will be used to compile the Factorio as well.

Experiment of the higher resolution render. This can be used to make some Factorio-themed compositions. This is also a prepartion for car changes. It will be colored by the player the same way as the tank, and it will also have it's own small cannon.

The regular comment thread at our forums is ready.