1. Factorio
  2. News

Factorio News

Friday Facts #357 - Nuke

Read this post on our website.

Blueprint library finishing touches (kovarex)

At the time of writing the Friday Facts last week, not all of the planned changes were finished, here is the finalisation, so here we go.

[h3]Persistent library contents[/h3]
The problem is old. You play a modded game and have your blueprints in the library. Then, you decide to put the mods aside for a reason (to join a MP game, or just try a different modset). At that moment, if we didn't handle it in a special way, all your mod-related content in your blueprint library would be removed.

We solved the main part of the problem already quite some time ago. But with the upcoming support of other tools in the blueprint library it had to be extended.
Special system was created for these things:
  • The preview icons of the blueprint tools
  • The filters of the deconstruction planner
  • The upgrade specification of the upgrade planner

If the related ID isn't available any more while loading a game. Instead of just plainly removing it, it is marked as unknown and the original textual representation of the ID is stored in a special way.

The tool can still be normally used. Clearing the "unknowns" removes the information about the slot for good, but if you don't clear them it stays there.







Once you load the appropriate mods again, the IDs are restored.



[h3]Upgrades[/h3]
The UX of upgrading blueprints/books with the upgrade planner was meant to be provisional, but somehow, it remained in use for quite some time.

Currently, the only way to use it is to click the button with an upgrade planner in your cursor, which is sometimes quite annoying, as you don't even have access to your inventory or Blueprint library when you want to click the button, so you have to close the window, find the upgrade planner you want to use, open the window with the upgrade planner already in cursor, and then use it.

So this window was created. When you click the upgrade window, the game searches all the upgrade planners available to you (inventory and blueprint library) and lets you select which one to apply, and always offering the default upgrade planner.



As you probably noticed from the picture, I couldn't restrain myself from adding a little feature. Upgrade planners can be now used both ways: as upgrade with left click and downgrade with right click. It obviously works also when upgrading in the world.

The problem is, that you can already do 3 different kind of things with the tool, and there are generally quite a lot of people that don't know about basic things you can do, like cancelling a deconstruction orders or force-building a blueprint. Because of that, we added instructions to every tool so the users won't miss it.



[h3]Snapping[/h3]
This is a great example of a feature, that I expected to be done quickly and easily... but you know how it goes.

The first problem is related to build and drag. Most of the blueprints don't work that well when you just build and drag them.

https://cdn.factorio.com/assets/img/blog/fff-357-dragging-blueprint.mp4

The second problem is that blueprints are often designed to work in a grid, but there is no way to enforce it. Either you have to build slowly and cautiously, or you misclick often. And with the new feature of building in map, the problem was just elevated. This is what the second checkbox is for, it forces the blueprint to be built in a grid aligned to the map center. To ensure, that the user can configure individual blueprints in a way that they would match perfectly, the relative position of the blueprint to the grid can be configured by moving the red flag.



https://cdn.factorio.com/assets/img/blog/fff-357-blueprint-snapping.mp4
Thanks to Boskid, our beloved tester, a big pile of bugs had been already identified and fixed, so there is a chance of the BP library being released next week.

Story of the nuke (Dominik, Posila, Ernestas, V453000)

Since more than a year ago Dominik has been updating and improving all kinds of visual effects in the game - particles, splashes, explosions and so on. During most of the time we’ve also been getting valid questions - "But what about the nuke?".



It was the plan from the start that the explosion of the atomic bomb would come last. Not because it’s the lowest priority, quite the opposite - however it’s also by far the most challenging effect to create, both on the technical and graphical side, so we kept improving how particles/explosions work, and experimenting with graphics for effects - essentially practicing and preparing ground for the nuke.

The most major challenge visually is the sheer size of the explosion. Normal explosions already benefited greatly from more flexible and various scorch marks and particles, and improving the explosion sprites themselves, but that’s not enough here.

The atomic bomb has such a giant explosion radius that we simply cannot (mostly because of VRAM requirements) create an explosion sprite that would cover all of it.

https://cdn.factorio.com/assets/img/blog/fff-357-explosion-solo.mp4

We’ve tried to make an explosion as large as we could fit in a reasonable spritesheet, and limit its frame count as much as we could as well. Just like we did in the old days when VRAM was much more of a concern.

This mushroom cloud does not cover nearly enough though, so for sure some part of the effect needs to be procedural.

The VRAM is not the only problem though, the biggest challenge for the visuals is yet again the perspective of square tiles, where visually the game looks like the player is viewing it at 45° angle, but everything is presented as if viewed top down. Both of these things are intentional and graphics get the shorter end of the stick when it comes to compensating for this dichotomy (FFF-133).

After discussing many really different approaches we could take, we decided to create a combination of a central spritesheet, with a shockwave of smokes being moved outward from the center.

https://cdn.factorio.com/assets/img/blog/fff-357-circular-damage.mp4

We tried to make graphics hide this perspective problem as always, and made the explosion move slower vertically, resulting in a visually correct ellipse.

As you can see in the animation above, this exposes the problem of entities dying in the vertical direction before the waves get to them.

So we made the damage apply slower in the vertical direction as well. This does mean you can minmax and run away vertically when shooting the atomic bomb under your feet and you will have a better chance of survival, but that shouldn’t be too much of an issue

We’ve also added a secondary damage radius, so it’s more forgiving if you’re just barely getting hit while running away.

https://cdn.factorio.com/assets/img/blog/fff-357-random-improved.mp4

For further improvement, we’ve added a ton of random elements to how the particles move and when they disappear which again makes the edge of the explosion less obvious, but also helps diminish the crescent-like shapes at the end.

The explosion is so large that even creating a scorch mark of an appropriate size for it is a problem, so Ernestas created a scorch mark as big as we could afford, and added a whole new tileset to the ground zero, with decoratives to smooth the edges out a bit.



The atomic explosion also destroys everything in a small radius at the center (killed entities don’t spawn corpses, decoratives are destroyed and cliffs disappear), which makes the explosion feel a lot more powerful and impactful.The nuclear tiles remain there forever and are visible from the map view as they have their own map colour, though you can place concrete over them to hide the evidence of your actions.

https://cdn.factorio.com/assets/img/blog/fff-357-final-nuke.mp4

To complete the effect, we’ve added a brief overbright of the whole screen based on how far the player’s screen is from the explosion, and added sound effects which also react to distance from the explosion.

You will be able to enjoy becoming death, the destroyers of worlds, in the new fashion on 14th August, in 1.0.

Friday Facts #356 - Blueprint library for real

Read this post on our website.

kovarex - the story of motivation

This wall of text is about my personal struggle with Factorio and life, feel free to skip to the next subject if you wish to see the actual Factorio content.

Since two years ago, I started to have these problems, it was harder and harder to force myself to work on the game and I didn't enjoy it that much. So I was looking for a way to have a break.

I know exactly when I disappeared from the Factorio development, it was August 26, 2019, the release date of World of Warcraft classic. The planned 3 weeks of playing kind of extended to be more like 3 months. One of the big reasons was, that I already had 60 level priest when I realized that tanks are so hard to come by, so I re-rolled a tank learned how to play it and levelled it to 60. It was a great fun to finish all the dungeon content and acquire the pre-bis (pre raid best in slot). This all just to find out tanks are far from a hot commodity when it comes to raiding, where you need just a few in the 40 people raid.

At this point, I thought, that I would come back to work with full power, but I just couldn't. When I tried to work, I had this strong, almost physical feeling of disgust, that was impossible to overcome. It was clear to me at this point, this is the the typical burnout situation. It is far from surprising after that many years of working that hard. The attempts to get to work were mainly motivated by guilt, and I knew well, that it is hardly a good motivation for anything. Trying to overcome it by sheer willpower would just make it worse, so I just stayed distant. The team was still working on its own and making good progress, so I was taking advantage of it and continued to have a break and spent more time with my family and on leisure activities.

As the situation was not getting that much better, there were even proposals of selling the company and getting rid of the responsibility for good. For most people, this would sound like a rational choice, but I was far from open to doing that. I generally don't like to do something just because it is the norm. The norm is to try to always keep growing exponentially, getting investors, expanding, getting more people, never stopping, never resting until you are the biggest and most horrible company, or you die trying. This approach dictates, that once you can't expand the enterprise, you need to sell it so others can grow it. And I don't like it. I didn't forget at all why we started working on this game. We wanted to make the game(s) that we couldn't find, and we wanted to have fun doing so. We wanted the game to be primarily fun for us, not for a focus group that has the most financial potential.

So, even if we faced the hypothetical decision : Either we sell it to a big publisher, or we shutdown the studio, I choose the latter, because you can't put a price tag on the fact, that we still own the game. In the latter case, we could come back to it any time when we feel like the time is right, instead of having to watch it being milked as micro transaction filled cashgrab by some company.

So, this was my lowest point personally I was generally not feeling well, and was lost in searching for purpose. One of the biggest reasons that I didn't feel well was, that I was becoming more and more lazy. When you don't have to overcome daily obstacles and annoyances, you become more and more lazy, until even the most basic things start to be huge pain in the ass, and you don't generally feel well, this is where I was.

In the meantime, I was occasionally playing some simple games with my 4.5 year old son (Earn to die and Into space 2). I was trying to find some nice cool games that we could play together, but I didn't find anything, feel free to give me suggestions in the comments. So I figured, that he could actually try to play Factorio.

I started a peaceful game for him, showed him how to move around, mine and craft basic stuff, and let him play. He was just running around and having a blast that he can mine trees and explore. Some other day, I joined the game, and built some small factory so basic technologies are unlocked and he could play around with that. Eventually he set himself a project to create a wall around the entire factory. He was focused and he kept at it, and 3 days later he came at me, and showed it to me, and he was so proud. Some time later, he played alone for a while, and than he showed me some very basic mining/smelting setups. It was very weird, but it worked. This is when I realised how great Factorio is for children, you can scale the skillset from very very basic up to almost infinity. He can't read, he didn't know numbers greater than 4, and yet he managed to play, and in a few days, he kind of recognized numbers up to 10 without even realizing. When I showed him how construction robots and personal requests work, he was super enthusiastic and talked about construction robots to everyone he met :).

Once he asked me "Father, what is this thing in the list of things I can order?" ... "This is atomic bomb" .. "Oh, I want to order it" .. "No, we don't even have it researched" .. "But, why is it in the list then, it doesn't make sense" ... "Hmm, you are right, it doesn't, I might actually fix that." So I opened Factorio source code after a long time, and made the change, that the filter and logistic request selections didn't contained things yet to be researched (unless you force-unlock it in the settings). I made a change to Factorio, and it felt good, and I started to want more, this is how I got from the lowest point.

I wasn't yet prepared for big projects mentally, so I did few other small tweaks, and I started to visit the office occasionally, which gave me more and more energy, I was not working because of guilt, I was working because of joy again. This is when I decided to face the big elephant in the room: the blueprint library. I was scared to approach such a big project in my previous state, but now I felt brave enough. I started working on it and I was able to work in full-power mode again, the work went forward fast. I had to overcome a lot of annoying obstacles on the way, which had positive effect on my overall laziness very fast. As the new BP library started to shape up, I started to feel something almost forgotten, I was proud of what I was doing, yay :)

The story of the Blueprint

The story of blueprint and the blueprint library development is quite long and convoluted, we mentioned it in 12 FFF already and it wasn't always quite right. But I believe, that we are getting to the final stage with the current rework. Small tweaks and improvements can be always done, but the general feeling is like "Yea, this works, finally".

[h3]First mention[/h3]
The first mention of a blueprint (apart the blueprinting mod) was in FFF-16, 6 and half years ago!

[h3]First blueprint implementation (0.9)[/h3]
Blueprints were obviously a great upgrade when you compare it to the state of just not having them. But everything was very plain and primitive from today's perspective. You had to actually craft the blueprint (for one advanced circuit) and the setup window was not the greatest:



Note that the confirm button was the blueprint button. The exact example of us doing GUI in the logical way but not an intuitive way.There was no way to change the blueprint once it was set up, you could only clear it (for the price of one electronic circuit).

[h3]First improvement of the blueprint management (0.13)[/h3]
Blueprints started to be important, so we added some very basic way to edit them and a way to include tiles and modules. (FFF-131)



Also, the blueprint book was introduced (FFF-108, it cost 15 advanced circuits and could hold only blueprints directly.



[h3]First plan of blueprint library (0.15)[/h3]
The fact, that you didn't have a way to backup your blueprints and you would just plainly loose them when you died, or moved to a different game was quite harsh, so we started to work on the blueprint library. Our first mention of it was in the FFF-156.

[h3]First implementation (0.15)[/h3]
The first implementation was pretty rough and first shown in the FFF-161



Note, that the play button was the way to export the blueprint into your game as an item, so you can put it into your inventory and use it.

[h3]First redesign[/h3]
We, mainly Oxyd (FFF-170), quickly realized that this needs to be more intuitive, so the way it was exported was streamlined, you just drag and drop into your inventory.

https://cdn.factorio.com/assets/img/blog/fff-170-drag.gif

Another way of exporting was done secretly: When you held a blueprint record while closing the library window. It was seemingly useful as you could just grab it from the library and build, but once you were done and pressed Q to clean the cursor, the item was just spilled into your inventory. It was common at these times, that your inventory was slowly getting cluttered with random blueprints and you had to do a cleanup from time to time.

The Blueprint editing window was also improved:



[h3]0.16 Blueprint preview was updated[/h3]
It was "only" about connecting the belt/pipe/wall entities, but it added a lot to the understandability (FFF-211).



[h3]The endless discussion phase[/h3]
We knew there were still a lot of problems with the blueprint library and we were desperately trying to figure out how to solve them in various different crazy ways (FFF-249). But a week later, we agreed on a relatively simple solution (FFF-250 and FFF-255): From the player perspective, blueprints are always just items,and blueprint library is just something like a persistent chest. Quickbar, movements, stack transfers, everything works exactly like with items, and the BP library technical magic is done under the hood.

After some time (32 weeks actually), we presented a UI mockup for the planned blueprint library FFF-282.This was the big plan, but since 0.17 release was approaching and there were just too many other things to do, we postponed it.

[h3]0.17 release - More tools[/h3]
In this version we added a lot of tools:
  • Upgrade planner
  • Copy/cut paste (with history)
  • Undo


And we also extended the amount of things blueprint can handle -mainly trains (FFF-263):



We just made a few small tweaks for 0,17, to make the usage of blueprints less of a pain, mainly the ability to make a quickbar reference directly to the blueprint library. Using it created a new item that is copy of the BP library record, so you can build from it and pressing Q to clean the cursor just deleted the blueprint instead of cluttering the inventory.

But blueprint library still didn't get any real improvement.

[h3]Current blueprint library[/h3]
In 0.18 release, I improved the blueprint setup window so it matches our new GUI style:



But the blueprint library still didn't get any real improvement.

New blueprint library

So, if this buildup led to nothing, it would be pretty lame so as you would expect the blueprint library is now finally getting a real improvement.

[h3]1) The looks[/h3]
It looks nice now and mainly fits the style of the rest of the game:



[h3]2) The manipulation[/h3]
As it was agreed 2 years ago (fuck), the blueprints in the blueprint library are manipulated as items in every way. Twinsen forced me to agree on this way, and I wasn't that convinced at that time, but when I started to implement it, it was instantly clear, that this is way better than any other proposal. You don't have to learn anything new and just manipulate the objects exactly the same way you are used to and it just feels right.

There is quite something happening in the background when transferring Blueprints, as they are still very different types of objects in the inventory and in the blueprint library, but the user is now completely shielded from this.

[h3]3) The unification[/h3]
All the related UI was unified to look the same, in current version for example, opening a blueprint book as an item looks very different compared to opening it in the blueprint library, and it even has different features.

[h3]4) The identification[/h3]
Now we get to the new features, first of all, every blueprint tool has editable name, description and icons.For Blueprint book, upgrade planner and deconstruction planner, these icons are optional, but overwrite the dynamic icons shown for them. This might be mainly useful for books that you want to just have the same preview regardless of currently selected blueprint.

When the names and descriptions become more important to the user, he can switch to the list view.



Small thing that helps is that the upgrade planner now updates also related icons of the blueprints and books

https://cdn.factorio.com/assets/img/blog/fff-356-upgrade-book.mp4

[h3]5) The books in books[/h3]
It is something we wanted for a long time, and it was highly requested, so now, it is possible. The maximum depth is set to 6, mainly to prevent the UI from getting out of hand.



It is just logical, that iterating through the book contents works hierarchically now:

https://cdn.factorio.com/assets/img/blog/fff-356-hierarchal-scrolling.mp4

[h3]6) The tools in books and library[/h3]
Since both the upgrade planner and the deconstruction planner are also kind of virtual and configurable, it just makes sense to allow them in books and the blueprint library. The preview of the book is changing when you switch between different types of objects.

https://cdn.factorio.com/assets/img/blog/fff-356-tools-in-books.mp4

[h3]7) The copy[/h3]
Since blueprint manipulation is now always moving the blueprint around, never making a copy (apart the export-import workaround), we really needed this feature to make an explicit copy. The nice touch is that the copy is made based on the current unconfirmed edit of the blueprint, so you can make slightly modified versions of it quite fast.

https://cdn.factorio.com/assets/img/blog/fff-356-copy.mp4

[h3]8) The reassign[/h3]
My personally most wanted feature. You can change the contents of the blueprints while the name, description, icons, quickbar links and positioning is preserved.

https://cdn.factorio.com/assets/img/blog/fff-356-reassign.mp4

[h3] Building in map[/h3]
Rseding had a great timing with his feature of building blueprints directly in the game map.
https://cdn.factorio.com/assets/img/blog/fff-356-blueprint-in-map.mp4

These changes are being finalised and tested, so they should be available in the upcoming weeks just in time before 1.0.

Version 0.18.36 released

Gui


  • New high resolution tips and tricks images.
  • Visual improvements to the tips and tricks GUI and the rocket silo stats GUI.
Graphics


  • New remnants for assembling machines and land mine.
  • New visual effects for slowdown capsule.
Changes


  • Changed sorting order of items: Same items but without data are first. Descending order of Health/Ammo/Durability.
  • Units are now affected by the 'movement_slow_down_factor' defined in their attack parameters.
  • Slowdown capsules slowdown factor increased from 50% to 75%.
Sounds


  • Updated sounds for assembling machines 1, 2, and 3.
  • New sounds for mining and eating fish.
  • New sound for spitter spawner, repairing robots.
  • New sound for throwing capsules, grenades, combat robots.
  • Various levels adjusted including new default sound settings.
Bugfixes


  • Fixed that force.reset() wouldn't clear saved research progress. more
  • Fixed disabling, renaming or destroying unreachable train stop would not cause repath of trains in NO_PATH to go to next station.
  • Fixed bonuses GUI showing duplicate entries if it was open when a research finished. more
  • Fixed auto-launch would send rocket when there were still empty slots for payload. more
  • Fixed corruption related to sorting module inventories.
  • Fixed logistic robots would keep trying to feed chest which has item stacks over the stack size. more
  • Fixed entities with wire rendering disabled in entity prototype would still have wires rendered in screenshots. more
  • Fixed upgrading mining drill would disable input fluid box if resource was depleted. more
  • Fixed pause game control input was not working when in multiplayer. more
  • Fixed that the RCON interface would sometimes send an extra empty reply. more
  • Fixed that groups of enemies wouldn't be distracted by a player in a car or tank. more
  • Fixed tank icon having accidental border. more
Optimizations


  • Improved performance of sorting inventories.
  • Improved performance of inventory highlights.
Scripting


  • Added on_player_flushed_fluid event.
  • Added LuaPlayer::hand_location. more


You can get experimental releases by selecting the '0.18.x' beta branch under Factorio's properties in Steam.

Friday Facts #355 - High resolution updates

Read this post on our website.

We've been updating, reworking and redesigning many graphics, and the majority of entities have had high resolution for a while now. With 1.0 we're trying to be as "complete" as feasible.

Slowdown effect

As one of the less used items in the game, the slowdown capsule got kind of forgotten.

The slowdown capsule has multiple parts - the item icon, the effect, and the animated sticker that shows on slowed enemies.

We've already updated the item icon which sets some expectation for the effect and sticker, like what color should it have. The poison capsule has already taken blue, and green or brown would be very similar to rocket or nuclear fuel in the icon, so we chose orange.

https://cdn.factorio.com/assets/img/blog/fff-355-slowdown-sticker.mp4

It makes a lot of sense to also use the same graphics with different tints for the acid sticker from spitters/worms.

https://cdn.factorio.com/assets/img/blog/fff-355-acid-sticker.mp4

In a way the slowdown capsule is doing the same to them, as they are doing to you, except the acid damage. Take that, nature.

Crude oil resource

Resources got high resolution sprites for 0.15, but we didn't have time for the crude oil spills. The new ones are very similar.



Assembling machine remnants

We've been waiting with remnants for assembling machines as they were planned to get a redesign. It doesn't seem likely we'll be able to finish the assembling machine redesign before 1.0, so we've finally given them their own specific remnants at least.



Land mine remnants

The last missing remnant was the land mine, which didn't have high resolution until the icon update, so here it is.



Conclusion

With version 0.15.0 we released the first batch of high resolution graphics for many entities. In FFF-187 which announced 0.15.0 experimental and presented all of the new graphics, we stated:

    "During 0.15 stabilization we will be adding more high resolution graphics, with the aim to do everything. Let's see how that goes, but seeing what we already have, we are confident we can get it done sooner or later."


You as readers of this periodical might have already heard the "stuff takes longer than expected" a few times, so "the sooner or later" is now, 3.5 years from then.

There are still more graphical updates coming in the following few weeks, but this is it for the high resolution updates.

Version 0.18.35 released

Graphics


  • High resolution power switch graphics.
Bugfixes


  • Entities of other forces that are mined and brought back by undo are now set to have player force upon the undo application. more
  • Fixed a desync when unit group radius settings are changed.
  • Fixed that the final health value in the entity damaged event was wrong. more
  • Fixed a performance problem with the production stats GUI. more
  • Fixed the double slider with discrete values functionality. more
  • Fix 'Train stop names' checkbox showing tooltip with no locale entry. more
  • Fixed rendering of pipe pictures and covers when fluid box compound covers some fluid boxes without pipe pictures or covers. more
Gui


  • Visual improvements to the bonuses GUI.
  • Visual improvements to the tutorial list GUI.
Minor Features


  • Gps tags are now surface aware.
Scripting


  • Added on_player_clicked_gps_tag event.


You can get experimental releases by selecting the '0.18.x' beta branch under Factorio's properties in Steam.