Factorio is a game about building and creating automated factories to produce items of increasing complexity, within an infinite 2D world. Use your imagination to design your factory, combine simple elements into ingenious structures, and finally protect it from the creatures who don't really like you.
User reviews:
Overwhelmingly Positive (934 reviews) - 97% of the 934 user reviews in the last 30 days are positive.
Overwhelmingly Positive (18,392 reviews) - 98% of the 18,392 user reviews for this game are positive.
Release Date: Feb 25, 2016

Sign in to add this item to your wishlist, follow it, or mark it as not interested

Early Access Game

Get instant access and start playing; get involved with this game as it develops.

Note: This Early Access game is not complete and may or may not change further. If you are not excited to play this game in its current state, then you should wait to see if the game progresses further in development. Learn more

What the developers have to say:

Why Early Access?

“We have been working on Factorio for over 4 years. The game is very stable and is highly optimised for prolonged gameplay and creating huge factories. We have sold over 110,000 copies on our website, and we feel now is the right time to release to a wider audience.”

Approximately how long will this game be in Early Access?

“Our plans for release come as part of an ongoing process, and we are constantly adding new features and content. When we feel the game is complete we will release the full version, and our current estimate is that this will take 8-12 months.”

How is the full version planned to differ from the Early Access version?

“In the full version we hope to have a polished GUI, a multiplayer matching server, integration of mods for players and servers, and a number of other finishing touches and additions to the core gameplay.”

What is the current state of the Early Access version?

“The game has a very strong content base, rich with interesting mechanics and features. Many players report they are still having fun on their maps even after hundreds of hours of gameplay, alongside multiplayer support, and a dedicated modding community.”

Will the game be priced differently during and after Early Access?

“The price may be increased upon release from early access.”

How are you planning on involving the Community in your development process?

“The community is a vital part of our development process. We announce any planned features far in advance so we have time to read peoples' opinions and comments, and for us to discuss the different points of view players may have. Community suggested ideas are commonly brought up in team discussions, and we value highly the input each individual player can have.”
Read more

Buy Factorio

Downloadable Content For This Game


Recent updates View all (161)

July 21

Friday Facts #200 - Plans for 0.16

I can't believe that we have been able to produce a post every Friday for 200 weeks without missing a single one. To be honest I'm not sure if this isn't the right time to pause for a while, to avoid being this kind of show that gets worse and worse over time until it is so bad that you want to take your intestines and strangle yourself with them. But people in the office convinced me with arguments like "FFF is the only good thing we have", so we probably have to continue for a little longer.

0.16 plan
Our 0.16 trello card list is long, probably too long, it contains 80 cards. Many of them have a similar history as this one:

The main reason of showing this is, that that it is almost certain, that some of these tasks will be pushed again to next version, or away completely. It depends how fast will the work on the more important things progress.

The bigger things are:
  • Artillery train
  • GUI/UX improvements
  • Mod portal improvement (rewrite)
  • Map generation improvement (related to the updated high res terrains and decoratives)
Then there are optimisations, we want to tackle mainly these:
  • Train pathfinding and collision checking optimisations
  • Additional smoke related optimisations
  • Lamp related optimisations
  • Item stack optimisation
  • Optimisation of electric network update logic
  • Optimisation of logistic robot movement
  • Group multiple item icons to one sprite in order to optimize rendering of saturated belts
There are overall tweaks planned like:
  • Find a way to show connected walls + pipes in a blueprint
  • Confirm blueprint deletion
  • Fluid squashing in pipes
  • Map interaction improvements
And there are these semi-bugs or small things like:
  • Train block its own path with chain signals
  • Make programmable speaker 'Global playback' only apply for people on that force
  • Electric network UI weird with lots of accumulators.
Lets hope we can finish at least half of the stuff we plan for 0.16.

Map generation
The current terrain generation tends to make a world that looks the same everywhere.With the goal of making exploration more rewarding we've been working on a branch called "mapgen-fixes",which introduces some new biomes, new decoratives, and changes to the way things are distributed.I've been tasked with fixing up the obviously screwy parts(next on the to-do list is to deal with an overabundance of biters)so that this can finally get merged to master and others can start testing and giving their feedback.

On the one hand this kind of work is fun because you have a bit of artistic freedom.There is no 'right answer' to what the Factorio world should look like,so I can play with settings and try to create a result that I think is interesting.On the other hand, not having a 'right answer' means you can't just write a unit test to tell if your job is done.I needed a way to look at results from the map generator and compare changes across versions that would be more efficient and easier to automate than loading up the entire game and poking around in the map editor, waiting for chunks to load,and then trying to remember what it looked like before and asking myself if this is better or worse. So I created a map preview generator.

Map Preview Generator
In the interest of being able to compare against maps generated with the current versions of Factorio,I got the map preview generator merged early. In fact it's already available on 0.15;you can use it from the command-line like so (adjust path to Factorio binary as needed):
bin/x64/factorio --generate-map-preview=output-name.png --map-gen-seed=1230 --map-preview-scale=4

The above map is 900x900 pixels and has a resolution of 4 meters per pixel, so is 3.6km on a side.To give some sense of scale, a medium-sized factory with mining outposts could easily extend to the edge,but to cover the entire area would be rather impressive.

If you make a very zoomed-out map (scale=32 is the maximum supported for 0.15.x)you may notice that it takes a long time to generate the preview.On 0.16 this will have been taken care of by refactoring the terrain generation system to operate at arbitrary scales instead of always generating 32x32-tile chunks.To understand why this works, you need to understand that map generation is done in 2 phases:
  • Calculating the value of several variables (elevation, temperature, humidity, and a few others) for every point on the map. This is done by sampling a coherent noise function (whose basis is similar but not identical to Perlin noise). The value at each point can be calculated solely based on the point's coordinates and the map seed, making this part 'embarassingly parallelizable' and easy to do at any scale (and with a bit of further refactoring, by arbitrary transformations of the inputs).
  • One chunk at a time, 'correcting' the results of the first step, making sure entities don't overlap, replacing combinations of tiles that we don't have good transition graphics for, etc. This is where we enforce that the only thing that can be adjacent to water is grass, because that's the only transition we have graphics for (which happens to be something the art guys are working to rectify).
For the sake of making the map preview generator fast and simple,only the first step is done.This is a good enough approximation for my purposes,though if you look closely you may notice that shorelines are off by a tile or two in some places.

Programmable Noise
One of the things that I disliked about how Factorio's map generation works even before I was hired to improve it, was that once you've expanded your base to a certain size,exploration of the map ceases to be interesting.At an extreme scale this uniformity is exceedingly obvious,but it is also apparent at realistic factory scales.There are no especially large lakes to work your way around,and different parts of the map don't really have any unique character.

Take for instance this super zoomed-out map (32 tiles per pixel):

In part, this is due to the underlying noise functions we use not being very flexible.The function to calculate elevation, for example,is defined by a very small number of variables, including seed,number of octaves,and persistence.Persistence itself is varied over the map so that in some areas you get smooth coastlines and in others very noisy ones.This simple specification does a pretty good job of generating random-looking worlds,but it doesn't give as much control as I would like in order to make different parts of the world look different.

In order to efficiently calculate terrain,a lot of the low-level code is dedicated to caching noise values and vectorizing calculations on them.This is great, but means the high-level logic for how noise is generated is rather buried in a lot of implementation details,and is therefore difficult to reason about and even harder to change.But abstractly, the noise function is just a functional program that adds and multiplies values from the basis function (at different scales) together.In order to make this logic more obvious I've created an assembly-like language for specifying the steps to produce noise.e.g. Take basis noise at a certain scale, divide it by persistence, add in basis noise at another scale, and so on.This approach is super flexible, but the assembly language is not very nice to read or write.A longer-term solution will be to allow building noise functions from Lua code,which will have the side-effect of making the system hackable by modders.

Abstracting high-level aspects of terrain generation out of the C++ code opens up a lot of possibilities.Some ideas:
  • Larger scale features that are modulated by distance so that the starting area remains relatively flat and predictable, but you find seas and larger continents far away.
  • 'Ridge' some large-scale noise to produce linear features like mountain ranges or rivers.
  • Altering the input to some noise layers with the output of another noise function. This can warp landforms in a way that looks a bit like the result of plate tectonics.
Related to this, we are also working to make the world seem a bit less flat, but that is probably better left for another FFF.

As always, leave us any feedback or comments over on our forum

80 comments Read more

July 14

Friday Facts #199 - The story of tile transitions

Hello, version 0.15.30 was released today, and we consider it to be our first 0.15 stable version candidate, as long as no other big bugs appear, we will have 0.15 stable in a week.As the teasing never ends, it is time to show some ongoing work on 0.16 already.

Transport belt optimisations
The transport belt optimisations explained in FFF #176 are now merged in our 0.16 developer branch. I tested it on a megabase factory and the improvement was quite noticeable. The UPS of the whole factory was increased from 25 to 38, the belt update itself runs 5 times faster now. I hope that we can make the game run 2 times faster again before 0.16 is out :)

Water - land transition study
There is a basic problem with the way grass and water terrain interact in Factorio.

The first one is related to the fact that the transition is on the tile of the grass. This means that the whole transition is considered to be a grass tile, which leads to weird looking things like this:

The solution is quite simple, we will just define that the transition is drawn on the water tile instead, something like this:

It will make structures like this impossible:

as the minimum width of one tile of land will make this shape:

This is simple so far, but it creates new problem, as suddenly we need to solve situations like this:

it looks like this in 0.15:

but in next version, we would need to have graphics like this:

Note, that this is just one combination, we would need all the other shapes like "O", "U", "L", and mainly the graphics of the transition suddenly wouldn't have the space of the whole tile, as a possible transition to another terrain can be on the other side.
The solution of the problem is being investigated now by making some graphical experiments, but the possible solutions we see now is:
  • Just make the transition smaller to make it work.
  • Make 2-3 layers of the transition, so they can be combined together nicely.
  • Use our 'tile correction logic' that we hate so much, which would just make this configuration impossible to exist.

The second part of the interview
As some people requested it, we made subtitles of the second part of the interview with me. It is more focused on the technical part of Factorio which might not be entertaining for so many people, but some might still find it interesting.

As always, let us know if you have any thoughts or feedback on our Forum.

56 comments Read more
See all discussions

Report bugs and leave feedback for this game on the discussion boards

About This Game

Factorio is a game in which you build and maintain factories. You will be mining resources, researching technologies, building infrastructure, automating production and fighting enemies. In the beginning you will find yourself chopping trees, mining ores and crafting mechanical arms and transport belts by hand, but in short time you can become an industrial powerhouse, with huge solar fields, oil refining and cracking, manufacture and deployment of construction and logistic robots, all for your resource needs. However this heavy exploitation of the planet's resources does not sit nicely with the locals, so you will have to be prepared to defend yourself and your machine empire.

Join forces with other players in cooperative Multiplayer, create huge factories, collaborate and delegate tasks between you and your friends. Add mods to increase your enjoyment, from small tweak and helper mods to complete game overhauls, Factorio's ground-up Modding support has allowed content creators from around the world to design interesting and innovative features. While the core gameplay is in the form of the freeplay scenario, there are a range of interesting challenges in the form of the Scenario pack, available as free DLC. If you don't find any maps or scenarios you enjoy, you can create your own with the in-game Map Editor, place down entities, enemies, and terrain in any way you like, and even add your own custom script to make for interesting gameplay.

Discount Disclaimer: We don't have any plans to take part in a sale or to reduce the price for the foreseeable future.

What people say about Factorio

  • No other game in the history of gaming handles the logistics side of management simulator so perfectly. - Reddit
  • I see conveyor belts when I close my eyes. I may have been binging Factorio lately. - Notch, Mojang
  • Factorio is a super duper awesome game where we use conveyor belts to shoot aliens. - Zisteau, Youtube

System Requirements

Mac OS X
SteamOS + Linux
    • OS: Windows 10, 8, 7, Vista, XP. (64 Bit)
    • Processor: Dual core 1.5Ghz
    • Memory: 4 GB RAM
    • Graphics: 512MB Video Memory
    • Storage: 1 GB available space
    • Additional Notes: Low sprite resolution and Low VRAM usage
    • OS: Windows 10, 8, 7 (64 Bit)
    • Processor: Quad core 2.5Ghz
    • Memory: 8 GB RAM
    • Graphics: 2GB Video memory
    • Storage: 1 GB available space
    • OS: macOS Sierra, OSX El Capitan, Yosemite, Mavericks, Mountain Lion, Lion
    • Processor: Dual core 1.5Ghz
    • Memory: 4 GB RAM
    • Graphics: 512MB Video Memory
    • Storage: 1 GB available space
    • Additional Notes: Low sprite resolution and Low VRAM usage
    • OS: macOS Sierra, OSX El Capitan, Yosemite, Mavericks, Mountain Lion, Lion
    • Processor: Quad core 2.5Ghz
    • Memory: 8 GB RAM
    • Graphics: 2GB Video memory
    • Storage: 1 GB available space
    • OS: Linux (tarball installation)
    • Processor: Dual core 1.5Ghz
    • Memory: 4 GB RAM
    • Graphics: 512MB Video Memory
    • Storage: 1 GB available space
    • Additional Notes: Low sprite resolution and Low VRAM usage
    • OS: Linux (tarball installation)
    • Processor: Quad core 2.5Ghz
    • Memory: 8 GB RAM
    • Graphics: 2GB Video memory
    • Storage: 1 GB available space
Customer reviews Learn More
Overwhelmingly Positive (934 reviews)
Overwhelmingly Positive (18,392 reviews)
Review Type

Purchase Type


Display As:

(what is this?)
12,091 reviews match the filters above ( Overwhelmingly Positive)
There are no more reviews that match the filters set above
Adjust the filters above to see other reviews
Loading reviews...