Friday Facts #105 - The Grey Zone

Posted by Tomas on 2015-09-25

Hi folks,

so this has been one of those weeks when it is suddenly Friday afternoon and you are wondering where did the week go. Fortunately there are the Friday Facts to put myself together and retrace the events=))

The Grey Zone

At the moment we are kind of in a grey zone. The 0.12 bugs are more or less solved (though there is still some "popping up" of new issues) and the full speed work on 0.13 hasn't started yet (actually not even slow speed work has started). We are finishing with little (often technical debt) tasks from our internal lists. There is just ton of issues like: fixing locale fonts, updating tips and tricks, writing tests for compilcated existing functionality, tweaking our automatic deployment and testing setup, auto-generating the Lua API documentation, fixing sound glitches, etc. The list goes on.

One of the tasks has been related to our headless binary. This is the binary to run on linux servers without graphics card. This is now available in the downloads section alongside other releases. There is a small convenience difference where by clicking the download, the resulting download link (from one of our cdn servers) is valid for 10 minutes (instead of regular 10 seconds) so the server owner can conveniently copy this url and download the game directly from the server. In the future we plan to have the updater work for headless servers as well so that will make things even more convenient.

The good news is that the list of these little tasks is getting shorter. Also we have already more or less agreed on distribution of big tasks for the 0.13. These have been discussed in the past and are also visible at our roadmap. Some work on these should start already next week. We will keep you up to date=)

Moddability pitfalls

So one of our core aims is to make the game very well moddable. That should hopefully be clear. But this comes with some unexpected burdens. Kovarex has spent quite some time in the past week solving bugs related to mods or modding API. The biggest issue we are having at the moment is related to mod serialisation and using on_load and on_save hooks. This gets a little bit technical. These functions were meant as helpers for cases when local script variables are initialized from the serialized state. We have actually used this mechanism ourselves in scripts behind our campaigns. However there are hidden and undocumented traps in this approach. Mods can't change the game state or custom guis in these methods. Which is actually happening more often then we thought. And that leads to crashes or desyncs later on (not so easy to figure out what was the cause). So we most probably will just remove these helpers and enforce keeping the state in the global table which is seamlessly serialised. See more at discussion on our forums.

Another challenge with mods is that they really test your game logic. Often it has happened to us that mods have used certain functionality in a different way than the regular game engine and that leads to ... just strangeness. Good example from not so long ago is the air filtering mod. It has been cleaning the pollution by having energy source with negative pollution impact. However pollution influences the enemies evolution factor. That is a number which defines probabilistic distribution of newly spawned enemies (higher evolution rate means more difficult enemies). Surprise, the logic was wrong for cases when the pollution is decreasing. But because it is never decreasing in the game itself we just haven't noticed. So after using the mod for a while you could end up with evolution factor of way below 0 - where normal values are between 0 and 1.

Ok enough complaining. We love the mods people make. The time to figure out issues related to modding is well worth seeing what people come up with. And because today we are short on fancy graphics (Albert is still deep in the new technology sprites), below you can admire one of the fan wallpappers based on a popular Yuoki industries mod. More fan wallpapers are available at our forums.

Steam creep

We have also done some progress on preparing for our launch on Steam. Namely finally coming up with a press release. It is still a work in progress (for instance the graphics selection) but the majority of information should be there.

Another mini project related to Steam that we have started is a preparation of sort of a promo video. So we have a trailer. Quite a decent one we believe. However we figured that we would like to give a potential player more information after (if) he is interested by the trailer. We would like to present things that can't be really expressed well in the trailer. Sneek peeks into the history of Factorio development, our ideas about the direction of the game and the development process, a little bit of background about the team, etc. We picture a few minutes long video in the form of dicussions with some core team members interleaved with gameplay examples. This is still very much in the process of brainstorming but we have already talked with a documentarist who seems quite capable to do the job and as a bonus he is a gamer himself (and played Factorio already).

Ok, no poetry today. If there is stuff on your mind related to the post or to the game, feel free to "dump it" at our forums . Time for Friday evening Dont Starve game with Twinsen=))