Factorio - Klonan
Hello,
Denis has joined us for another month here in the office, a small overlap with Rseding who is flying back to the USA next week. With the festive season upon us, Tomas and Kovarex have both taken some time off for a vacation.

Reactor heating and boiling
As mentioned in a previous FFF, the implementation of the nuclear power will require some changes to the way the boilers currently work. Instead of heating water inside of their fluidboxes, and passing the slightly heated water along, they now output a to a seperate fluidbox. The initial result of this was a unworkable boiler, the small 1x1 size simply didn't play out to make the system intuitive enough.

So the solution was to increase the size of the boiler. The new size is 3x2, significantly larger than before, and the power output and fuel consumption had to be changed to fit this new size. This means we can say goodbye to the old 1-14-10 ratio of before. What is the new ratio? We haven't calculated it, but this is what a 0.15 set up might look like.



Kovarex has also made the first working prototype of the nuclear reactor and its associated mechanics. Each reactor has these 'heat connections', which can hookup connect with the heat pipes and boilers. Heat is than transferred through these connections, where it is used to boil the water into steam. This is all subject to change, but below is how a simple early nuclear power station could be set up.



This design is of course very inefficient, as the steam engines cannot use all the power available in the steam. Later designs would incorporate the steam turbines and cooling towers, for greater efficiency and power output. The heat pipes will also add a layer of complexity to the puzzle, while the incentive towards larger nuclear power blocks adding to the semi-fractal nature of expanding your designs.

Red desert biome
Jurek was focused these days on producing a bunch of new rocks and stones with several different sizes, some new bushes and dry trees. One of the best new improvements is the decals system, a new concept that we are testing on this new biome.

The theory behind it is that even having different randomized tile sizes for generating a terrain, the grid still is somehow noticeable there, not to mention the restrictions that tileability produces for achieving the desired result.

So we came out with the idea of using big patches (decals) that are working independently off the grid, so by using them we can get a lot of detail for the terrain, and the artists don't have to be concerned about tileability at all. As a side effect, the square grid pattern gets broken and the feeling of the terrain is much better.

In the preview we have also the new destroyed railroad, something that Vaclav is working on, he prefers not to show it yet because is not 100% finished, but it is very showable, and fits very nicely in the red desert scene.



The most important thing in this preview, is that after several experiments, we decided not to render anymore in normal-resolution from Blender. Instead we are going to render just in high-resolution and re-scale the output bitmaps to normal-resolution using a bilinear interpolation. This gives a better result than a separate render output, it is sharper and saves us quite some time and many headaches. Next for the red desert will be finding the best rules with Kuba for generating the map, and hopefully that will be all. Honestly I (Albert) can't wait for this moment of procedural fine-tuning joy.

As always, let us know your thoughts and opinion on our forum
Factorio - Klonan
Hello,
Denis has joined us for another month here in the office, a small overlap with Rseding who is flying back to the USA next week. With the festive season upon us, Tomas and Kovarex have both taken some time off for a vacation.

Reactor heating and boiling
As mentioned in a previous FFF, the implementation of the nuclear power will require some changes to the way the boilers currently work. Instead of heating water inside of their fluidboxes, and passing the slightly heated water along, they now output a to a seperate fluidbox. The initial result of this was a unworkable boiler, the small 1x1 size simply didn't play out to make the system intuitive enough.

So the solution was to increase the size of the boiler. The new size is 3x2, significantly larger than before, and the power output and fuel consumption had to be changed to fit this new size. This means we can say goodbye to the old 1-14-10 ratio of before. What is the new ratio? We haven't calculated it, but this is what a 0.15 set up might look like.



Kovarex has also made the first working prototype of the nuclear reactor and its associated mechanics. Each reactor has these 'heat connections', which can hookup connect with the heat pipes and boilers. Heat is than transferred through these connections, where it is used to boil the water into steam. This is all subject to change, but below is how a simple early nuclear power station could be set up.



This design is of course very inefficient, as the steam engines cannot use all the power available in the steam. Later designs would incorporate the steam turbines and cooling towers, for greater efficiency and power output. The heat pipes will also add a layer of complexity to the puzzle, while the incentive towards larger nuclear power blocks adding to the semi-fractal nature of expanding your designs.

Red desert biome
Jurek was focused these days on producing a bunch of new rocks and stones with several different sizes, some new bushes and dry trees. One of the best new improvements is the decals system, a new concept that we are testing on this new biome.

The theory behind it is that even having different randomized tile sizes for generating a terrain, the grid still is somehow noticeable there, not to mention the restrictions that tileability produces for achieving the desired result.

So we came out with the idea of using big patches (decals) that are working independently off the grid, so by using them we can get a lot of detail for the terrain, and the artists don't have to be concerned about tileability at all. As a side effect, the square grid pattern gets broken and the feeling of the terrain is much better.

In the preview we have also the new destroyed railroad, something that Vaclav is working on, he prefers not to show it yet because is not 100% finished, but it is very showable, and fits very nicely in the red desert scene.



The most important thing in this preview, is that after several experiments, we decided not to render anymore in normal-resolution from Blender. Instead we are going to render just in high-resolution and re-scale the output bitmaps to normal-resolution using a bilinear interpolation. This gives a better result than a separate render output, it is sharper and saves us quite some time and many headaches. Next for the red desert will be finding the best rules with Kuba for generating the map, and hopefully that will be all. Honestly I (Albert) can't wait for this moment of procedural fine-tuning joy.

As always, let us know your thoughts and opinion on our forum
Nov 29, 2016
Factorio - Klonan
Bugfixes
  • Fixed that the game could crash when a game disappeared from the matching server before its details were requested. more
  • Fixed that numpad numbers didn't work for any game controls. more
  • Fixed crash when merging forces while a player in one the force to be removed was crafting something. more
  • Fixed game would be stuck in main menu if Join Game on Steam failed for some reason.
  • Fixed possible save corruption when roboport was destroyed while robot was repairing it. more


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Nov 29, 2016
Factorio - Klonan
Bugfixes
  • Fixed that the game could crash when a game disappeared from the matching server before its details were requested. more
  • Fixed that numpad numbers didn't work for any game controls. more
  • Fixed crash when merging forces while a player in one the force to be removed was crafting something. more
  • Fixed game would be stuck in main menu if Join Game on Steam failed for some reason.
  • Fixed possible save corruption when roboport was destroyed while robot was repairing it. more


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - contact@rockpapershotgun.com (Brittany Vincent)

I’ve had a go at Factorio [official site], and even managed to automate resource mining and production. I thought I had a good grip on the game until I saw what DaveMcW was able to create. Using just the components available in the base game, he managed to build what is essentially a video stream decoder and display program. … [visit site to read more]

Factorio - Klonan
Hello,the hopefully final 0.14 version was recently released, meanwhile most of the team have been assigned their major tasks for 0.15.

Combat Revisit
One of the tasks I picked up was to work on the long overdue combat balance. We identified some of the major problem areas. The most pressing issue is that many of the guns and ammo in the game are too underwhelming for their price, and others are completely useless. One example which clearly stands out if the rocket launcher ammo, rockets and explosive rockets. They cost quite a lot in terms of resources, and the time to set up their production. In combat, they are less effective then their cheaper counterparts, such as the flamethrower.

To illustrate the problem, Twinsen worked on his highly scientific graph of the current combat system, with the X and Y axis representing the Elapsed time, and Power respectively.



After some discussion for some different approaches, without much in the way of solid agreement, it was decided that we need to do some more testing. To ease this process I wrote a small internal mod that will allow us to quickly set up some consistent conditions, and see in a reliable and semi-deterministic way, what sort of effect even the smallest changes would have.



This will hopefully help us collect some solid comparisons for how the combat changes and evolves as the game goes onward. For now I only have a shortlist of what we are trying to accomplish:
  • Nerf turret creeping
  • Generally make the mid-game combat better
  • Bring things more in line with one another in terms of damage and utility
  • Make the biters less of an irritant, but still a threat
Community feedback will be really important for us on this topic, so please let us know your thoughts.

Steam award nominations
Steam has recently announced their Steam award nominations , and there are several categories you can nominate any game for. For example the "Just 5 more minutes" is for the games that keep you playing long long into the night. We think it is a really great idea, allowing the steam community to nominate titles in this way, so be sure to vote for your favorite games.

Community Spotlight
We had to include this week the absolutely spectacular combinator display by DaveMcW: https://youtu.be/mgfwwqwxdxY
If you like to read more about his creation, you can read his thread on the forum, or even read the recent PC gamer article about it. This player also proved to be a good chance to test the circuit network optimizations in 0.15, and in comparison to 0.14, it runs about 18x faster.

As always, let us know your thoughts and opinion on our forum
Factorio - Klonan
Hello,the hopefully final 0.14 version was recently released, meanwhile most of the team have been assigned their major tasks for 0.15.

Combat Revisit
One of the tasks I picked up was to work on the long overdue combat balance. We identified some of the major problem areas. The most pressing issue is that many of the guns and ammo in the game are too underwhelming for their price, and others are completely useless. One example which clearly stands out if the rocket launcher ammo, rockets and explosive rockets. They cost quite a lot in terms of resources, and the time to set up their production. In combat, they are less effective then their cheaper counterparts, such as the flamethrower.

To illustrate the problem, Twinsen worked on his highly scientific graph of the current combat system, with the X and Y axis representing the Elapsed time, and Power respectively.



After some discussion for some different approaches, without much in the way of solid agreement, it was decided that we need to do some more testing. To ease this process I wrote a small internal mod that will allow us to quickly set up some consistent conditions, and see in a reliable and semi-deterministic way, what sort of effect even the smallest changes would have.



This will hopefully help us collect some solid comparisons for how the combat changes and evolves as the game goes onward. For now I only have a shortlist of what we are trying to accomplish:
  • Nerf turret creeping
  • Generally make the mid-game combat better
  • Bring things more in line with one another in terms of damage and utility
  • Make the biters less of an irritant, but still a threat
Community feedback will be really important for us on this topic, so please let us know your thoughts.

Steam award nominations
Steam has recently announced their Steam award nominations , and there are several categories you can nominate any game for. For example the "Just 5 more minutes" is for the games that keep you playing long long into the night. We think it is a really great idea, allowing the steam community to nominate titles in this way, so be sure to vote for your favorite games.

Community Spotlight
We had to include this week the absolutely spectacular combinator display by DaveMcW: https://youtu.be/mgfwwqwxdxY
If you like to read more about his creation, you can read his thread on the forum, or even read the recent PC gamer article about it. This player also proved to be a good chance to test the circuit network optimizations in 0.15, and in comparison to 0.14, it runs about 18x faster.

As always, let us know your thoughts and opinion on our forum
Factorio - Klonan
Mod settings
Right now when you want to customize a particular mod you have to:
  1. Know what folder the mods are stored on your computer
  2. Unzip the mod
  3. Figure out what line of which file has the thing you want to change
  4. Save and optionally re-zip the mod
  5. Hope what you changed is compatible with the way the rest of the mod works
The game also forces everyone playing on the same multiplayer session to have identical mod files so any changes you've made make it impossible for you to join others unless they also have made those changes. This also makes it difficult for mod developers to troubleshoot bug reports because they don't know what you might have changed.

This is obviously not so great and I want to address the main problem: there's no good way for mod developers to give users any portable way to configure their mods.

To fix this we're going to add the ability for mods to define settings that will be presented like our in-game options menu now under a new section "options -> mods". This will let mods give some basic information about what kind of setting they have and we can present it to the player in a (hopefully) nice GUI with verification and feedback about why what they've entered isn't valid (if it's not valid) as well as the ability to change them runtime should the particular setting allow it.

We can then sync these settings on joining multiplayer sessions (or not should you not want your settings to carry between games) and everything will just work.

Optimizations
My (Rseding91) favorite tasks are still optimizations. I can sit for hours (sometimes all day) working on improving some section of the code and not get bored. 0.12 saw a major improvement in performance and during 0.13 development there were a few edge case slowdowns that got fixed but nothing much was done during 0.14 development. For 0.15 I've started looking again at performance and not at the obvious slow areas. Mostly because there aren't any obvious huge slow areas (or we already know that 25,000 belts tend to be slow) but all of the surrounding code that gets run each tick. Honza (another Factorio developer) said it best to me the other day: "I think our performance issues are death by a thousand cuts." meaning there's no one thing that's particularly slow but everything is just a little bit slow.

I took a few larger save files and started looking at them and every time I would re-run the profiler some small piece of code would show up taking 1-2% of the time. I'd spend 20~ minutes re-writing it and then it takes < 0.1% of the time (not accurately measurable by the profiler). I did that for 3 days and when I finished with the saves I had the end result was almost a 2x speedup over 0.14. Our test suite was invaluable during all of this to make sure I didn't break anything in the name of performance.

The great part about these "micro optimizations" is that they are almost never specific to one thing but are shared pieces of code so improvements to them gives general gains across the entire game. The save files I was testing with that would run around 30 UPS in 0.14 are now running between 55 and 60 UPS in 0.15. There are still many more areas like this that can be addressed so I'm always interested in unique save files that stress different parts of the game.

Rendering test
Albert has spent some time this past week making a test render to see how the new train models will hold up in higher resolution settings, and has put together this UHD render of a simple train scene.



While the final render may look very pretty, it only has a minimal amount of post-processing applied, instead relying on the setup of the scene and the specifics of the render to really show off the latest models.

As always, let us know what you think on our forums
Factorio - Klonan
Mod settings
Right now when you want to customize a particular mod you have to:
  1. Know what folder the mods are stored on your computer
  2. Unzip the mod
  3. Figure out what line of which file has the thing you want to change
  4. Save and optionally re-zip the mod
  5. Hope what you changed is compatible with the way the rest of the mod works
The game also forces everyone playing on the same multiplayer session to have identical mod files so any changes you've made make it impossible for you to join others unless they also have made those changes. This also makes it difficult for mod developers to troubleshoot bug reports because they don't know what you might have changed.

This is obviously not so great and I want to address the main problem: there's no good way for mod developers to give users any portable way to configure their mods.

To fix this we're going to add the ability for mods to define settings that will be presented like our in-game options menu now under a new section "options -> mods". This will let mods give some basic information about what kind of setting they have and we can present it to the player in a (hopefully) nice GUI with verification and feedback about why what they've entered isn't valid (if it's not valid) as well as the ability to change them runtime should the particular setting allow it.

We can then sync these settings on joining multiplayer sessions (or not should you not want your settings to carry between games) and everything will just work.

Optimizations
My (Rseding91) favorite tasks are still optimizations. I can sit for hours (sometimes all day) working on improving some section of the code and not get bored. 0.12 saw a major improvement in performance and during 0.13 development there were a few edge case slowdowns that got fixed but nothing much was done during 0.14 development. For 0.15 I've started looking again at performance and not at the obvious slow areas. Mostly because there aren't any obvious huge slow areas (or we already know that 25,000 belts tend to be slow) but all of the surrounding code that gets run each tick. Honza (another Factorio developer) said it best to me the other day: "I think our performance issues are death by a thousand cuts." meaning there's no one thing that's particularly slow but everything is just a little bit slow.

I took a few larger save files and started looking at them and every time I would re-run the profiler some small piece of code would show up taking 1-2% of the time. I'd spend 20~ minutes re-writing it and then it takes < 0.1% of the time (not accurately measurable by the profiler). I did that for 3 days and when I finished with the saves I had the end result was almost a 2x speedup over 0.14. Our test suite was invaluable during all of this to make sure I didn't break anything in the name of performance.

The great part about these "micro optimizations" is that they are almost never specific to one thing but are shared pieces of code so improvements to them gives general gains across the entire game. The save files I was testing with that would run around 30 UPS in 0.14 are now running between 55 and 60 UPS in 0.15. There are still many more areas like this that can be addressed so I'm always interested in unique save files that stress different parts of the game.

Rendering test
Albert has spent some time this past week making a test render to see how the new train models will hold up in higher resolution settings, and has put together this UHD render of a simple train scene.



While the final render may look very pretty, it only has a minimal amount of post-processing applied, instead relying on the setup of the scene and the specifics of the render to really show off the latest models.

As always, let us know what you think on our forums
Factorio - Klonan
Hello!

The planned release date of 0.15
There are many things we want to have finished for 0.15, so the estimate isn't precise. The plan is to have approximately 3 months to implement all the planned changes, so it could be expected around february 2017.

The optimisations
The decoratives optimisations that were mentioned in the fff-157 are finished and working well. Not only the save file has been reduced (46Mb to 25 Mb on my map), but the memory footprint and overall performance is better. The reason of the performance improvement is, that once decorative isn't regular entity, it doesn't need to be iterated over when doing area based entity search (typically for collision checks) and also the memory fragmentation is not that bad.

Rseding is doing a lot of small optimisations for 0.15. Each of them is usually not that big, but the overall gain starts to be noticeable. We will cover them in more details in the next fff, but I expect that the 0.15 will provide a big performance boost.

Nuclear power
We created the basic specification of the nuclear power this week, so we can start working on it.

The plan is to implement the nuclear power in a way, that it is almost always more efficient to make bigger and more complex setup compared to just copy pasting the "standard nuclear power blueprint" over and over. This is the list of changes and additions we are planning.

1. Water and steam
To make the other changes reasonable, we had to go back and change how the basic boiler->steam engine power generation works.

These are the changes of rules:
  • Water above 100 degrees is considered steam.
  • Steam engines only work on steam, not hot water
  • Boilers only accept water, not steam.

This is how the boiler works now:



In 0.15, it will have extra output for steam at fixed temperature:


This way, the basic setups will not change that much, as instead of this:



The players could do something like this:



2. Steam turbine
Apart from being much more powerful version of the steam engine, the steam turbine will also work differently.
The current (basic) steam engine uses the fluid it gets to generate electricity and consumes it.
The steam turbine will just cool the steam down. Lets say from 500°C to 120°C. But the result will still be steam.
You can either send it to the regular steam engine to get rid of it, or if you want to be more efficient, you can send it back to the boilers.
But the boilers only accept water, not steam. This is where the next piece will be used.

3. Cooling tower
Cooling tower mainly looks good and adds the iconic feel of power plant, but it will also have the same purpose in factorio as in real life. It accepts steam, and cools it down enough to make water out of it again, so it can be used in boilers. The main advantage is, that heating 95°C water back to steam requires much less energy compared to heating the 25°C water you get from the lake.

4. The nuclear reactor
All the previous changes are usable also with the regular coal boilers and provide more efficient and powerful way to use the heating power. The nuclear reactor is just a more powerful way to generate heat.

The nuclear reactor will process the nuclear fuel (Its processing isn't specified yet) and generate heat.
The reactor will have several levels of production, the more active, the more energy it does and the more efficient it is. The problem is, that changing between the production levels won't be instant, so trying it shut down too late might not be enough to prevent overheating and explosion ... a big one. It will be certainly possible to make not so efficient but safe setups that will be simple to build, but the most efficient reactor will require circuit wiring that controls its production levels based on the energy storage capacities, heat and other things. We are just trying to force easy to learn hard to master again.

The additional feature of reactors is, that two reactors next to each other connect. (It should be obvious, but before you ask in the comments, no this is not going to be the final look of the reactor ^^)



Reactors support efficiency of the neighbours, so this way the production can be increased even more, but the more reactor units are connected together, the harder it is to transfer away the heat concentrated on a small place fast enough.

5. Heat pipes
The heat pipes will be used to transfer the heat from the reactors to the boilers. The heat pipes will have to branch a lot to connect to enough of boilers as the efficiency of heat transfer decreases with distance quite fast.

I was even considering adding option that is not realistic (at least with the current technology), but it could add a lot of interesting gameplay possibilities. Imagine that you could store the heat in some kind of item. Maybe some kind of special metal with huge heat capacity. That would mean, that you could use the logistics to transfer the heat from the central reactor place even faster using our logistics possibilities. I like the idea that the biggest possible reactor could be only done by having high capacity train stations all around transferring the heat away in a huge quantities.

Looking for 3d artist
We are starting the last sprint for finishing factorio 1.0 and this requires support of the graphics department so we are looking for an artist. The work is not simple, so if you are not into complicated 3d stuff, Blender, tilesets, complex pipeline with scripting, postprocessing with After Effects, you wouldn't like this position. Not the mention the understanding of aesthetics and geometrical tricks is also required. If you think your profile is fitting enough don't hesitate to send us your portfolio.

And as always, stop by at our forums and let us know what you think.
...