Friday Facts #80 - Crazy Start

Posted by Tomas on 2015-04-03

Hello hello,

the April has started in a crazy manner here in Prague. Last couple of days the weather was switching from winter (cold and snowing) via spring (chilly and rainy) to almost summer (warm and sunny). The nature is definitely playing some April fool's jokes on us. Kovarex took some time off to go to Paris with his girlfriend over the Easter holidays. The rest of us has been merrily meeting in the office.


The newest release 0.11.20 is out. This is a stable candidate. That means we expect it to do quite well. If it does (no major issues are found) then we will proclaim the 0.11 release stable. If it doesn't then we will swallow our pride, fix the bugs and try again=)

Automatic build and deploy

The 0.11.20 was actually the first release to be completely built by our new deploy server. Blue cube has been working on this for a while and now the things are starting to come together. The server at the moment does couple of things:

  • Builds the application for all our supported platforms (Win, Mac OSX, Linux).
  • Runs test for the builds.
  • Creates downloadable packages (full installation).
  • Creates update packages (used by an autoupdater).
The last thing that is missing is that manual big red button that would start the release process=)

At the moment the resulting packages still need to be manually uploaded to the S3 servers. Next step, that Cube already started with, is moving from Amazon S3 to using virtual Linode servers for hosting the game downloadable data. Basically we are building our own very simple CDN. The advantage will be two-fold:

  • Faster download for the players.
  • Less cost for us.

Rocket integration

In the meantime the work on the 0.12 continues. Robert has been working for a while on the silo and rocket integration. The most tricky bit here is the rocket launching animation. There are all sorts of shenanigans related to this. Namely:

  • The rocket is basically moving in the Z axis (it is flying straight up). This is something the engine can't do, so we simulate this by moving the rocket along the Y axis. There are many questions arising: What should happen when player starts moving to the north, sort of "chasing" the rocket? What about the rocket shadow? We can't simply get the shadow "mirroring" what is on the ground ... How does the rocket "interact" with flying robots?
  • The silo is currently the biggest entity in the game (10 x 10 tiles at the moment). This requires re-evaluation of our entity drawing algorithm, which works by searching for entities that have their center on the currently visible part of the map. The silo's center is outside of this range (it is actually the visible part of the map + 4 tiles on each side) hence it suddenly stops being visible when its edge should still be visible. The delicacy here comes from trying to keep the code for collecting entities to be drawn as performant as possible (tens of thousands of entities can be drawn on the screen).
  • The rocket launching animation is rather complicated (it has about 12 states with many layers) and it does require quite some work to get it right. The engine is simply not ready for this kind of visuals.
  • We use some new fancy-looking glowing techniques for rocket fire casting a "glow" on the silo surroundings.
As usual, this turns out to be way more complicated than expected ...

Team reinforcement

In the past two weeks we have intensified our efforts to hire new C++ developers. As a result of this we have now a new team member on probation. His name is Martin and he is still studying at the local university so he if he stays with us he would be spending about half of his time on Factorio and the rest in school. His first task is to implement the pre signals or rather chain signals, as we plan to call them. These will work differently than pre signals in the OpenTTD. We will share the details with some example setups when the work done, which is expected to be rather soon.

Albert has gone wild and made a little fun Easter composition for you (maybe an inspiration for a mod?):

The thread for your comments and opinions is ready at our forums.