Friday Facts #13

Posted by Tomas on 2013-12-20


another Friday means another update on what is happening here in the Factorio central in Prague. It doesn't really feel like the Christmas are actually around the corner. There is no snow (just cold) and the shopping spree / Christmas tree hunt doesn't really affect us that much:) Therefore the only clear signal that the year is coming to an end has been the Christmas concert we attended with Kovarex.

The stabilization of the 0.8 has been our main topic for the past week. We have found and fixed many bugs ranging from little annoyances to serious game-crashing or save-corrupting beasts. The 0.8.1 contained a magical number of 42 bugfixes, but unfortunately some of the fixes brought in new bugs (this happens so often that it became a programming folklore). Therefore we made another bugfix release - the 0.8.2 which has been published today and so far it has been looking good.

The way I put it sometimes, the bugfixing probably sounds like a boring / tedious work. Well there is not that much creativity involved, but it can get really interesting. It is like solving a puzzle or a small criminal case of your own. In the beginning you only have the problem. Then you are looking around, noticing small odities and other clues. If you need, you can use the debugger or debugging prints to get a glimpse of what is happening behind the curtains. You need to think a lot and picture how the different parts of the code interact and what could be going on. You make a hypothesis, test it and often ... find nothing. But in the end you get this AHAAA moment when everything becomes clear and the source of the problem is revealed. Actually fixing the bug is usually the simple part, once you have traced its origin. The AHAAA moment feels really good, it is like figuring out a riddle or solving a tricky math problem.

Kuba started working on the biomes for the 0.9. The model he is using is taking into account two semi-independent variables: the temperature and the humidity. The noise of temperature and humidity is generated over the map, assigning a specific combination of values to every tile. The placement of terrain and doo-dads (trees, rocks, fauna, etc.) are driven by these two variables. For instance, the definition of plain green tree would say that it has the peak at humidity of 0.5 and temperature of 17 degrees. The probability distribution is then formed around this peak to determine whether the tree should be placed on a given tile (based on the tile's temperature and humidity values). In the end, based on these definitions, the different biomes should emerge (we are already curious if they do:)). Below there is an image which demonstrates the relationship between biomes and humidity / temperature.

Albert is at the moment working on the doo-dads (new trees, rocks, plants, etc.) to give the environment a realistic feel. We have collected quite some feedback on the new logo direction in the past week. Personally, the biggest surprise to me has been that a lot of people would prefer the current logo to the old one. We still believe in the new logo and we will use the feedback from the forums and emails to improve it (experimenting with the color, increased readability, the wheel shape, etc.).

The second post picture is called "The giant and the machines". It demonstrates the scale functionality of the engine that can be used to draw scaled pictures on the fly rather than scaling them first. This way the picture uses both less space on the drive (some mods are already bigger than the vanilla game:)) and less video memory. It was really funny to see the giant player walking around the tiny machines:)

As always you can let us know what you think in the dedicated post on our forum.