Electric mining drill graphics now fill bounding box more accurately.
Bugfixes
Fixed hovering over unit that was going toward an entity would crash if the entity was destroyed. more
Fixed crashes/desyncs related to various different operations on a shelf of a player that just joined, and his blueprint shelf meta-data hasn't be synchronized yet.
Fixed crashes/desyncs related to swapping item with a blueprint/book in the blueprint library that is not yet fully transferred into the game. more
Fixed electric mining drill circuit connection graphics.
Fixed crash when picking up something using the quickbar while setting up a blueprint from the inventory.
Fixed that blueprint book GUI was scrolling to the top whenever something was done. more
You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
With 1.0 approaching, we want to ensure that the day of the launch goes as smoothly as possible, and shows the game in the best light. Something that would really work against that would be if the update broke a bunch of mods and disgruntled all of our most dedicated players. So we are making efforts to ensure that mods that work in 0.18, will work without any update needed in 1.0.
Theoretically this isn't so difficult, as the 0.18 release structure has meant that mods have maintained compatibility with all the latest changes, and in essence 1.0 will just be a small update of 0.18. However it does take a bit of special handling:
1.0 will allow mods marked for 0.18 to load.
The mod portal will show 0.18 mods when browsing in 1.0.
Avoiding breaking mods also means we need to be very careful with changing anything, even something as simple as renaming a sprite can break dozens of mods. I think we never realised how easy it is to break mods before we started this new release structure. Big apologies and big thanks to all the modders who stuck with us through these breakages.
We hope that what this effort means, is that on the day of 1.0, players new and old alike can login to the mod portal and have a very large catalog of mods they can enjoy right away, and that the modders can relax and enjoy the game instead of worrying about updating all their work. However, we cannot say 100% that all mods will work, it is possible one of the features in 1.0 (like the new nuke or alien decoratives) will break some mods.
Mining drill redesign revisit (Ernestas, V453000)
In FFF-350 we presented the new electric mining drill graphics, and released them in 0.18.31 shortly after. However, we hadn't realized soon enough that it had some issues...
The most obvious one is the tile overlapping. All of our graphics try to find a balance between overlapping the tile a lot to be aesthetically nicer, and not overlapping the tile at all to be technically correct and readable.
With the electric mining drill we got bolder than with other entities, and overlapped the tile more. This problem got massively strengthened by the fact that the mining drill outputs directly to a belt, so it doesn't even have the typical gap where inserters usually are.
The secondary but related issue would be that the entity is no longer as recognizable as before. We attribute that mostly to the new height that the drill has, as it gets a bit overcomplicated, and not as clear what the shape of the entity is.
Originally the main reason to add the higher structure was because we wanted to create a much more complicated miner movement (both horizontally and vertically), and to fit pipe connections easily. However the miner movement was too complicated so we didn't do it, and the pipe connections are kind of an edge case.
We could have addressed just the issue of overlapping the tile above the mining drill, but that would already cost some amount of time and we felt like we could go one step further.
It was tight in time, which is why we're presenting it now, but we decided to move the whole structure down, so the mining mechanism would move on ground-based rails. After a lot of effort put into moving things, redesigning parts of the drill, and reworking the pipe connections, Ernestas has arrived to the new version.
The electric mining drill is one of few entities that the player sees from the very first stages of the game, all the way to the end. Long story short, it's a really important entity so we wanted to get it right.
We were happy with the concept of the mining drill redesign for the "aggressive ground penetration" against the "gentle harvesting" of the original, but we traded away a few of the good parts about the old mining drill graphics, like clarity and identifiability. This revisit tries to fix that, and we believe now it's good.
The new mining drill graphics have been released with 0.18.44 (today). As it could break some mods, we wanted to push the new graphics as soon as possible to give mod authors a chance to fix their mods for 1.0.
Technology icons update (Dominik, V453000)
As many graphics have changed over the years, more and more related technology icons became outdated. We didn't have enough time to do a complete rework of the technology icons as we did with the item icons, but we could at least update the clearly outdated ones.
Crash site: The beginning (Ernestas, V453000)
Even though a simple one, Factorio does have a story - An engineer crashes on a planet and through building a complex factory, becomes capable of launching rockets back into space (...or builds the sickest combinator contraption instead).
This story is quite well represented - building a crazy factory in the process, ending with an epic rocket launch - except the beginning is not. The player character just appears in the middle of the map with nothing showing where they came from.
When we were working on the crash site for the NPE, we created the special assembling machines, a lab, a power generator and chest capsules.
The NPE has been removed, but Albert didn't design just those special ship chunks. The central piece of the composition was always meant to be a large spacecraft - but per usual, we didn't have enough time to finish it, and since it wasn't really gameplay breaking, we released 0.17 without it.
Although the NPE was removed and its custom crash site entities remained only for modding and custom scenario use, we would like to finish the main crashed ship.
The plan always has been that if we're investing a lot of time into designing the crash site entities, then we better use them for Freeplay as well, as that's the main game mode.
Recently Ernestas picked up Albert's 3D model and finished texturing it, bringing it to life, and to the game.
Klonan has also added a short skippable cutscene at the start of Freeplay, where the crash site is revealed.
The crashed segments are randomly placed, and there's a little bit of resources to be found in each of the ship segments (the 8 combined iron plates that until now just appeared in your inventory).
All of the crash site parts can be mined, but it gives no reward, takes a long time, and the crash site can't be re-built.
The crash site is spawned at the start of the game, so it won't show on pre-1.0 maps. The crash site will be released in 1.0, on 14th August 2020 - at 11am Prague time.
Fixed that blueprint book in an item form didn't have mod-persistent icons.
Don't drag map when in zoomed in map mode and building blueprints.
Don't place map tags when building blueprints.
Fixed crash in rendering due to game state being modified by buildability checks for drawing blueprint placement visualization on chunks in fog-of-war when zoomed-to-world.
You can get experimental releases by selecting the '0.18.x' beta branch under Factorio's properties in Steam.
Fixed clearing ghost from cursor would not clear quickbar selection. more
Fixed blueprint book not shrinking when the last item was destroyed.
Fixed crash when Lua received event of player selecting area to deconstruct.
Fixed upgrading book by item would not work while being in editor. more
Fixed biters not grouping before attacking an artillery outpost. more
Fixed crash related to saving blueprint which has all the entities/tiles as question marks.
Fixed desync when loading blueprint shelf with modded entities. more
Fixed that swapping blueprint cursor into a non transferred blueprint didn't trigger the transfer.
Fixed that cycling blueprint book in the shared blueprint library could also cycle the index for other players holding the same book.
Fixed that cycling book wouldn't mark blueprint storage to be resaved, so the indexes would be lost if no other changes were done.
Fixed a desync when returning to a multiplayer game while the book active index was changed in a different game. more
Fixed that the action to put item into a blueprint library was not based on the latency hiding state of held item, which could result into the action doing nothing when the item held was not in the server state yet.
Fixed that quickbar links into items contained in blueprint books in the player inventory didn't work.
Fixed that it was possible to setup empty blueprint of other player if the original player was still having the quickbar link to it.
Fixed that quickbar links did work only for the main inventory of player, so it didn't work for currently equipped armor for example.
Fixed that LuaInventory.insert() didn't work properly for blueprint books. more
Fixed crash when reassigning blueprint with non-even snap grid size to contain rails. more
Fixed crash when holding a blueprint from the blueprint library while being dead. more
Fixed that the info for selecting entities to be upgraded was mentioning entities that were marked for deconstruction, even when these are ignored by the upgrade planner.
Fixed that ordering deconstruction didn't cancel upgrade order. more
You can get experimental releases by selecting the '0.18.x' beta branch under Factorio's properties in Steam.
The COVID pandemic around the globe is making it really hard to plan any event these days, and we were pretty optimistic just a few weeks back. However the situation here is now changing for the worse it seems.
The number of positively tested cases of COVID here in Czech has been increasing in relatively high numbers every day for the past two weeks, and the restrictions are again taking place. In Prague, face masks are required to be worn again where more than 100 people gather indoors, no events over 500 people are permitted as of last week, etc.
The current uncertainty together with the fact that at least half of the invited guests will not be able to attend the party (including some members of our own team), have led us into making a tough decision: we have decided to cancel the Factorio 1.0 release party we were intending to throw on 4th September 2020.
For those of you who already purchased a ticket(s) - the full ticket price will be refunded.
We hope there will be another opportunity to meet you all in the foreseeable future, but for now, please accept our apologies for any inconveniences caused. This wasn't an easy decision for us to make, but we believe it is the right one.
Youtuber/Twitch/Press suggestion (Klonan)
Over the last weeks and months, we have been preparing for the marketing of our 1.0 launch on the 14th of August (just 2 weeks to go now). Part of our plan is going to be sending out some free press keys to Youtubers and streamers and other content creators, in the hopes they will give the game a try, and help spread the word. To prepare, Jitka and I have been doing our research and compiling a list of suitable individuals to send a key to.
It is not a shocking fact to find out that Youtube is massive, and I think even if we spent a year everyday going through it, we still wouldn't find 10% of channels that we would like to send a key to. So we decided to start this simple form, that you can use to suggest your favourite Youtubers to us, and help us make sure they don't miss out on the review keys when we are sending them. If you are interested and would like to help us out, you can fill in the form here.
Polluted water (V453000, posila)
As we're done with redesigning graphics for 1.0, we could focus on other graphical improvements. Because we are so close to release, it's a good idea to focus on things that are unlikely to break the game and don't cost too much time, while having as large an impact as possible.
One of the biggest themes of the game is pollution. Considering that, it's one of the least visible elements in the game - you can only see it in the map view, and on dying trees. It would be lovely if we could make grass or decoratives die too, but that's something way too technically complicated for now.
But one thing that could and does show pollution is water! For a very long time we’ve had green water tiles in the game and we've used them in campaign missions. Two water tile types, one or the other.
As it's 'just' tiles, it wasn't really feasible to use both of them - because transitions between them would be too abrupt. Not to mention water tiles would have to generate that way, and dynamically change as the map gets more polluted, leading into more technical problems.
Manually placed tiles in map editor.
However, since water has been updated to use a shader rather recently (FFF-323), we could make it look polluted dynamically.
After some typical posila dark magic of interpolating and converting the pollution values on chunks, we could blend between a primary and secondary tint of water tiles. This way it is also directly tied to the red cloud you can see on the map so it's consistent.
Polluted water slowly spreading.
The green water tiles still exist if scenarios want to use them, they just always show as polluted.
The pollution effect won't show if the 'Show animated water' setting is off, or if pollution is disabled in the map settings. Mods can also adjust or disable the effect it by changing the secondary water tints in the tile prototypes.
Biter decoratives (Ernestas, V453000, posila)
When the whole family of biters got their redesign, one of the plans for later was to give them their own biome in the world.
We had some temporary decal and decoration sprites prepared for a long time now, but somebody needed to add them to map generator. In the end, we didn't want to spend an awful lot of time on tweaking generator properties to place them just right, and also we wanted them to be created under new bases as biters expand, therefore we decided to add special logic to generate them as spawners and turrets are created. If your mod already has its own solution for creep, you can disable base game one by clearing spawn_decoration prototype property on spawners and worms.
Our initial naive implementation was placing the decals just randomly, and Ernestas turned the number of the decals created up to 11 to make them cover the ground the way he liked. That in turn made me (posila) unhappy, because in the middle of biter bases there were too many decals overlapping each other, that even your GTX 1080 would take notice of the increased workload, and a laptop with an integrated GPU would fall to its knees. That made me realize that artists probably wished our tile renderer had a texture splatting feature. But I wasn't really ready to change the specification for tile renderer yet again and rework it to add more new features into it this close to the release. We also really didn't want to add an option to disable the rendering of decals as that together with already existing option to disable decoratives would make terrain look completely plain.
So instead we changed the decal placement logic use Poisson-disc sampling, which produces points that are randomly placed but somewhat evenly spaced out from each other, and this fixed the excessive overlapping.
Once we knew it could actually be generated (including bases created by biter expansions), Ernestas could finalize the graphics. Mucus, mold, eggs, worms, all kinds of bodily fluids and slimes. You can see how this immediately looks much more like a 'nest'.
We decided not to bother with a migration as we need to focus also on other things (like fixing bugs), so existing biter bases on older maps loaded in 1.0 won't have these decoratives. We imagine a lot of people will want to start a fresh map anyway, and it's a nice identifier of a 1.0 map.
Both the polluted water and the biter decoratives will be released on 14th August in 1.0.
Fixed crash when clicking a blueprint book upgrade slot with an upgrade planner in hand.
Fixed navigating in a blueprint book item when opened directly from a quickbar. more
Fixed that it was possible to put book into itself using hand->swap and clean cursor.
Fixed that the hand functionality didn't work properly for gun and ammo and gave misleading error messages in some cases.
Fixed "slice" property of animation definition was interpreted as dicing parameter, possibly causing large memory allocations. more
Fixed that grabbing gun/ammo, swapping it with some other item in the inventory and pressing Q, gave a message of inventory full, instead of the item in cursor not being returnable to the hand location
Fixed that Internal inventory stack transfer messages weren't specific enough, or not present at all.
Modding
Renamed sprite and animation properties for sprite dicing from "slice", "slice_x" and "slice_y" to "dice", "dice_x" and "dice_y", because "slice" collided with property of rotated animation definition used for defining spritesheet sliced into multiple files. Sprite dicing is a technique of chopping large sprite into smaller ones to improve packing in sprite atlas.
Scripting
Fixed a typo (per vs pre) in the on_pre_permission_group_deleted event name.
You can get experimental releases by selecting the '0.18.x' beta branch under Factorio's properties in Steam.
New blueprint library GUI. Its user interface had been aligned with the way inventory works in as many ways as possible. more
Features
Added blueprint building from the map view.
Blueprints can have snapping dimensions specified. When they are built by dragging, they are only built in the grid relative to where the build started.
Blueprints can have absolute map snapping specified, so the blueprints are always aligned to the global grid.
Blueprint books can be inserted into blueprint books, cycling through the books works in a hierarchical way.
Upgrade planners and deconstruction planners can be inserted into blueprint books and the blueprint library.
Blueprint books, upgrade planners and deconstruction planners can now have custom icons specified.
All blueprints tools have an editable description.
Added Blueprint reassign tool. It allows to set new contents of a blueprint by world selection.
All blueprint tools have a copy function.
All the blueprint tools are usable directly from the blueprint library.
Quickbar links to blueprint tools are persistent when moving them between library shelves and inventories.
Most of the blueprint tools manipulation in the blueprint library is part of a multiplayer latency hiding.
Icons on the blueprint tools and filters in the upgrade planners/deconstruction planners are preserving the original values so whenever the mods would be re-added, the original values can be restored, unless the player clears the related icons manually.
Any blueprint contents that are not available due to mod removal are also kept in the blueprint persistently, so blueprints can be copied and transferred in multiplayer without losing its original data.
Added downgrading feature to upgrade planner. It works on blueprints, books and also when applying in the world.
Clicking an upgrade planner button in the blueprint or a book now provides a list of all available upgrade planners to be applied.
Upgrade planners now also update the relevant icons of blueprints and books.
Minor Features
Grabbing an item from a blueprint book has the same hand item functionality as when holding an item from inventory, so it goes back to the original position when clean cursor is triggered.
Gui
All the blueprint tools now show all possible actions it can perform in the tooltip.
Control settings search now also searches by the currently assigned key-binding.
Optimizations
Decreased the header size of blueprint-storage and of individual blueprints with backed up modded entities, as only the id mapping relevant to the blueprints (and whole storage) is now saved.
Bugfixes
Fixed that exporting blueprint didn't include the unconfirmed blueprint changes into the exported string.
Fixed blueprint preview icons rendering scale when blueprint was held in cursor.
Fixed that blueprint was not detecting modded data to be lost when loading unless one of the top level entities or tiles were to be lost. This means, that a blueprint with vanilla constant combinator (for example) with a modded signal will no longer silently lose the modded signals on resaving the blueprint storage when the mod is not currently active.
Fixed that biters when faced with a rock might get stuck in an infinite pathfinding loop. more
Fixed that clicking a technology in the research queue, holding the mouse down and moving it over the cancel button would make the cancel button flicker. more
Fixed terrain particles would be spawned when walking over belts. more
Fixed player movement on belts in latency state was not exactly matched with the real game state logic. more
Fixed that the set-request GUI didn't respect the show-all-items setting. more
Fixed that burner assembling machines could cause inserters to get stuck holding extra fuel in some cases. more
Fixed noise.terrace function did not assert that constant parameters are constant.
Fixed that item durability tooltips used the wrong locale key in some places. more
Fixed that upgrading inserters in blueprints wouldn't preserve modded pickup/drop locations. more
Fixed that exporting empty blueprint books didn't work correctly. more
Fixed that the mods GUI didn't have any mod selection by default. more
Fixed that positions of entities in blueprint string were not properly fixed to be aligned to grid according to our rules and centered.
Fixed a crash when mods destroy the character entity during the on_gui_closed event. more
Fixed a crash when canceling loading some modded saves. more
Fixed that artillery turrets didn't fully use the shooting speed research. more
Reduced flicker of mining drill indicator lights when zoomed out. more
Fixed lua documentation for LuaGuiElement::index read. more
Fixed that biters would try to attack over large distances individually instead of in groups. more
Map tag edit GUI can now be confirmed with Enter key even when the textbox is not focused. more
Fixed a pathfinder crash related to entities and tiles using collision layers 11 to 15. more
Fixed the changelog GUI indentation.
Modding
Implemented compileIntoCurrentProcedure for the "if-else-chain" noise expression type. This allows non-constant values to be used as conditions.
Added "modulo", "ceil" and "floor" noise expression types.
Added "bitwise-and", "bitwise-or", "bitwise-xor" and "bitwise-not" noise expression types.
Added "sin", "atan2" and "cos" noise expression types.
Added "less-than", "less-or-equal" and "equals" noise expression types.
Changed turret base_picture animation to actually play the animation.
Added several properties to ExplosionPrototype to control light fading through applying a multiplier to the light's size and intensity. "light_intensity_factor_initial" (default 0), "light_intensity_factor_final" (default 0), "light_intensity_peak_start_progress" (default 0), "light_intensity_peak_end_progress" (default 0.9), "light_size_factor_initial" (default 0.05), "light_size_factor_final" (default 0.1), "light_size_peak_start_progress" (default 0.1), "light_size_peak_end_progress" (default 0.5)
Scripting
Added permission events: on_permission_group_edited, on_pre_permission_string_imported, on_permission_string_imported, on_per_permission_group_deleted, on_permission_group_deleted, and on_permission_group_added.
Simplified the rules of entity positions aligned to grid in the blueprint. Now they have the same rules as entities in the world.
You can get experimental releases by selecting the '0.18.x' beta branch under Factorio's properties in Steam.
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.
Persistent library contents
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.
Upgrades
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.
Snapping
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.
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.
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.
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.
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.
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.
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.