Factorio

Factorio Dev Tracker




12 Jul

Post

Under 100 bugs

We have a record low in our bug report forum, of only 55 active bug reports. I don't think in the history of Factorio the bug forum has been so clean. No doubt once we mark 0.17 as stable the count will shoot up again.

For this weeks graph I added the count of players on Steam as the left axis. We thought it would be somewhat interesting to see if there is any correlation between the two.


Note: The axis have different scales.

I a...

Read more

05 Jul

The multiplayer megapacket Twinsen

Last month I joined KatherineOfSky's MMO event as a player. I noticed that after we reached a certain number of players, every few minutes a bunch of them got dropped. Luckily for you (but unluckily for me), I was one of the players who got disconnected every, single. time, even though I had a decent connection. So I took the matter personally and started looking into the problem. After 3 weeks of debugging, testing and fixing, the issue is finally fixed, but the journey there was not that easy.

Multiplayer issues a...

Read more

28 Jun

Crash site: First state Ernestas, V453000, Albert

For many weeks now the GFX department has been focused on preparing replacements for the placeholder graphics of the campaign crash site. The subject as usual is not that easy because we had to first solve the main concept of the crash site.

It happens that those new entities belong to the Factorio universe, but they come from a different reality than the usual DIY/diesel punk of the game. So we had to invent a new way to design machines that look like Factorio but that are not too familiar.

Here a proof of concept of the look:

The concept is that the big (medium) spaceship broke into pieces as it crash landed, and lost many components that the player, during the introduction, will repair and use for his own profit.

The look of the spaceship remnants are a little bit based on the d...

Read more

21 Jun

Post

Hello,
this is a special edition. We are celebrating that we managed to write something about the game development of Factorio every single Friday and reached the number 300. Since we hopefully won't get to another round number like this before finishing the game, we would like to make this one a little bit different. We will introduce people from the team.

Everyone was asked to answer the following questions:

  • What were your favorite video games growing up?
  • What did you do before Factorio?
  • What do you do in the Team?
  • What's your favorite part of Factorio?
  • Anything else that is important about you.
Here are the answers:



Michal (kovarex) Kovařík
Founder, Game designer, Developer, "Approver"

My favorite games are: Baldur's gate, Starcraft, Civilisation, Xcom, They are billio...

Read more

14 Jun

Post

You might have noticed that a lot of rail related stuff was broken during these past releases, and now it is working more or less fine again. The story behind it is not so trivial.

Rail signal logic

The rail signal logic for automated trains is quite straightforward:

As a train moves forward, it tries to reserve signals in front of it. If it can reserve a signal, the whole block guarded by the signal gets reserved for the train. If the train can't reserve the signal, as the block is reserved or occupied by different train(s), it stops in front of the signal and waits. Once the train passes a signal and enters a new block, it removes the reservation on the signal and block it had reserved. Once it exits the block, the block can be reserved and entered by other trains.

This looks nice and simple, nothing fundamentally wrong could happen with this logic right? Especially since we have it there for almost five years and it all just works right?...

Read more

07 Jun

Demo upgrade for stable Abregado

TLDR; We have released a new version of the Introduction campaign to the Experimental branch. If you are following the campaign development please play it again and send us your feedback.

Introduction as Demo

My previous post on tutorial design is most likely required reading for this post. Please see FFF-284.

In general, the Introduction scenario has been very well received. Feedback has been flooding in, and it has been very useful. Receiving screenshots from all of you has been great. We are mostly happy with the state of the gameplay, and it seems to be having the right effect on new players.

When 0.17 moves to stable, there will need to be a new version of the Demo. The Introduction scenario was always planned to be the Demo, but there are still some sticking points we want to address.

Loader...

Read more

31 May

Inserters are now smarter Twinsen

A few days ago I was investigating a rather minor bug report related to "Rotational Asymmetry in Belt/Inserter interactions" (aka Inserter was not behaving identically when rotated). This was a classic case of floating point equality comparison.

The Inserter would move it's arm and then it would pick up the item if the current arm orientation is equal to the desired arm orientation. Because of some chain of calculations related to rotation, some precision was lost and the equality check would fail for 1 tick, delaying the item pickup for 1 tick in some Inserter rotations. So I fixed that by...

Read more

24 May

Cars/Tanks remember their color Klonan

This really is a tiny feature, the car and tank will now save the color of the passengers when they exit the vehicle.

So now you won't forget which vehicle you were driving, and can warn everyone else on the server: "Pink tank is mine".

All kinds of bugs Rseding

As uninteresting as it is; most bugs are boring and typically involve missing code. Someone forgot to implement part of a new feature, forgot that some situation could happen, forgot to check for null. Rarely interesting things show up where everything is working but not how we want it to.

Performance: It's never what you think it is

Recently we had a bug report where a modded game would freeze for a minute for seemingly no reason and then continue like nothing went wrong. It being a heavily modded game my first reaction was to blame it on th...

Read more

17 May

Hello,
the bugfixing period boringly continues, we got down to 159 active bug reports, so in few weeks we should be finally down with this burden. But at least the graphics department has something new to show:

New design for the chemical plant Ernestas, Albert

After some time working on the redesign of the chemical plant, we can finally show the results:

In the old version, we had the problem of not being very clear when the chemical plant was working or not. So apart from the style modernisation and high resolution, this redesign was aimed for solving this readability issue. As an addition, we tried also to be very clear at the time of viewing what kind of chemical recipe the plant is processing.

Finally we came with the solution of adding a big window - pipe style - showing the moving liquids inside with the tinted color, and also adding a ch...

Read more

10 May

Post

Blog thoughts Klonan

As the time goes on, the nature of our weekly FFF post has changed. At the very beginning (FFF-1) it was to let people know that "we're still alive and working on the game", and over time we've grown into covering a range of different topics:

  • Communicating our progress and roadmap of the next releases.
  • Showing new features and gathering community feedback on them.
  • Diving into the technical side of game development and particular challenges we face.
  • ...
Read more

03 May

More remnants Dom, albert

As for the conclusion of the topic opened in the FFF-28...

Read more

25 Apr

Inching closer to stable Klonan

The last 2 weeks have been less productive than we would like on the bug fixing front. The Easter festivities along with a wave of illness have dampened our efforts. We have still managed to push out 2 more experimental releases, and fixed a few desyncs. We encountered one specific desync in the mass MP stress test last weekend, caused by a characters inventory size changing (such as researching the toolbelt technology) while the player is respawning.

The graph of crashes paints a similar story to how the office atmosphere feels. It is natural though, most of the major crashes affecting most players are resolved, so all that remains are the more difficult issues that only affect a handful of players. This means that each bug fix is less effective at reducing the overall crash count.

This last weekend, we had over 500 total crashes repo...

Read more

19 Apr

New Campaign Abregado

Have you ever been playing a Freeplay game and realised you don't know what your next big goal is? And then, once you decide to pick a new goal, you realise while you worked on automating the last goal, there were 10 new technologies unlocked and now you don't know which to pick next.

These are the situations we hope to address with the new full Campaign. A guided Freeplay, in which the player plays through the whole tech tree, without being overloaded with choice, while still having the permanence and unidirectional progression of Factorio. The permanence problem has already been solved using the new map expansion technique which is playable in the Introduction scenario. Over the last year we have been working on the bigger design task of unravelling the tech tree and breaking it into a set of choices for the player.

This task has been made al...

Read more

12 Apr

Rail building changes kovarex

The problem with rail building is that it has too many states. It depends whether you start building the rail with shift, to use the ghost mode or not, and then it also matters whether you still hold shift, to ignore trees or not. Moving from manual building to ghost rail building means cancelling the whole rail building and starting it again with the correct modifier.

The problems were reaching the surface from time to time, and Twinsen even drew a nice little state diagram of the rail building system.

It kind of peaked with this bug report. After some time, it became clear that we should...

Read more

05 Apr

Hello,

we are still focusing most of our resources towards fixing as many bugs as possible so we have stable release in reasonable time. In the meantime, the preparation for the continuation of the work on the GUI rewrite is still happening:

Character GUI mockup

The character screen is one of the most used GUI screens in the game, so we need to really try to do it right. We are moving towards the final version of the mockup, so we can start implementing it soon.

Crafting tab

Left frame

  • (1) Inventory: We just translated the previous okay mechanics to the new style so we don’t add nor remove any important function.
  • (2) Slots: Those are darker now in order to improve the contrast and readability of the icons.
Right frame
  • (3) Panel tabs: The regular system of tabs takes quite some e...
Read more

29 Mar

Removing RTL language translations Wheybags

I'm sorry to say that we have removed the RTL language translations (Hebrew and Arabic) in 0.17.20.

Until this point we've had a half implementation of RTL languages, where the text is simply flipped when we download it from Crowdin. This 'works' for a decent proportion of things, but not nearly 100%. In order to attain the level of polish we want for the 1.0 release, we would need to spend a lot of time implementing proper support for RTL layouts. This just doesn't make sense for us given our current goals, and the proportion of our player base which uses these languages (less than 0.1%). We decided that instead of completely gutting the translations, we could leave them in for those who enjoy them, but not to offer them in the GUI as defaults.

The languages will remain up on Crowdin, and the locale files will still be present in game, but there will be no option in the in-game language options dialog to cho...

Read more

22 Mar

Hello,

This week has been non-eventful. We are fixing bugs. There is not much to say, and I have updated the graph to reflect the status of the ongoing Dev vs. Bug war:


The massive spike is the specific crash we talked about in the last FFF.

EGX Rezzed (Klonan)

We will be attending EGX Rezzed in 2 weeks. This week I have been finishing all the preparation work, such as furniture and equipment rental, accommodation, our itinerary etc. We will have a booth in the South Vault, with a couple of PCs for playing the game. If you are also attending be sure to pop by (We might have some free swa...

Read more

15 Mar

Post

A week in the office

This week is another week of typical bug fixing, so I thought we would make a one-time change of style and do a day-by-day account of what exactly that means for us.

Monday

We had a typical day of bug fixing for the most part. After our weekly Monday meeting, where we discuss the development plan and the Friday Facts plan, everyone settled into the normal bugfixing work, which boils down to something like this:

  1. Find a bug to work on - Either by looking through the forum or the Automated crash reports.
  2. Try to reproduce the problem, or someway figure out what went wrong.
  3. Try to fix the problem. Sometimes this is super easy, other times it can be hours/days.
  4. Check the solution is effective at fixing the bug.
  5. Check the solution didn't break something else. For this we have over 1,300 integration tests which cover a large amount of the code base. We also have a server which runs tests for...
Read more

08 Mar

Post
Hello,

This past weekend we beat our previous record of most simultaneous players with a peak player count on Steam of 22,457 players, and no doubt another couple thousand playing the non-Steam version.

macOS Developer needed

We have a proportionate number of bug reports coming in for macOS systems, and we don't have a dedicated developer responsible for the problems. The Job listing is still up on our website, and we have the desk...

Read more

01 Mar

The release (kovarex)

Webm/Mp4 playback not supported on your device.

So we finally released the 0.17 experimental this week. (patch notes) Hooray :)

Fun fact: The release script failed to post the release announcement on Steam and Reddit and we were wondering why. The reason is that the patch notes were so big, that it exceeded the maximum post size (40k characters). If this isn't the indication that we should split our releases into smaller chunks, than nothing is :).

Code wise, it is clearly the biggest release, and the amount of bugs we have to go through correlates with it. In other words, there are tons of bugs of all variety. We want to fix everything eventually, but it will take time, so we had to ...

Read more