Friday Facts #41 - Back to the MP

Posted by Tomas on 2014-07-04

Hi there,

past couple of days have been absolutely wonderful back here in Prague. Pleasant temperatures, mild wind and summer atmosphere. This has made our free time moments even more enjoyable than usual. Another great thing is that our office is situated in an old and sturdy house. So it retains a reasonable temperature without any air conditioning even when it is 30+ celsius outside (not yet:)).

Holiday report

Kovarex left for the Greece in the beginning of the week. It has been his first travel outside of the borders of Czech republic for past couple of years. So we hope he is having a good time there. He will be back for a day or two next week so we will let you know how he was doing there. Our graphics department reinforcement (Pavel - he did the beacon and now he works on the gate) also went away for a week - biking with friends around the country. The rest of us still meet in the office and have kept working mostly on the multiplayer stuff.


The release of 0.10.2 went quite well with relatively few bugs and issues reported. We decided to wait with the 0.10.3 release for when kovarex will be here next week. That will be something like Tuesday or Wednesday, I guess. In the meantime we will fix the rest of bugs reported in 0.10.2, so the 0.10.3 could become a stable release candidate. The reason for waiting is mostly the inflexibility of our development environment :/.

I am working on OSX, kovarex on Windows and blue cube on Linux. Each of us is responsible for the project properly compiling and working on his operating system. We also separately handle the final release build for the respective system, before uploading the packages to the server. This is kind of clumsy. For the future we are definitely looking into using integrated build environment. At the moment we picture something like a machine (dedicated or virtual) running virtual machines for all our supported operating systems. We could probably use Jenkins to perform the builds. If anyone has experience with doing automated builds for multi-platform software, we are really curious to hear about it.

Multiplayer progress

The bulk of our work has been spent on multiplayer fiddling. The current goal scenario is simple:

  • start two instances of Factorio
  • load a game in the first instance open for other players to join
  • connect with the second instance to the first one
  • the first should share a map with the second one
  • both players appear in the game and play together
Now we are somewhere around point 4:) We have made some simplifications along the way, which will have to be revisited later on (for instance all the players in the multiplayer game will share the same force for now). Also there will for sure be synchronization issues when it comes to special cases in sharing maps and connecting players to the game. However so far the progress has been quite good and we are definitely looking to first tangible results (meeting in the local developer LAN game) next week.

There are always problems even in places that look innocent. For instance point 1 (starting two instances of the game) turned out to be a problem on my Mac, because it was running out of video memory. It wouldn't work even in low graphics mode. In order to bypass this in a relatively simple manner we added the "very low graphics mode". This is probably not quite fit for the regular gameplay, but it is really useful for the testing we are doing right now. The game gets rather pixelated and actually looks real funny. Check out the screenshot below. Everything (except gui sprites and some icons) is scaled down 4 times. There are some errors related to rounding (wires feel really strange), but since this is mostly for debugging we just passed on them.

The Friday Facts commenting thread is ready as usual. Oh and greetings to all the folks celebrating the 4th of July in the US.