Factorio - posila87
Minor Features
  • Added a time limit option to PvP game modes 'Production score' and 'Oil harvest'
  • Added 'score per minute' to the PvP Production score GUI.
Bugfixes
  • Fixed a crash when blueprinting modded logistic storage chests. more
  • Fixed requester chests wouldn't work with specific combinations of storage, buffer, and provider chests. more
  • Fixed a crash with the command line map preview option. more
  • Fixed the world-icon for the cliff explosive didn't match the item icon. more
  • Fixed the progress indicator in the browse-mods GUI would update too quickly. more
  • Fixed changing the force of a robot waiting to charge would break the robot. more
  • Fixed that joining modded multiplayer games where the spawn area was deleted would error. more
  • Fixed that pasting text didn't work correctly in any text field. more
  • Fixed a crash related to tile transitions. more
  • Fixed logistic storage filters would be ignored in some specific cases. more
  • Fixed that side-loading underground belts could lead to them getting stuck. more
  • Fixed that modded storage chests would allow more than 1 filter when the extra filters weren't valid. more
  • Fixed that the map preview seed wouldn't get used when the generate map GUI had an exchange string entered. more
  • Added yet another migration fixing invalid state created between 0.16.8 and 0.16.11.
  • Fixed that startup mod settings could be changed while in-game by clicking the label on checkboxes. more
  • Fixed that tooltip of disabled widgets didn't work.
  • Added greyed-out look to disabled textfield and checkbox to make it more clear that it isn't editable.
  • Fixed one of the curved rail segment visualizations wasn't aligned correctly. more
  • Fixed that the console could be opened in a paused game where it can't be interacted with.
  • Fixed issues of console in combination with technology GUI in multiplayer. more
  • Fixed changelogs (including mod changelogs) not properly displaying the "All" subversion for a version x.y when there was no version x.y.0. more
  • Fixed horizontal scroll pane scroller. more
  • Fixed that changing value in GameViewSettings in the Lua script didn't update the gui until the game was reloaded.
  • Fixed a crash when controller view is disabled. more
  • Fixed script error when destroying a chest in the supply scenario.
  • Fixed PvP production score price calculation.
Modding
  • Entities without an item-to-place can still be deconstructed if they are minable.
Scripting
  • Added LuaPlayer::blueprint_to_setup read.
  • Changed default value of 'expires' when creating ghost through LuaSurface::create_entity from 'true' to 'false'.
  • Fixed invalid internal state + crashes when ghost without "expires = false" was created through the script when ghost time to live was 0. more

You can get experimental releases by selecting the '0.16.x' beta branch under Factorio's properties in Steam.
Factorio - posila87
Minor Features
  • Added a time limit option to PvP game modes 'Production score' and 'Oil harvest'
  • Added 'score per minute' to the PvP Production score GUI.
Bugfixes
  • Fixed a crash when blueprinting modded logistic storage chests. more
  • Fixed requester chests wouldn't work with specific combinations of storage, buffer, and provider chests. more
  • Fixed a crash with the command line map preview option. more
  • Fixed the world-icon for the cliff explosive didn't match the item icon. more
  • Fixed the progress indicator in the browse-mods GUI would update too quickly. more
  • Fixed changing the force of a robot waiting to charge would break the robot. more
  • Fixed that joining modded multiplayer games where the spawn area was deleted would error. more
  • Fixed that pasting text didn't work correctly in any text field. more
  • Fixed a crash related to tile transitions. more
  • Fixed logistic storage filters would be ignored in some specific cases. more
  • Fixed that side-loading underground belts could lead to them getting stuck. more
  • Fixed that modded storage chests would allow more than 1 filter when the extra filters weren't valid. more
  • Fixed that the map preview seed wouldn't get used when the generate map GUI had an exchange string entered. more
  • Added yet another migration fixing invalid state created between 0.16.8 and 0.16.11.
  • Fixed that startup mod settings could be changed while in-game by clicking the label on checkboxes. more
  • Fixed that tooltip of disabled widgets didn't work.
  • Added greyed-out look to disabled textfield and checkbox to make it more clear that it isn't editable.
  • Fixed one of the curved rail segment visualizations wasn't aligned correctly. more
  • Fixed that the console could be opened in a paused game where it can't be interacted with.
  • Fixed issues of console in combination with technology GUI in multiplayer. more
  • Fixed changelogs (including mod changelogs) not properly displaying the "All" subversion for a version x.y when there was no version x.y.0. more
  • Fixed horizontal scroll pane scroller. more
  • Fixed that changing value in GameViewSettings in the Lua script didn't update the gui until the game was reloaded.
  • Fixed a crash when controller view is disabled. more
  • Fixed script error when destroying a chest in the supply scenario.
  • Fixed PvP production score price calculation.
Modding
  • Entities without an item-to-place can still be deconstructed if they are minable.
Scripting
  • Added LuaPlayer::blueprint_to_setup read.
  • Changed default value of 'expires' when creating ghost through LuaSurface::create_entity from 'true' to 'false'.
  • Fixed invalid internal state + crashes when ghost without "expires = false" was created through the script when ghost time to live was 0. more

You can get experimental releases by selecting the '0.16.x' beta branch under Factorio's properties in Steam.
Factorio - posila87
Bugfixes
  • Fixed crash related to setting logistic requests by circuit network.
  • Fixed requester chest state migration between different save versions.
  • Fixed one of the problems of internal provider data corruption related to setting inventory bar limit.
  • Fixed yet another requester chest state migration error.
  • Fixed that burner inserter didn't show the fuel icon when out of energy sometimes. more
  • Fixed that some specific pre 0.15 maps couldn't be loaded.

You can get experimental releases by selecting the '0.16.x' beta branch under Factorio's properties in Steam.
Factorio - posila87
Bugfixes
  • Fixed crash related to setting logistic requests by circuit network.
  • Fixed requester chest state migration between different save versions.
  • Fixed one of the problems of internal provider data corruption related to setting inventory bar limit.
  • Fixed yet another requester chest state migration error.
  • Fixed that burner inserter didn't show the fuel icon when out of energy sometimes. more
  • Fixed that some specific pre 0.15 maps couldn't be loaded.

You can get experimental releases by selecting the '0.16.x' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Hello, this is the last Friday of 2017, and as such, the last Friday facts of this year.

0.16.8/9 is out
It almost seams that our team never stops. To be honest, even on the Christmas eve, when everything was over and family went to sleep, I couldn't resist to stay up for little while to fix a few things :)

The fluid balancing changing follow-up is in this release
- Changed fluid wagon capacity from 75k to 25k (Same as storage tank). - Lowered fluid wagon weight from 3000 to 1000 (same as cargo wagon). - Changed fluid wagon recipe so it requires just 1 storage tank instead of 3. - Lowered barrel fluid capacity from 250 to 50. (So cargo wagon with barrels holds 20k and logistic robots are not too strong alternative to carrying fluids.) - Decreased barrelling crafting time from 1 second to 0.2 seconds.

The overall feeling we had was that fluid wagon capacity is too large, fluid trains have to barely move around, and waiting for the wagon to be filled often takes too much time.

We also wanted to make sure, that wagon with barrels just can't hold more fluids compared to fluid wagon, because even when barrels are generally more work to handle, it is not what you would intuitively expect.

With the fluid wagon separation gone, the main advantage of barrels is not capacity, but versatility. They can be combined with other barrels of different kind, or items in the train, they can be limited by the inventory limit, or easily filtered by filter inserters, transported by robots, belts etc. This advantage seems to be much more intuitive and I hope it makes sense now as whole with the removal of the fluid wagon separation to you.

The buffer chest finalization
The 0.16.8 also finishes the buffer chests. The promises from last FFF materialized in this update.

Requester chests always have priority over buffer chests, and by default request chests don't even request from buffers chests, only player and construction. This is what we feel is the most common use-case. But as we don't want to limit the possibilities, so the behaviour can be manually changed.



The 2017 recapitulation
Jakub Dvorský, the head of Amanita design, said that projects tend to be more creative in the fist 3 years of the development, while the last 2 years are more about tweaking, polishing and finishing. I feel exactly the same about Factorio. Most of the creative work has been done, and we focus more and more on finishing the game.

We've said it before, that the game will be finished and released during this year and we mean it this time. There is even the joke in the office that the game is always to be released 'next summer', which never comes. But this time we really really mean it, we want to finish the game in 2018. Finishing doesn't necessary mean no new stuff for Factorio, it might even mean the opposite. Why? Because we will have all of our technology/graphical/design debts paid.

Debts from the past we solved this year:
  • We stabilized 0.14, which meant the rewrite of the multiplayer internals based on our experience form the first version, and we now have something that seems to work quite reliably.
  • We went back and created high-resolution variants of the vast majority of the graphics.
  • We revisited the terrain and decoratives for the last time to make an environment we are content with
  • We integrated blueprint usage into network games by allowing them to be copied between players, and allowed them to be moved between individual save games.
  • We have rewritten most of the internals of how GUI works for 0.16, which should simplify additions related to GUI in the future.
  • Opened the subject of interactive mini tutorials, far from finished, but we are getting the experience there as well.
  • Tightened the user integration of mods, once the new mod portal site (which shouldn't be as unusably slow as the current one) is done, it will improve the usability of mods a lot.
  • Improved programming productivity internally by getting rid of boost, improving compile times, extending automated/heavy/valgrind tests on the server, and starting more elaborate internal documentation. So many more problems are discovered early on, and people spend less time figuring out what is wrong.
  • Improved Factorio link time in Visual studio. This was done by Rseding91, who provided the visual studio guys with Factorio sources and kept bothering them until they tested that and improved C++ link time in the 15.5 Visual studio release. The final release of Factorio with all optimisations and link time code generation took 45 minutes to compile and link, and now it takes 3.5 minutes. This sped up our release time quite a bit.

There are still some debts to be finished in 2018, mainly the GUI update, which is actually a huge project. We have very large number of different windows in the game, and if we really want to improve both the looks and the usability, we will have to put a lot of time and thought into it. Also the mini tutorials will have to be finished and few entities will probably be re-designed.

But once all these things are solved, it not only means that we could get out of early access, but also, if we ever decide to add more content to Factorio, having these things finished should pay off by letting us to focus on the new things only instead of having to fix the old ones. Another possibility, is to use the Factorio engine for completely different game or for fast prototyping of crazy ideas. Whatever we decide to do in the future, having polished base seems like an important thing to have.

Almost 6 years of Factorio in numbers
The initial Factorio commit was done 31.3. 2012, so Factorio is in the development for 5 years 9 months.
I did this kind of comparison in fff-88 which was even before the steam release, I hope you don't mind if I compare it with the current state.

Our effort in numbers:
  • In development for 1106 → 2099 days.
  • 88 → 221 public releases.
  • 14 082 → 34 686 commits in the master branch.
  • 204 917 → 465 550 lines of code, 546 339 → 1 258 939 words and 7 693 483 → 17 517 675 characters, this is equivalent to 15 → 35 average books.
  • 20 791 → 56 947 different sprites with 54 114 147 → 336 907 147 non empty pixels.
  • 1492 → 5034 resolved bugs (only counting those reported on our forums).
  • 3027 → 7670 lines in the changelog.
Results in:
  • 56 500 → 341 000 Youtube videos
  • 403 000 → 1 900 000 Google hits of Factorio.
  • 75 146 → 303 773 forum posts
  • 11 704 years of combined playtime played on steam.
  • and finally 74 914 → 1 200 000+ copies sold.

This leads me to different kind of comparisons:
  • 2.7 → 0.42 lines of code per one buyer
  • 12.7 → 16.5 commits per day or
  • 2.7 → 6 Youtube videos per one sprite
  • 2.3 years of playtime per resolved bug report
  • 4 months of playtime per one commit
  • 9.1 days of play for each line of code
  • 18.2 minutes for each pixel
I could go like this for a while :) But mainly, it makes me realize, that making changes, improving things, and fixing even small annoyances in the game is worth it.

I would also like provide the overall graph of commits frequency, some of the releases are quite visible there :)



As always, let us know what you think on our forum.
Factorio - Klonan
Hello, this is the last Friday of 2017, and as such, the last Friday facts of this year.

0.16.8/9 is out
It almost seams that our team never stops. To be honest, even on the Christmas eve, when everything was over and family went to sleep, I couldn't resist to stay up for little while to fix a few things :)

The fluid balancing changing follow-up is in this release
- Changed fluid wagon capacity from 75k to 25k (Same as storage tank). - Lowered fluid wagon weight from 3000 to 1000 (same as cargo wagon). - Changed fluid wagon recipe so it requires just 1 storage tank instead of 3. - Lowered barrel fluid capacity from 250 to 50. (So cargo wagon with barrels holds 20k and logistic robots are not too strong alternative to carrying fluids.) - Decreased barrelling crafting time from 1 second to 0.2 seconds.

The overall feeling we had was that fluid wagon capacity is too large, fluid trains have to barely move around, and waiting for the wagon to be filled often takes too much time.

We also wanted to make sure, that wagon with barrels just can't hold more fluids compared to fluid wagon, because even when barrels are generally more work to handle, it is not what you would intuitively expect.

With the fluid wagon separation gone, the main advantage of barrels is not capacity, but versatility. They can be combined with other barrels of different kind, or items in the train, they can be limited by the inventory limit, or easily filtered by filter inserters, transported by robots, belts etc. This advantage seems to be much more intuitive and I hope it makes sense now as whole with the removal of the fluid wagon separation to you.

The buffer chest finalization
The 0.16.8 also finishes the buffer chests. The promises from last FFF materialized in this update.

Requester chests always have priority over buffer chests, and by default request chests don't even request from buffers chests, only player and construction. This is what we feel is the most common use-case. But as we don't want to limit the possibilities, so the behaviour can be manually changed.



The 2017 recapitulation
Jakub Dvorský, the head of Amanita design, said that projects tend to be more creative in the fist 3 years of the development, while the last 2 years are more about tweaking, polishing and finishing. I feel exactly the same about Factorio. Most of the creative work has been done, and we focus more and more on finishing the game.

We've said it before, that the game will be finished and released during this year and we mean it this time. There is even the joke in the office that the game is always to be released 'next summer', which never comes. But this time we really really mean it, we want to finish the game in 2018. Finishing doesn't necessary mean no new stuff for Factorio, it might even mean the opposite. Why? Because we will have all of our technology/graphical/design debts paid.

Debts from the past we solved this year:
  • We stabilized 0.14, which meant the rewrite of the multiplayer internals based on our experience form the first version, and we now have something that seems to work quite reliably.
  • We went back and created high-resolution variants of the vast majority of the graphics.
  • We revisited the terrain and decoratives for the last time to make an environment we are content with
  • We integrated blueprint usage into network games by allowing them to be copied between players, and allowed them to be moved between individual save games.
  • We have rewritten most of the internals of how GUI works for 0.16, which should simplify additions related to GUI in the future.
  • Opened the subject of interactive mini tutorials, far from finished, but we are getting the experience there as well.
  • Tightened the user integration of mods, once the new mod portal site (which shouldn't be as unusably slow as the current one) is done, it will improve the usability of mods a lot.
  • Improved programming productivity internally by getting rid of boost, improving compile times, extending automated/heavy/valgrind tests on the server, and starting more elaborate internal documentation. So many more problems are discovered early on, and people spend less time figuring out what is wrong.
  • Improved Factorio link time in Visual studio. This was done by Rseding91, who provided the visual studio guys with Factorio sources and kept bothering them until they tested that and improved C++ link time in the 15.5 Visual studio release. The final release of Factorio with all optimisations and link time code generation took 45 minutes to compile and link, and now it takes 3.5 minutes. This sped up our release time quite a bit.

There are still some debts to be finished in 2018, mainly the GUI update, which is actually a huge project. We have very large number of different windows in the game, and if we really want to improve both the looks and the usability, we will have to put a lot of time and thought into it. Also the mini tutorials will have to be finished and few entities will probably be re-designed.

But once all these things are solved, it not only means that we could get out of early access, but also, if we ever decide to add more content to Factorio, having these things finished should pay off by letting us to focus on the new things only instead of having to fix the old ones. Another possibility, is to use the Factorio engine for completely different game or for fast prototyping of crazy ideas. Whatever we decide to do in the future, having polished base seems like an important thing to have.

Almost 6 years of Factorio in numbers
The initial Factorio commit was done 31.3. 2012, so Factorio is in the development for 5 years 9 months.
I did this kind of comparison in fff-88 which was even before the steam release, I hope you don't mind if I compare it with the current state.

Our effort in numbers:
  • In development for 1106 → 2099 days.
  • 88 → 221 public releases.
  • 14 082 → 34 686 commits in the master branch.
  • 204 917 → 465 550 lines of code, 546 339 → 1 258 939 words and 7 693 483 → 17 517 675 characters, this is equivalent to 15 → 35 average books.
  • 20 791 → 56 947 different sprites with 54 114 147 → 336 907 147 non empty pixels.
  • 1492 → 5034 resolved bugs (only counting those reported on our forums).
  • 3027 → 7670 lines in the changelog.
Results in:
  • 56 500 → 341 000 Youtube videos
  • 403 000 → 1 900 000 Google hits of Factorio.
  • 75 146 → 303 773 forum posts
  • 11 704 years of combined playtime played on steam.
  • and finally 74 914 → 1 200 000+ copies sold.

This leads me to different kind of comparisons:
  • 2.7 → 0.42 lines of code per one buyer
  • 12.7 → 16.5 commits per day or
  • 2.7 → 6 Youtube videos per one sprite
  • 2.3 years of playtime per resolved bug report
  • 4 months of playtime per one commit
  • 9.1 days of play for each line of code
  • 18.2 minutes for each pixel
I could go like this for a while :) But mainly, it makes me realize, that making changes, improving things, and fixing even small annoyances in the game is worth it.

I would also like provide the overall graph of commits frequency, some of the releases are quite visible there :)



As always, let us know what you think on our forum.
Factorio - HanziQ
Features
  • Storage chests can be filtered.
Minor Features
  • Requester chests can now request stuff from buffer chests as was originally intended. Buffer chests are provided items only if all requester chests are satisfied for that specific item.
  • Requester chests have a checkbox that specifies whether it should or shouldn't request things from buffer chests. It is off by default.
Optimisations
  • Optimized selecting robot tasks for requester chests.
Balancing
  • Changed fluid wagon capacity from 75k to 25k (Same as storage tank).
  • Lowered fluid wagon weight from 3000 to 1000 (same as cargo wagon).
  • Changed fluid wagon recipe so it requires just 1 storage tank instead of 3.
  • Lowered barrel fluid capacity from 250 to 50. (So cargo wagon with barrels holds 20k and logistic robots are not too strong alternative to carrying fluids.)
  • Lowered barelling speed from 1 to 0.2.
Bugfixes
  • Fixed loading of achievements with steam version. more
  • Fixed train schedule resizing with very large player inventory. more
  • Fixed missing auto resizing of Lua GUI elements when caption changes. more
  • Fixed that it was possible to set duplicate logistic requests.
  • Fixed missing entity counts when selecting area for blueprint on low graphics quality. more
  • Fixed calculation of basis noise when x<0 more
  • Fixed missing locale key in fluid wagon description. more
  • Fixed that the fluid wagon wouldn't show any GUI when it had an equipment grid. more
  • Fixed evolution command output in campaigns. more
  • Fixed shotgun shooting direction when aiming between the player and the nozzle. more
  • Fixed technology sorting. more
  • Fixed that the default listbox font was called "default-list_box". more
  • Fixed that clicking "Generate" button in the generate map window while the exchange string field was enlarged moved the button around before the mouse up was registered. The exchange string field will now never shrink on focus lost.
  • Fixed that setting LuaPlayer::opened to an empty item would crash the game. more
  • Fixed performance issues when hovering over huge resource patches in map or zoomed-to-world view. more
  • Fixed a desync when hosting multiplayer directly and building blueprints. more
  • Fixed a crash when calling specific LuaEntity properties. more
  • Fixed module effects weren't checked correctly for modded modules. more
  • Fixed a crash when teleporting roboports or logistic containers marked for deconstruction. more
  • Fixed roboports would show up twice in the logistic GUI. more
  • Fixed the background on the select-recipe GUI for the choose-elem-button didn't show correctly. more
  • Fixed changing transport belt speeds through mods on existing saves. more
  • Fixed a crash when setting filters on cargo wagons in multiplayer. more
  • Fixed a crash when trying to put blueprint books in blueprint books. more
  • Fixed that train could overshoot a station when the schedule was changed by the script.
  • Fixed that heatpipes would incorrectly update their connections when teleported. more
  • Fixed the problem of flickering tooltips in a generic way (hopefully). more
  • Fixed that the table of games was focused (for keyboard control) even if the player focused the search bar manually. more
  • Fixed crash that can happen when train on its path to station that was deactivated finds path to different alternative station of the same name that leads in opposite direction to current train movement. more
  • Fixed that player didn't request from buffer chests.
  • Fixed that some maps with modded selection-tool items failed to load.
Scripting
  • The item-with-tags and selection-tool item types now support LuaItemStack::item_number.
  • Added an optional player parameter to LuaEntity::order_deconstruction, cancel_deconstruction, LuaTile::cancel_deconstruction, LuaSurface::deconstruct_area, and LuaSurface::cancel_deconstruct_area.

You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - HanziQ
Features
  • Storage chests can be filtered.
Minor Features
  • Requester chests can now request stuff from buffer chests as was originally intended. Buffer chests are provided items only if all requester chests are satisfied for that specific item.
  • Requester chests have a checkbox that specifies whether it should or shouldn't request things from buffer chests. It is off by default.
Optimisations
  • Optimized selecting robot tasks for requester chests.
Balancing
  • Changed fluid wagon capacity from 75k to 25k (Same as storage tank).
  • Lowered fluid wagon weight from 3000 to 1000 (same as cargo wagon).
  • Changed fluid wagon recipe so it requires just 1 storage tank instead of 3.
  • Lowered barrel fluid capacity from 250 to 50. (So cargo wagon with barrels holds 20k and logistic robots are not too strong alternative to carrying fluids.)
  • Lowered barelling speed from 1 to 0.2.
Bugfixes
  • Fixed loading of achievements with steam version. more
  • Fixed train schedule resizing with very large player inventory. more
  • Fixed missing auto resizing of Lua GUI elements when caption changes. more
  • Fixed that it was possible to set duplicate logistic requests.
  • Fixed missing entity counts when selecting area for blueprint on low graphics quality. more
  • Fixed calculation of basis noise when x<0 more
  • Fixed missing locale key in fluid wagon description. more
  • Fixed that the fluid wagon wouldn't show any GUI when it had an equipment grid. more
  • Fixed evolution command output in campaigns. more
  • Fixed shotgun shooting direction when aiming between the player and the nozzle. more
  • Fixed technology sorting. more
  • Fixed that the default listbox font was called "default-list_box". more
  • Fixed that clicking "Generate" button in the generate map window while the exchange string field was enlarged moved the button around before the mouse up was registered. The exchange string field will now never shrink on focus lost.
  • Fixed that setting LuaPlayer::opened to an empty item would crash the game. more
  • Fixed performance issues when hovering over huge resource patches in map or zoomed-to-world view. more
  • Fixed a desync when hosting multiplayer directly and building blueprints. more
  • Fixed a crash when calling specific LuaEntity properties. more
  • Fixed module effects weren't checked correctly for modded modules. more
  • Fixed a crash when teleporting roboports or logistic containers marked for deconstruction. more
  • Fixed roboports would show up twice in the logistic GUI. more
  • Fixed the background on the select-recipe GUI for the choose-elem-button didn't show correctly. more
  • Fixed changing transport belt speeds through mods on existing saves. more
  • Fixed a crash when setting filters on cargo wagons in multiplayer. more
  • Fixed a crash when trying to put blueprint books in blueprint books. more
  • Fixed that train could overshoot a station when the schedule was changed by the script.
  • Fixed that heatpipes would incorrectly update their connections when teleported. more
  • Fixed the problem of flickering tooltips in a generic way (hopefully). more
  • Fixed that the table of games was focused (for keyboard control) even if the player focused the search bar manually. more
  • Fixed crash that can happen when train on its path to station that was deactivated finds path to different alternative station of the same name that leads in opposite direction to current train movement. more
  • Fixed that player didn't request from buffer chests.
  • Fixed that some maps with modded selection-tool items failed to load.
Scripting
  • The item-with-tags and selection-tool item types now support LuaItemStack::item_number.
  • Added an optional player parameter to LuaEntity::order_deconstruction, cancel_deconstruction, LuaTile::cancel_deconstruction, LuaSurface::deconstruct_area, and LuaSurface::cancel_deconstruct_area.

You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Hello, as you could expect this Friday facts is mainly about our fight with the avalanche of bug reports, which is actually not as huge as we expected it to be to be honest.

We released 0.16.7 yesterday, and this will probably be the last update for a while. Most of us now are taking a break, enjoying the festivities, and visiting our friends and family.

Transport belt compression update
Regarding the belt compression discussion opened in the last FFF: We are considering an option where side loading and inserters would compress belts natively. We will make a branch with it to test it how it works, and we will let you know our decision.

Fluid wagon update
We made a decision to completely abolish the mechanics of fluid wagon tank separation. We knew that a lot of players would not like it, but this might just be because they got used to it, and because of the argument "if you don't like it, don't use it".

There are more arguments to destroy.
  • Fluid wagon capacity is somewhat too big, which means that the fluid trains have to move around very sporadically compared to the trains with items. Making the wagon fluid capacity smaller (we didn't do it yet) and removing the separation, is similar to making the whole fluid wagon as big as one section.
  • It was solving a problem that has quite a trivial solution (use two separate wagons). We try to add mechanics mainly for things that don't have a solution otherwise, or the solution is weird.
  • We won't have to keep the code alive, we won't have to update the UI of it (in the upcoming GUI update) and fix the bugs related to it. This argument is the smallest, but is also here, as everything has a cost and it is about priorities.

Requester chest update
The change of the requester chest having priority over buffer chest was not that easy, as I decided to combine it with optimisation I wanted to do for a long time.
In the current version, requesters have just 2 containers internally: "unsatisfied requesters" and "satisfied requesters", every tick, the "unsatisfied requesters" are iterated and it is checked whether supply is available for them. The second bucked with "satisfied requesters" is separated so we don't have to iterate through requesters that don't need anything now.

The problem with this approach is, that once there are more a lot of unsatisfied requester chests for the same thing (lets say iron), and there just isn't iron in the supply at this moment, all the requesters have to be wastefully iterated again and again. So the change is, that every requests of chests are tracked separately for every item, and once the item isn't available, the rest of the requesters don't have to be iterated. I didn't measure, but it might have some minor impact in big bot-based Factories.

The reason why was the optimisation written together with the fix is, that requesters have to have priority over buffer chests independently for each item, and it works quite nicely with it.
TL;DR, this functionality is now merged into our master branch, and you will get it in the next bugfix release.

I also feel, that we should add 2 things to the logistic system in 0.16:
  • A checkbox in the requester chest that would allow the player to specify whether it should or shouldn't take from buffer chests, as even with the priorities, it might be annoying if robots took all the stuff from buffer stations to the requesters just because the supply train is going to arrive 10 seconds late, so the buffer chests would be supplied again soon. I would even say that the option might be to not take things from buffer chests by default.
  • A filter for the storage chests. Buffer chests somewhat help to sort the storage, it doesn't really replace the need of storage chests to have a single filter for the whole storage chest. This would allow it to be reserved just for something specific, which would solve a lot of different problems
3 major train problems resolved
Thanks to train bugfixes from the user aaargha, there were 3 quite important fixes related to trains done. All of them were in the game for a very long time, more than 3 years, which surprises me a lot.
  • A train decelerating to stop in a station created penalty around 2^32/10 (a lot) on the path it went through. This was sometimes causing trains to do very crazy and huge paths just to avoid this point. It was especially annoying as the penalty was easily enough to force train to go through different stations (that has penalty of 2000) which could cause traffic jams in a lot of systems.
  • The train penalty of 2000 to avoid trains going through stops not on its own path was applied to the destination stop before actually reaching it. This caused the train path-finding to potentially search a huge amount of paths while the destination stop was just ahead of it. It was just a potential performance problem, but as you probably noticed, we need to care about performance.
  • The last bug is related to this example:



The top train arrives later because there is no rail signal just in front of the stop. Sounds weird right? This bug was related to a hacky solution to a problem with extremely fast trains 3 years ago, and it basically caused trains to start slowing down for a station 2 times sooner in many cases.

All of these problems are already fixed in the current 0.16.7.

Steam awards
Factorio has been nominated for one of the Steam awards, 'Haunts My Dreams'. It is a nice mark of recognition for all the work we've put to the game this year. It seems the other nominees are pretty much the giants of the industry, so it is most likely one of these will win. Still, it is nice to be included with the big kids.

The voting for this category opens on the 29th of December, at 10 AM PST, for 24 hours only. So if you are interested in voting for one of the entrants, be sure you can get to a PC on that day.

As always, let us know what you think on our forum.
Factorio - Klonan
Hello, as you could expect this Friday facts is mainly about our fight with the avalanche of bug reports, which is actually not as huge as we expected it to be to be honest.

We released 0.16.7 yesterday, and this will probably be the last update for a while. Most of us now are taking a break, enjoying the festivities, and visiting our friends and family.

Transport belt compression update
Regarding the belt compression discussion opened in the last FFF: We are considering an option where side loading and inserters would compress belts natively. We will make a branch with it to test it how it works, and we will let you know our decision.

Fluid wagon update
We made a decision to completely abolish the mechanics of fluid wagon tank separation. We knew that a lot of players would not like it, but this might just be because they got used to it, and because of the argument "if you don't like it, don't use it".

There are more arguments to destroy.
  • Fluid wagon capacity is somewhat too big, which means that the fluid trains have to move around very sporadically compared to the trains with items. Making the wagon fluid capacity smaller (we didn't do it yet) and removing the separation, is similar to making the whole fluid wagon as big as one section.
  • It was solving a problem that has quite a trivial solution (use two separate wagons). We try to add mechanics mainly for things that don't have a solution otherwise, or the solution is weird.
  • We won't have to keep the code alive, we won't have to update the UI of it (in the upcoming GUI update) and fix the bugs related to it. This argument is the smallest, but is also here, as everything has a cost and it is about priorities.

Requester chest update
The change of the requester chest having priority over buffer chest was not that easy, as I decided to combine it with optimisation I wanted to do for a long time.
In the current version, requesters have just 2 containers internally: "unsatisfied requesters" and "satisfied requesters", every tick, the "unsatisfied requesters" are iterated and it is checked whether supply is available for them. The second bucked with "satisfied requesters" is separated so we don't have to iterate through requesters that don't need anything now.

The problem with this approach is, that once there are more a lot of unsatisfied requester chests for the same thing (lets say iron), and there just isn't iron in the supply at this moment, all the requesters have to be wastefully iterated again and again. So the change is, that every requests of chests are tracked separately for every item, and once the item isn't available, the rest of the requesters don't have to be iterated. I didn't measure, but it might have some minor impact in big bot-based Factories.

The reason why was the optimisation written together with the fix is, that requesters have to have priority over buffer chests independently for each item, and it works quite nicely with it.
TL;DR, this functionality is now merged into our master branch, and you will get it in the next bugfix release.

I also feel, that we should add 2 things to the logistic system in 0.16:
  • A checkbox in the requester chest that would allow the player to specify whether it should or shouldn't take from buffer chests, as even with the priorities, it might be annoying if robots took all the stuff from buffer stations to the requesters just because the supply train is going to arrive 10 seconds late, so the buffer chests would be supplied again soon. I would even say that the option might be to not take things from buffer chests by default.
  • A filter for the storage chests. Buffer chests somewhat help to sort the storage, it doesn't really replace the need of storage chests to have a single filter for the whole storage chest. This would allow it to be reserved just for something specific, which would solve a lot of different problems
3 major train problems resolved
Thanks to train bugfixes from the user aaargha, there were 3 quite important fixes related to trains done. All of them were in the game for a very long time, more than 3 years, which surprises me a lot.
  • A train decelerating to stop in a station created penalty around 2^32/10 (a lot) on the path it went through. This was sometimes causing trains to do very crazy and huge paths just to avoid this point. It was especially annoying as the penalty was easily enough to force train to go through different stations (that has penalty of 2000) which could cause traffic jams in a lot of systems.
  • The train penalty of 2000 to avoid trains going through stops not on its own path was applied to the destination stop before actually reaching it. This caused the train path-finding to potentially search a huge amount of paths while the destination stop was just ahead of it. It was just a potential performance problem, but as you probably noticed, we need to care about performance.
  • The last bug is related to this example:



The top train arrives later because there is no rail signal just in front of the stop. Sounds weird right? This bug was related to a hacky solution to a problem with extremely fast trains 3 years ago, and it basically caused trains to start slowing down for a station 2 times sooner in many cases.

All of these problems are already fixed in the current 0.16.7.

Steam awards
Factorio has been nominated for one of the Steam awards, 'Haunts My Dreams'. It is a nice mark of recognition for all the work we've put to the game this year. It seems the other nominees are pretty much the giants of the industry, so it is most likely one of these will win. Still, it is nice to be included with the big kids.

The voting for this category opens on the 29th of December, at 10 AM PST, for 24 hours only. So if you are interested in voting for one of the entrants, be sure you can get to a PC on that day.

As always, let us know what you think on our forum.
...