Oct 25, 2016
Factorio - HanziQ
Bugfixes
  • Fixed crash related to technology migration. more
  • Fixed item sub groups wouldn't be used in the recipe GUI when item groups were disabled. more
  • Public and LAN game visibility are now separate settings (in GUI and in server-settings.json), and they can be toggled runtime with the /config command. See data/server-settings.example.json for a way to specify the visibility, as the old one will not work anymore.
  • Fixed has password/mods filters not working.
  • Fixed problems with determining external IP address for MP games. more


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Oct 25, 2016
Factorio - HanziQ
Bugfixes
  • Fixed crash related to technology migration. more
  • Fixed item sub groups wouldn't be used in the recipe GUI when item groups were disabled. more
  • Public and LAN game visibility are now separate settings (in GUI and in server-settings.json), and they can be toggled runtime with the /config command. See data/server-settings.example.json for a way to specify the visibility, as the old one will not work anymore.
  • Fixed has password/mods filters not working.
  • Fixed problems with determining external IP address for MP games. more


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Oct 24, 2016
Factorio - Klonan
Changes
  • Improved the browse-mods GUI by downloading mods while browsing the mods list.
  • Improved the delete-mod functionality in the installed-mods GUI.
  • Achievements unlocked locally without using steam get unlocked on steam once the game is started in steam mode.
  • Storage tanks connected to the circuit network will output floored fluid values instead of rounding them.

Bugfixes
  • Fixed that biters would sometimes attack non-polluting entities more
  • Added commandline option --bind to select an ip address to host a game at more
  • Fixed that different capitalisation of the same username could be used to: 1. join the game twice 2. evade the ban list 3. evade admin list.
  • Fixed fluid info would get rendered twice when alt-info was on while hovering the mouse over assembling machines. more
  • Fixed that it wasn't possible to connect with too many mods. more
  • Fixed crash when pasting huge strings into mod GUIs. more
  • Changed the clear blueprint icon to the trashcan icon and moved ot on the left of the cancel button, so it is less confusing.
  • Fix of possible leak of information box windows when closing game. more
  • Fix PRINTSCREEN and SCROLLLOCK not working as keybinds. more
  • Fix map download limit not working for speeds under 101KB/s. more

Scripting
  • Added LuaSurface.set_chunk_generated_status().
  • Added defines.chunk_generated_status.


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Oct 24, 2016
Factorio - Klonan
Changes
  • Improved the browse-mods GUI by downloading mods while browsing the mods list.
  • Improved the delete-mod functionality in the installed-mods GUI.
  • Achievements unlocked locally without using steam get unlocked on steam once the game is started in steam mode.
  • Storage tanks connected to the circuit network will output floored fluid values instead of rounding them.

Bugfixes
  • Fixed that biters would sometimes attack non-polluting entities more
  • Added commandline option --bind to select an ip address to host a game at more
  • Fixed that different capitalisation of the same username could be used to: 1. join the game twice 2. evade the ban list 3. evade admin list.
  • Fixed fluid info would get rendered twice when alt-info was on while hovering the mouse over assembling machines. more
  • Fixed that it wasn't possible to connect with too many mods. more
  • Fixed crash when pasting huge strings into mod GUIs. more
  • Changed the clear blueprint icon to the trashcan icon and moved ot on the left of the cancel button, so it is less confusing.
  • Fix of possible leak of information box windows when closing game. more
  • Fix PRINTSCREEN and SCROLLLOCK not working as keybinds. more
  • Fix map download limit not working for speeds under 101KB/s. more

Scripting
  • Added LuaSurface.set_chunk_generated_status().
  • Added defines.chunk_generated_status.


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Hello,
pretty much half of the office has been sick in the past week, but that still hasn't stopped us from progressing in the development of your favourite pollution-generating game (though I have been playing some Cities skyline recently and there you can screw the nature around quite creatively as well).

Infinite research
The reason for infinite research is mainly to give some optional resource sinks for people that like to make huge factories. The research cost/gain ratio is going to have diminishing returns so the player bonuses don't become too absurd.

The main problem was to define the way to specify the research requirements growth. Sometimes it should be linear, sometimes quadratic, sometimes exponential. To make the modding of it free enough, we allowed to specify it via a formula, so for example, the Worker robot speed research 6+ has the formula specified like this:
count_formula = "1000*2^(l-6)"
where the l stands for the level of the research.

I wrote our own small math formula parser for Factorio, so the formula is parsed only once and stored internally as the graph of the expression, so it can be evaluated quickly for different values. We might find handy usages of this on other places in Factorio later on as well.

Anyway, the formula as it stands means, that the level 6 costs 1000:


As every other level costs twice of the previous one, the level 10 costs already a ton:


This change was easier than I expected and the plan is to have infinite research for most of the upgrade technologies in the game, which is now very simple to add to the game.
I'm looking forward to see how far I can go with my playtesting base with these. I'm thinking of a way to improve the circuit production already :)

Blueprint Library
We have made quite some progress on the Blueprint Library, which will be one of the bigger 0.15 features. Check out the introduction in the FFF-156 if you need. At the moment the basics for the singleplayer usage are finished. You can have blueprints stored locally in the game as well as in the persistent (across saves) storage.

There is (hopefully) intuitive gui to work with the library. You can export blueprints and blueprint books from the game to the library. There it is possible to move the blueprints around simply by dragging either within the same storage or for instance from game storage to the persistent storage or vice versa. Of course you can move the blueprints in and out of the blueprint books as well.

Detail guis for blueprints and blueprint books are very similar to the guis already in the game with additional possibility of (instant) crafting and deleting the blueprint / book from the library.

Screenshots show the proof of concept with details of a single blueprint book and then a blueprint within that blueprint book opened.





The next point in the Todo list is to make the whole thing work for the multiplayer as well - you can see other players' blueprints and download them. This will require some fragmentation tricks to avoid hiccups when sending a lot of blueprint data over the network.

Yet another 0.15 optimisation
As part of multithreading update preparations, another nice little optimisation came up. It is related to situations like this:

The problem is, that there are a lot of chunks where nothing happens, only pollution needs to be calculated.The pollution simulation is written in a way, that every chunk updates its pollution spread only once per 60 ticks (once per second). Every chunk updates at different moments of the 60 tick cycle, so the cpu drain is distributed.The problem is, that the code was written in this way:
// handle pollution (every second for performance reasons) if (tick % 60 == uint32_t(abs(this->position.x) + abs(this->position.y)) % 60) ... handling pollution logic ...
This means, that for all of those chunks that have nothing else but pollution, the game has to go through and check whether its pollution shouldn't be updated this particular tick or not.
As I know when the chunk is going to be updated next time (in 60 ticks), I can just add it to the particular queue of chunks to be updated in the 60 ticks ahead. This means that these particular chunks (as long as something else doesn't interfere) will not have to be accessed at all in the meantime:

This change itself improved the performance of big factories by something like 7%.

UX designer hunt
As you probably know we intend to polish the game and user experience within the coming releases. This includes the GUI overhaul, improving the existing missions and adding the so called mini-tutorials or interactive tips and tricks (mentioned in the previous FFF) - Scott has actually started to work on these and he will bring some news soon.

With all these plans ahead we have figured that we really need a dedicated UI/UX designer to work with us on these projects (and maybe some others). As the situation stands all the work would be done by Albert, however finding a contractor who would come here to Prague and cooperated with us on these would be a big relief of workload for Albert and it would allow him to focus on improving the in-game content. Not mentioning that professional UI/UX designer would ideally have the skills to start working on this immediately, while Albert would need some time to do his research.

Long story short, if someone you know (or you yourself =)) would fit the job description and find the work interesting, send him our way=) It will most probably end up being a couple of months cooperation when we will require the designer to come to Prague occasionally to discuss the progress.

And as always, stop by at our forums and let us know what you think.
Factorio - Klonan
Hello,
pretty much half of the office has been sick in the past week, but that still hasn't stopped us from progressing in the development of your favourite pollution-generating game (though I have been playing some Cities skyline recently and there you can screw the nature around quite creatively as well).

Infinite research
The reason for infinite research is mainly to give some optional resource sinks for people that like to make huge factories. The research cost/gain ratio is going to have diminishing returns so the player bonuses don't become too absurd.

The main problem was to define the way to specify the research requirements growth. Sometimes it should be linear, sometimes quadratic, sometimes exponential. To make the modding of it free enough, we allowed to specify it via a formula, so for example, the Worker robot speed research 6+ has the formula specified like this:
count_formula = "1000*2^(l-6)"
where the l stands for the level of the research.

I wrote our own small math formula parser for Factorio, so the formula is parsed only once and stored internally as the graph of the expression, so it can be evaluated quickly for different values. We might find handy usages of this on other places in Factorio later on as well.

Anyway, the formula as it stands means, that the level 6 costs 1000:


As every other level costs twice of the previous one, the level 10 costs already a ton:


This change was easier than I expected and the plan is to have infinite research for most of the upgrade technologies in the game, which is now very simple to add to the game.
I'm looking forward to see how far I can go with my playtesting base with these. I'm thinking of a way to improve the circuit production already :)

Blueprint Library
We have made quite some progress on the Blueprint Library, which will be one of the bigger 0.15 features. Check out the introduction in the FFF-156 if you need. At the moment the basics for the singleplayer usage are finished. You can have blueprints stored locally in the game as well as in the persistent (across saves) storage.

There is (hopefully) intuitive gui to work with the library. You can export blueprints and blueprint books from the game to the library. There it is possible to move the blueprints around simply by dragging either within the same storage or for instance from game storage to the persistent storage or vice versa. Of course you can move the blueprints in and out of the blueprint books as well.

Detail guis for blueprints and blueprint books are very similar to the guis already in the game with additional possibility of (instant) crafting and deleting the blueprint / book from the library.

Screenshots show the proof of concept with details of a single blueprint book and then a blueprint within that blueprint book opened.





The next point in the Todo list is to make the whole thing work for the multiplayer as well - you can see other players' blueprints and download them. This will require some fragmentation tricks to avoid hiccups when sending a lot of blueprint data over the network.

Yet another 0.15 optimisation
As part of multithreading update preparations, another nice little optimisation came up. It is related to situations like this:

The problem is, that there are a lot of chunks where nothing happens, only pollution needs to be calculated.The pollution simulation is written in a way, that every chunk updates its pollution spread only once per 60 ticks (once per second). Every chunk updates at different moments of the 60 tick cycle, so the cpu drain is distributed.The problem is, that the code was written in this way:
// handle pollution (every second for performance reasons) if (tick % 60 == uint32_t(abs(this->position.x) + abs(this->position.y)) % 60) ... handling pollution logic ...
This means, that for all of those chunks that have nothing else but pollution, the game has to go through and check whether its pollution shouldn't be updated this particular tick or not.
As I know when the chunk is going to be updated next time (in 60 ticks), I can just add it to the particular queue of chunks to be updated in the 60 ticks ahead. This means that these particular chunks (as long as something else doesn't interfere) will not have to be accessed at all in the meantime:

This change itself improved the performance of big factories by something like 7%.

UX designer hunt
As you probably know we intend to polish the game and user experience within the coming releases. This includes the GUI overhaul, improving the existing missions and adding the so called mini-tutorials or interactive tips and tricks (mentioned in the previous FFF) - Scott has actually started to work on these and he will bring some news soon.

With all these plans ahead we have figured that we really need a dedicated UI/UX designer to work with us on these projects (and maybe some others). As the situation stands all the work would be done by Albert, however finding a contractor who would come here to Prague and cooperated with us on these would be a big relief of workload for Albert and it would allow him to focus on improving the in-game content. Not mentioning that professional UI/UX designer would ideally have the skills to start working on this immediately, while Albert would need some time to do his research.

Long story short, if someone you know (or you yourself =)) would fit the job description and find the work interesting, send him our way=) It will most probably end up being a couple of months cooperation when we will require the designer to come to Prague occasionally to discuss the progress.

And as always, stop by at our forums and let us know what you think.
Oct 14, 2016
Factorio - Klonan
Changes
  • Added "Show player names on minimap" option to graphics settings.
  • Added multiplayer server option "Autosave only on server".
  • Deconstructing/canceling deconstruction sets the "last user" on an entity.
Optimizations
  • Further performance improvements to the trains GUI.
  • Improved performance in the browse-mods GUI when filtering/sorting.
Bugfixes
Scripting
  • Renamed LuaInventory::has_filters to LuaInventory::supports_filters.
  • Added LuaInventory::is_filtered.
  • Removed LuaEntity::has_direction as LuaEntity::supports_direction already exists and does the same thing.
Use the automatic updater if you can (check experimental updates in other settings) or download full installation at http://www.factorio.com/download/experimental.
Oct 14, 2016
Factorio - Klonan
Changes
  • Added "Show player names on minimap" option to graphics settings.
  • Added multiplayer server option "Autosave only on server".
  • Deconstructing/canceling deconstruction sets the "last user" on an entity.
Optimizations
  • Further performance improvements to the trains GUI.
  • Improved performance in the browse-mods GUI when filtering/sorting.
Bugfixes
Scripting
  • Renamed LuaInventory::has_filters to LuaInventory::supports_filters.
  • Added LuaInventory::is_filtered.
  • Removed LuaEntity::has_direction as LuaEntity::supports_direction already exists and does the same thing.
Use the automatic updater if you can (check experimental updates in other settings) or download full installation at http://www.factorio.com/download/experimental.
Factorio - Klonan
Hello,

once I changed the science packs for 0.15, I had to do a playtest to have a feel of how the changes affect the game.

I finished it just before writing this post:




This was the first single player playthrough in a long time, so there was a lot of new findings.
I also enjoyed all the new features, like blueprint book, auto trash, train conditions etc. These were little things but they helped a lot.

Finding 1 - the game contains a lot already
The game took me 46 hours to finish. I didn't hurry too much, but it is still quite a long time, considering I played the game several times from start to finish already.

It is not always so obvious to me when we are doing little iterative additions one by one, but when playing from start to finish, there are a lot of things to do. I like the moments when I have dozens of improvements to do and I need to choose the most important one for the moment. The complete change of playstyle in different phases of the game (Burner → research → mass production → trains → multibelt setups → construction robots → even bigger mass production → automated delivery → modules → multi platform stations → rocket) felt right. The overall feeling was, that we shouldn't add much to the game content anymore or it will become too complex and big for the newcomers. This means, that when we add nuclear power, dirty mining, and a few little things, that will be it for the vanilla part of the game. We can still do the expansion pack with additional stages of the game and space exploration later, but that is a different story. The additional complexity will have to be optionally available via modding, this is why we have the native mod support.

There are still a lot of things to be done even if we don't want to drown the player in features, like optimisations to make bigger factories run smoother, as a big part of the fun comes from organizing logistics of huge quantities.

Finding 2 - The effects of research changes
The higher tiers of the research were more expensive and slower (compared to the current 0.14) which I believe is a good thing. Choosing what to research felt more important and as things were unlocked slower. I had enough time to go through almost all the stages of the military options as the game progressed, which felt right.

Finding 3 - the most needed changes
The best way to improve the game as I see it, is to minimise the annoying parts of the gameplay.

This is the list of changes for 0.15 I decided to do based on this playthrough:
  • Decrease the bounding box of burner mining drills,chemical plants and pumpjacks so walking in between them is possible.
  • Increase stack sizes of belts,walls and pipes from 50 to 100, this is mainly for the later stage of the game with personal roboports, where making train stations and expansions meant having not enough of belts and walls way too often.
  • Figure some way to have low level personal construction robots earlier in the game.
  • Change the oil so the minimum yield is dependent on the starting yield so better fields are also better later on.
  • There are more oil fields (compared to 0.13) which is a good change, but setting them up is quite a chore for big ones, so having fewer of them with higher yield would be better.
  • MK2 personal roboport is a must, as the limit of 10 robots per roboport is not enough in later stages of the game when building bigger setups.
  • Concrete shouldn't be blue science (green only)
  • The electric furnace should be somewhat cheaper. (Especially when it is used in science packs now)
  • Shift click (ghost placement) should go through trees and rocks as blueprints with shift do.
  • Enhancement to the belt building mechanics, so building by dragging makes continuous belt.
  • Limit turret creep as it is way too powerful now (especially with personal roboport) with a turret activation time. As it makes the expansion harder, the resource growth from the center should be higher.
  • Merging items with different health. - We didn't do the item merging, as we didn't want the player lose his precious items as two 49% items would merge into one, which would prevent the player from repairing both for just a few repair. In reality, I feel that the annoyance of having 8 different stacks of laser turrets/walls in my inventory is not worth the rare possibility of losing an item or two.
  • MK2 version of boiler and steam engine. It is going to be a must with the nuclear power, but it should be usable with conventional coal power generation as well.

Finding 4 - The interactive tips and tricks is a must
There are many tricks and shortcuts in the game that make the gameplay so much easier. As we don't want to overwhelm the players with huge tutorials in the start, we need to teach them those as the game progresses. This would be done by the little interactive tutorials that would unlock only when it is relevant. Something like this:
  • You build the first locomotive → Tutorial to setup a train schedule unlocked.
  • You build a second locomotive → Tutorial of rail signals unlocked.
  • You build 50 rail signals → Tutorial of chain signals unlocked.
  • You build 10 requester chests → Tutorial that copy paste from assembler to requester chest does exactly what you need.
  • etc. etc.
  • As the tricks would be given to the player in small doses as he plays through the game and mainly when the player is probably just about to use it, we might add lots of these without the fear of overwhelming the player.

As always, if you have any comments or otherwise, please let us know on our forums.
Factorio - Klonan
Hello,

once I changed the science packs for 0.15, I had to do a playtest to have a feel of how the changes affect the game.

I finished it just before writing this post:




This was the first single player playthrough in a long time, so there was a lot of new findings.
I also enjoyed all the new features, like blueprint book, auto trash, train conditions etc. These were little things but they helped a lot.

Finding 1 - the game contains a lot already
The game took me 46 hours to finish. I didn't hurry too much, but it is still quite a long time, considering I played the game several times from start to finish already.

It is not always so obvious to me when we are doing little iterative additions one by one, but when playing from start to finish, there are a lot of things to do. I like the moments when I have dozens of improvements to do and I need to choose the most important one for the moment. The complete change of playstyle in different phases of the game (Burner → research → mass production → trains → multibelt setups → construction robots → even bigger mass production → automated delivery → modules → multi platform stations → rocket) felt right. The overall feeling was, that we shouldn't add much to the game content anymore or it will become too complex and big for the newcomers. This means, that when we add nuclear power, dirty mining, and a few little things, that will be it for the vanilla part of the game. We can still do the expansion pack with additional stages of the game and space exploration later, but that is a different story. The additional complexity will have to be optionally available via modding, this is why we have the native mod support.

There are still a lot of things to be done even if we don't want to drown the player in features, like optimisations to make bigger factories run smoother, as a big part of the fun comes from organizing logistics of huge quantities.

Finding 2 - The effects of research changes
The higher tiers of the research were more expensive and slower (compared to the current 0.14) which I believe is a good thing. Choosing what to research felt more important and as things were unlocked slower. I had enough time to go through almost all the stages of the military options as the game progressed, which felt right.

Finding 3 - the most needed changes
The best way to improve the game as I see it, is to minimise the annoying parts of the gameplay.

This is the list of changes for 0.15 I decided to do based on this playthrough:
  • Decrease the bounding box of burner mining drills,chemical plants and pumpjacks so walking in between them is possible.
  • Increase stack sizes of belts,walls and pipes from 50 to 100, this is mainly for the later stage of the game with personal roboports, where making train stations and expansions meant having not enough of belts and walls way too often.
  • Figure some way to have low level personal construction robots earlier in the game.
  • Change the oil so the minimum yield is dependent on the starting yield so better fields are also better later on.
  • There are more oil fields (compared to 0.13) which is a good change, but setting them up is quite a chore for big ones, so having fewer of them with higher yield would be better.
  • MK2 personal roboport is a must, as the limit of 10 robots per roboport is not enough in later stages of the game when building bigger setups.
  • Concrete shouldn't be blue science (green only)
  • The electric furnace should be somewhat cheaper. (Especially when it is used in science packs now)
  • Shift click (ghost placement) should go through trees and rocks as blueprints with shift do.
  • Enhancement to the belt building mechanics, so building by dragging makes continuous belt.
  • Limit turret creep as it is way too powerful now (especially with personal roboport) with a turret activation time. As it makes the expansion harder, the resource growth from the center should be higher.
  • Merging items with different health. - We didn't do the item merging, as we didn't want the player lose his precious items as two 49% items would merge into one, which would prevent the player from repairing both for just a few repair. In reality, I feel that the annoyance of having 8 different stacks of laser turrets/walls in my inventory is not worth the rare possibility of losing an item or two.
  • MK2 version of boiler and steam engine. It is going to be a must with the nuclear power, but it should be usable with conventional coal power generation as well.

Finding 4 - The interactive tips and tricks is a must
There are many tricks and shortcuts in the game that make the gameplay so much easier. As we don't want to overwhelm the players with huge tutorials in the start, we need to teach them those as the game progresses. This would be done by the little interactive tutorials that would unlock only when it is relevant. Something like this:
  • You build the first locomotive → Tutorial to setup a train schedule unlocked.
  • You build a second locomotive → Tutorial of rail signals unlocked.
  • You build 50 rail signals → Tutorial of chain signals unlocked.
  • You build 10 requester chests → Tutorial that copy paste from assembler to requester chest does exactly what you need.
  • etc. etc.
  • As the tricks would be given to the player in small doses as he plays through the game and mainly when the player is probably just about to use it, we might add lots of these without the fear of overwhelming the player.

As always, if you have any comments or otherwise, please let us know on our forums.
...