Hacker News new | past | comments | ask | show | jobs | submit login
Factorio 1.1 stable (factorio.com)
468 points by OrderlyTiamat on Jan 29, 2021 | hide | past | favorite | 178 comments



Factorio is such a high quality game. Not just the gameplay, but the entire development process where every alpha release is actually really stable and playable, certainly more stable and playable than most big-budget games are on release day.


Their codebase is also covered by unit tests [0] and integration tests [1].

[0]: https://factorio.com/blog/post/fff-60

[1]: https://youtu.be/LXnyTZBmfXM


What always strikes me when I read Factorio blog posts is how they really approach game development like engineering (moreso than most software engineers). I'm very pessimistic about software, and it does give me a lot of hope.


If there's one game that should have an infinite number of tests, it's this one.


I don't think both kind of games are on the same complexity level.

The gameplay is simple (aka: it requires few kind of user interactions), and the physic engine (source of most bugs in big budget open-world games) is far far far simpler as well.


> The gameplay is simple

No. Very no. It isn't a graphical game, but that means nothing to complexity. The number of objects and behaviors that the game engine must track, and track perfectly every clock tick, blows away most graphics engines. There is no room for the trickery that graphics/physics engines use to determine which objects need to be tracked. Factorio must track everything always, whether it is on screen or not. Each of those objects is also interactable. The character builds and maintains bespoke systems layered atop each other ad infinitum. The network of possible behaviors may be more akin to a giant excel document than a minecraft world, but that doesn't make it any less complex.

See also Prison Architect. Cartoonish 2d graphics, reminiscent of SouthPark imho, but nevertheless a very complex game. Even after a thousand hours with it, Prison Architect's AI still surprises me every time I play.


I don't think the person you responded too meant to say that the game lacks complexity as a player, or even that its simple to program, just that it is difficult for the player to force a failed state because the player has a smaller range of actions than in a more typical AAA game. Obviously the coding behind the game is brilliant, but in terms of player facing bugs its just much easier to test.


Limitations on the physical actions the player can take is relatively limited - players can't even jump, very much limits bugs that come from player movement and the physics engine. But the gameplay has some very complex mechanics. Mechanics where lesser programmers would have ended up with a far buggers and less fun version. Imo it's easy to imagine weird bugs that manifest as flakiness slipping into the code that back railroad signals and repeaters, and intersecting tracks.


And yet, the gameplay is just:

- move your character - mine stuff - craft buildings - place buildings

And a small bit of combat for the aliens.

I insist, the gameplay IS simple, the content allows for very complex designs.

Similar to programming languages, Assembly IS simple.


>> move your character - mine stuff - craft buildings - place buildings

Have you played the game? That is, maybe, the first hour of a game that lasts many many dozens even hundreds of hours. Mining only happens in the first five or ten minutes. There are a host of other interactions, from tweaking object settings, optimizing pathing layouts, planning, direction of bots, to deployment of the factorio equivalent of Redstone circuitry.

And mods. As with KSP or minecraft, a greater number of possible interactions comes from the modding community rather than the stock game.


linkdd is saying that complexity comes from emergent behavior based on simple foundational building blocks, like a programming language


That's a very charitable reading of what they wrote.

craft/place buildings implies a very discrete action and does not encapsulate the sum of the parts, the interaction between all these systems.


Even if what linkdd say on face value, every single piece of software is "emergent" from programming and from his logic is very simple. Clearly this is not true.

Simple building blocks don't mean simple programs. Heavily interacting components leads to complexity and significant bugs. That's just software engineering 101.


A parent comment mentioned Redstone, of Minecraft fame. Redstone, as a thing that the developer created, is not on its own very complex. But the things that user can make with Redstone are insanely complex. That is not true for most gameplay in games, but it is true for Redstone in MC and Factorio in general. That's not to belittle those things, they're both great. But if you compare the dev time required to make Redstone in MC vs the dev time to make other stuff, other stuff frequently wins. Hell, I bet just making skeletons took more time than making Redstone. But obviously that doesn't mean Skeletons allow for more interesting gaming than Redstone.

"Simple gameplay" does not mean that the experience of playing the game is simple. Chess has very simple gameplay (basically just: learning how 6 different piece types move, pieces capture each other, and protect the King) but the emergent complexity from those simple rules is truly impressive.

Compare this to say Monopoly, which has a lot more rules than chess, but is mind-numbingly not complex in terms of strategy and the overall play experience.

That is what linkdd is trying to say.


I recommend you read the update notes. In particular the multi-threading solution to belt management is an interesting programming problem that many games just get wrong.

As to your assertion about the game play of Factorio, it is not mine, craft, and place like in a normal RTS. In order to succeed at the game you must design which is a far cry from base building in StarCraft II, for example. Blueprints are indicative of this design requirement.

There are games where you design ships and save templates for them. But playing Factorio all the way through is a much more complicated experience than movement and crafting. Unless your assertion is that complexity of gameplay is measured by input mechanics, which I think is demonstrably incorrect.


Linkdd's point is about the complexity required from the developer, not the complexity required from the user. They are two different things.

That is of course not to say that the developer is worse for it, far from it: a developer that can create a complex game based on simple rules is a better developer imo. But that doesn't mean the rules (and therefore programming them) aren't simple.


That would be game mechanics (the software) instead of gameplay (how a user plays the game).

Still, the scale of the mechanics leads to more complexity than your average crafting game. If your interpretation of what linkdd wrote is correct, his point is directly controverted when considering that threading discussion in the article. If you know the history of Factorio, then you also know there are many underlying, interlinked systems like that in the simulation that are complex. The software must handle all the ways in which those subsystems could possible interact.

The comparison to Dwarf Fortress is apt. Another similarly complex game that comes to mind is Distant Worlds: Universe, a 4X game that, with all the managers turned on, plays itself.


The network model is lockstep. Which means everything that changes gamestate needs to be deterministic.

Keeping that alone bug free is quite the achievement.


The UI is fairly simple, the engine is fairly complex, with a lot of interactions between different parts.

I don't think most games struggle because their UI is complex, or because user behavior is complex (there's really only so many things a player can do, especially general ones -- most variety of interactions are "scenes", entirely captured within themselves). At least, most AAA bugginess isn't usually found in their UI. And graphics aren't the complexity generally -- they're just visual artifacts of the engine itself failing.


>> The UI is fairly simple

It isn't. There is significant depth to menus and displays. The way that players can interact with information is very complex, more complex than something as simple as FPS or flight simulator. If we wanted to get very simplistic, Factrio has a much wider variety of button presses than most every FPS.


But complexity =/= fun. Factorio shows that "simple gameplay" can lead to massive fun.

IMO, the AAA titles would be better if less time was spent on a bleeding edge physics system, and more time spent on other aspects.


Physics engines and graphics engines take a lot of resources. Games that invest enough resources to develop their own highly detailed physics/graphics engines are almost by definition AAA. So what you’re suggesting is that AAA games should spend less time/money on the thing that makes them a AAA game.

It’s okay that AAA games exist, because there is still room in the market for games like Factorio, which has experienced a long and successful life.


> IMO, the AAA titles would be better if less time was spent on a bleeding edge physics system, and more time spent on other aspects.

They would be better games but wouldn't sell as well. Video game sales are driven heavily by screenshots, trailers, and "Let's Play" videos. Graphics and physics look good in those media, actual personal fun experiences less so.

There's probably some higher level business principle here that products end up designed to optimize for the property that most heavily constrains sales instead of the properties that maximize customer satisfaction.

See also: Hollywood movies, book covers, synthesizer presets, house flippers, car interior widgets, etc.


There's a place for both I think. We've seen a lot of lo-fi successes as of late, but inevitably some of the reliably biggest selling games are the annual big budget updated graphics FPS and sports titles. I don't know if FIFA 2K22 would have as much draw if they sold it as a sprite-based title.


"Simple" is a great source of endless discussion, because it has so many meanings that nobody can agree on what's simple.


Complexity isn’t simply the number of lines of code. Where individual shaders are adding linear complexity subtle interactions between different parts of a simulation can easily end reaching full factorial complexity.

As such AAA games favor independent systems which add as close to linear complexity as they can achieve. 3D models are a great example where extreme detail is largely irrelevant to every other part of the game.

That said, depending on what you’re measuring AAA games end up having wildly different levels of complexity.


I believe you are mistaken, Factorio is an incredibly complex game.


Do you really think a 2D physic engine is comparable to a 3D physic engine in terms of complexity?

Yes Factorio is complex. No it's not more complex than a Witcher/Skyrim/Cyberpunk/whatever big budget game you can think of.

When i say complex, I talk about code, architecture, gameplay mechanics. Not play time...


Play Factorio in multiplayer on a megabase map. And imagine how much insight you need to keep so many such complex game mechanics to be kept in sync and performant for even hundreds of players on same map.

Compare this to average bug ridden AAA game that has half of game mechanics falling apart in visible ways in single player spawning and despawning stuff randomly in failed hopes of keeping an illusion that the systems are sort of working!

A lot of triple A studios are havening trouble of implementing inventory game mechanics without introducing few item duplication glitches. Guys who are building Factorio are on another level they really made implementing game mechanics their core priority. For triple As their core priority is how to budget for making tons of assets and cramming them into the game.


Specifically, think of one particular optimisation that most 3D games can make that Factorio can't: don't process stuff you can't see. Factorio is of course continually running the entire factory, regardless of which bit of it you are looking. I am amazed it is as reliably performant as it is.


Most 3D games don't _render_ objects that you can't see. They still must simulate their actions each tick so that they will be in the right place when you can see them.


They might if they're just off camera. They don't if they're in the next town.


Depends on the game.

I imagine Grand Theft Auto doesn't simulate any cars that are more than slightly farther than the render distance.

I've seen videos showing that Cyberpunk 2077 will even not simulate things just because they left your view. People and cars will just disappear after you turn around for a second.


They often don't, which is annoying to no end. You turn around, turn back, and the car/body that you just saw is now gone.


Haven't played much factorio but I imagine that simulating the factory is more akin to a game of life, wireworld or a graph signal processing. I.e.: in one tick you process all inputs of each entity, and put them to outputs, maybe having a queue on each. This will always scale linearly, and you can also parallelise this quite comfortably.

In comparison collision detection and AI need to rely on a lot of trickery (and thus bugs) because naïve approaches explode in complexity.


Factorio has collision detection and AI as well. Biters. They have to do pathing, collision; all of the usual stuff AI enemies have to do.

Plus, each item on a conveyor belt has collision as well - they can tell when they run up against each other and will stop. Inserters can't put items on a full belt, but if there's a space they will sneak the item in (moving items around it if necessary).


Have you written any collision deta code? The difference between collision detection between two boxes in 2d , and two convex hulls in 3d is many orders of magnitude.

Compare [0] to [1]. Being 2D makes factorio many many times simpler than an equivalent 3d game.

None of that has any bearing on the quality of the game,it's an excellent game, and a great technical product to boot.

[0] https://developer.mozilla.org/en-US/docs/Games/Techniques/2D...

[1] https://caseymuratori.com/blog_0003


> The difference between collision detection between two boxes in 2d , and two convex hulls in 3d is many orders of magnitude.

It's a damned shame nobody's written some kind of amalgamation of libraries, let's call it an engine, so every game developers out there doesn't have to write the same collision code a thousand times. /s

It's bugging me away how many folks are confusing pretty 3D graphics with technically complex and efficient simulations (such as piped fluids) on billions of objects.


I was using collision detection as an example to show just how stark the difference is. There are plenty of other examples: - Rendering sprites can be done in software, rendering 3d models requires hardware acceleration (for the most part these days).

- User interaction/controls are much simpler in 2d than 3d. In 2d, inputs are (mostly) mapped to a fixed axis, in 3d, those inputs are relative to your perspective which often changes. This leads to awkward situations like Gimbal Lock, and other issues similar to it that can leave a user confused about what their input is going to do

- Implementing gameplay features is generally simpler in 2d than in 3d. A simple example of firing a weapon is straightforward in 2d, in 3d you have issues like where does the projectile start, (from the camera or the player?), how does that interact with animations/the player model itself? Those issues are practically non-existant in 2d, but can ruin a 3d game.

- Anything that deals with rotations in 2d is an order of magnitude more complicated in 3d.

Taking it farther, factorio isn't a "general purpose" sim, it's constrained to a grid with very little in the way of external forces to be considered continuously. There's no gravity, the player walking on a belt doesn't interrupt production, etc. Factorio (to it's credit) leans into this from a gameplay perspective.

> It's a damned shame nobody's written some kind of amalgamation of libraries, let's call it an engine, so every game developers out there doesn't have to write the same collision code a thousand times. /s

Factorio isn't using one of those "engines" you speak of. They've been pretty vocal about how they've hand rolled the game and the engine underneath it.

> It's bugging me away how many folks are confusing pretty 3D graphics with technically complex and efficient simulations (such as piped fluids) on billions of objects.

Actually, I didn't mention graphics, you did. _You're_ the person who is "confusing pretty 3d graphics". At the most fundamental level, simulating an extra dimension adds 50% more of a cost, but in reality the algorithms change and become orders of magnitude more complicated. Collision detection is a textbook example of this, hence me using it in the parent post.

Factorio is a technically impressive game, there is no doubt about that. But it's likely that if factorio was implemented in 3d it either wouldn't exist, or would be a substantially less polished experience (see Satisfactory for the closest example).


Yes, it’s as simple as moving tick by tick. But there is a lot of stuff. Like everything else, conceptually simple things become difficult at scale.


That optimization makes the 3D games more complex, not less. What Factorio does is impressive and surely comes with its own challenges, but it isn't necessarily more complex.


> don't process stuff you can't see.

There are absolutely optimizations that can be made to process items that aren't visible on the screen. Everything is deterministic, cyclical and can be represented as a graph. Given the initial number of resource at a node in the graph, and a time duration, you can calculate exactly where each resource will be at any time.


what kinds of optimizations are you thinking of? I don't think the engine can do stuff like defer simulating offscreen events to process them in a batch several ticks later. anything happening anywhere on the explored map could potentially affect things in the player's view. several systems (eg, trains, electricity) need to respond immediately to changes in the global state.


The only thing physical about Factorio are vehicles and particle effects. That's not where the difficulty comes from. It's more about optimisation: their entity system minimises memory use (and caches misses), many things are special cased for speed…

Think about the sheer scale of a 10 rocket per minute megabase. The amount of inserters, robots, belts, factories, the pollution involved, the number of biters attacking the base constantly… The number of entities on such a base is enormous, yet they still manage to compute it all in real time at 60 ticks per seconds. That feat of engineering is just as impressive as a 3D physics engine — perhaps even a 3D rendering engine.

(Of course, a AAA game is more than just a physics/rendering engine.)


I have to agree with the OP, Factorio code is actually pretty complex. Lots of it comes from polish and creating the seamless player experience. It might not be as technically complex as 3D engine, but no AAA developer would care about optimizing the fluid or belt system to behave in a scalable way. It's really well thought out.

(Also, there is a saying that it takes a genius to do something in a simple way. So even if the resulting code might be simple, arriving to that point can be actually pretty complex endeavor.)


I think it's probably as technically complex as a 3d game engine. Just differently complex.


I really really don't think so. In my experience, 3d games are orders of magnitude more complicated than 2d games.


Most 3d action games have extremely few gameplay programmers, they just pick an off the shelf engine and then most of the technical work is optimizing the graphics pipeline.


Ive worked on AAA games for the last 8 years, and I made my own 2d games for 5 years before it. My current project has something in the region of 60-70 gameplay programmers, and has been this scale for the last 3 years. Writing gameplay code and engine code are two very different experiences with different constraints. There is plenty of technical work in writing good gameplay code.


I think it is more complex in most dimensions, except for render pipeline and asset size. Physics engines are off the shelf, even in AAA games, they're not really where the bulk of time is spent coding. Not to mention all the games you described have fixed maps and no multiplayer.

Really, most of the budget of AAA is spent on art and level design. They have sophisticated tech, but often it is not on an unreachable level.


Yes, I think Factorio's engine is more complex and difficult to implement well than a typical AAA game with rich graphics and "realistic" physics.

In Factorio, you have a very large number of active objects with very dense, complex, time-critical and deterministic interactions. In most other games, you have relatively few active entities. The game gives you the illusion of a rich living world, but a lot of the graphical bits floating around can't actually be interacted with. The physics system is a complex bit of math but is fairly isolated from the rest of the engine and has relatively few entities to process. If it gets things "wrong" in minor ways, the player is unlikely to tell.

Also, many AAA game physics and graphics engines work the same enough that engines can even be reused. There's a relatively small amount of bespoke system design. It's just following the same well-tread paths. Factorio's gameplay has enough novelty that the engine has to solve challenging somewhat unique problems.

Source: Senior software engineer at EA for eight years and wrote a best-selling book on software architecture for games.


One metaphor for The Sims I had while developing it was that it was like a pinball machine with lots of balls in play at once -- all the characters, bouncing around off of each other and the objects in the house, which can run autonomously without any user input, but then you can change the simulation's fate with the flippers (pie menus selecting actions overriding the default behavior).

But Factorio is like a pinball machine with MILLIONS of balls in play at the same time, and it perfectly and efficiently tracks each and every one of them.

There is one sad aspect to Factorio: There is only one character: you. Alone. On a planet. All by yourself. Destroying the environment. But once you get over that depressing aspect, it's great fun! ;)


> Yes, I think Factorio's engine is more complex and difficult to implement well than a typical AAA game with rich graphics and "realistic" physics.

I think this is maybe true, but it's not a fair comparison. The real comparison is how much effort would go into making factorio with all of its polish in a 3d world rather than a 2d world.

Factorio's technical impressiveness (?) Comes from how well it's designed and implemented. The limitations that it imposes are part of the reason it runs so well, and also what make it such a great game.

> The physics system is a complex bit of math but is fairly isolated from the rest of the engine and has relatively few entities to process. If it gets things "wrong" in minor ways, the player is unlikely to tell.

The difference between doing the above for physics and graphics is orders of magnitude in how expensive they are, and how complicated they are to implement. You're right that most people don't notice when they go slightly wrong, but they often go catastrophicly wrong. (Much more often in 3d than in 2d). Factorio skirts around this by not running a general purpose physics sim for the game logic, and constraining the problem space (which to me is even more impressive than getting a 3d physics engine right)


Satisfactory is 3D Factorio, by the makers of Goat Simulator.

It's a great game, but quite different than Factorio in many ways, and much simpler along certain dimensions, with less abstraction and meta-programming: no drones, no blueprints, etc.

The fact that Factorio is based on a two-dimensional grid vastly simplifies it and makes it more like a precise programming language or spreadsheet, than a free-form 3d graphics editor. I do love them both, though.

Don't get me wrong: 3D adds a lot of cool stuff, like the ability to make layers and build vertically way up into the sky. And you have much more freedom about where you place objects. But that makes it practically impossible to implement the kind of precise grid-based blueprints and drone construction and logistics system that Factorio has.

To its credit, Satisfactory would be practically unusable if it weren't for the wonderfully easy-to-use well designed construction tools, that make it a snap to route and connect conveyer belts and pipes in 3D. But that's a much messier user interface problem that the precise grid of tightly constrained tiles that Factorio uses. But it does live up to its name: building and connecting 3D conveyor belts and especially pipes is quite satisfying!

Here's a great example of how you can abuse the fantastic degree of freedom that Satisfactory provides -- but that freedom comes at a cost of user interface complexity and the lack of higher level automation and abstraction -- the features that make Factorio such addictive "programmer crack".

I Produced so Much Nuclear Waste the World Is Ruined Forever - Satisfactory

https://www.youtube.com/watch?v=Oh2oF-eZTD8&ab_channel=Let%2...

The Satisfactory developers must have been equally horrified and gratified to see how people abused their beautiful game in unintended ways, but they responded by optimizing it a lot so it still runs smoothly. But the scale of Factorio's world is still much larger than Satisfactory, even though it's more constrained.

And another thing about Satisfactory is that the world is hand designed and breathtakingly rich and beautiful, unlike Factorio's procedurally generated world (which has beautiful 2D graphics, but no human touch). But that makes it even more tragic that the goal is to cut down all the trees, peel up all the glowing slugs, and ruin the bucolic countryside with mega-factories belching out pollution and waste.

More about Satisfactory:

https://news.ycombinator.com/item?id=24156912

>Satisfactory is like a 3D version of Factorio, which lets you build huge multi-layer mega factories up into the sky. But it's not as deep and sophisticated as Factorio, and doesn't have drones or blueprints. (That would be a lot more difficult to accomplish in free-form 3D, than with Factorio's 2D tile grid.) It's kind of like the giant simple Legos for younger kids, as opposed to Factorio that's more like Lego Technic.

>Satisfactory is well worth playing if you yearn for a 3D version of Factorio, but I still keep going back to Factorio, which is more like "Dwarf Fortress" in its depth and sophistication. Satisfactory's world is breathtakingly beautiful, lovingly hand-crafted by artists instead of procedurally generated, which makes it all the more satisfying to despoil and ruin with huge mega-factories belching out smoke and radiation.


I've played quite a bit of both. Satisfactory is beautiful to look at, and you can tell it's a labor of love for the developers. But there are so many bugs compared to Factorio, even compared to Factorio early on in development. Part of the problem is that Factorio sets the bar incredibly high in terms of developmental rigor, but if I were to recommend one over the other, Factorio would get the nod from me.


I didn't want to bring satisfactory up myself but I completely agree with everything you've said. You're right that factorio leans into the spreadsheet-esque aspect of the game, and it uses that to it's advantage both from a gameplay and a technical perspective. Making satisfactory a 2d game wouldn't give you the same experience as factorio!


Where Satisfactory really shines is its 3d building tools. It makes building fun and easy and precise, and then you get to jump and climb and ride around on the stuff you built. It's very satisfying. That's hard stuff to get as right as they did.


I found the building controls _slightly_ clunky, (but I don't think I could improve on them hugely). I actually felt what you said in your original post was what really draws me to it; I genuinely felt like I didn't want to ruin the planet!


Most games at that scale begin to simplify individual objects into statistical averages. Factorio can’t do that, so every single object is tracked meticulously on one thread. Even down to the position of the arms on each loader, since where they are in their cycle affects the game overall.


> Yes Factorio is complex. No it's not more complex than a Witcher/Skyrim/Cyberpunk/whatever big budget game you can think of.

Than Skyrim, easily. Crowd mechanics in Witcher/Cyberpunk give me a pause, but still probably more complex than those.

Popular "simulation" games like Factorio, Rimworld, Dwarf Fortress and Kerbal Space Program are deceptively heavy.


If you like swarming crowd simulations, check out "They Are Billions", a massive zombie hoard survival real time strategy game.

https://store.steampowered.com/app/644930/They_Are_Billions/

It's easy to deal with a few zombies, since they're very slow and stupid, but as you get more and more of them all over the place, and then huge swarming waves of them, it's insanely challenging!

I love this game, but it's incredibly difficult, even on the easiest setting.

They Are Billions Gameplay - Zombie Defense Post Apocalyptic City Building

https://www.youtube.com/watch?v=DmVx_OMojSY&ab_channel=Splat...

It's fun to use cheats and sandbox mode to play around with the swarming simulation in extreme situations:

1 TRILLION ZOMBIES - They Are Billions

https://www.youtube.com/watch?v=xeczMg3lMdQ&ab_channel=Sergi...

Check out the dynamics of how the waves of different kinds of zombies interact:

It unleashes and mixes layers of different kinds of zombies with different abilities and attacks. (@ 43:00)

The lighter ranged spell casting zombies are maintaining a distance, but then holes form in their layer, and phalanxes of darker hand-to-hand melee zombies squirt through and fill in the gap. (@ 45:00)

At 1:18:30 he admits that it's obvious the zombie waves will never end, so he lets them win!

It reminds me of slime mold hunting an oat flake.

https://www.youtube.com/watch?v=elqwn7k2Wwk&ab_channel=Journ...

I'd love to play SimSlimeMold.


You're talking about the user perpective, while GP is talking about the programmer perspective.


Yeah a point & shoot game where you can choose your own clothing with various 3D rendering goodies that works at good enough FPS is way more complex implementation wise than a factorio clone with its 2D graphics. For gameplay, it's the other way round.

There is a good xkcd for this: https://xkcd.com/1425/


Yeah, Factorio’s complexity isn’t in the graphics, it’s in the simulation.


Factorio is a lot like Dwarf Fortress - the graphics are a very small part of the gameplay.

Interacting with the simulation is the majority of the gameplay - and the majority of the simulation is spent on that.

The thing that is interesting about Factorio is it is entirely deterministic (similar to old games that could "record demos" such as Doom or the original Starcraft) - this simplifies some things and complicates others.


Right, but the simulation isn't as complex as simulating rain in a 3D game or whatever.

Nobody is arguing that Factorio doesn't have complexity. But do you really think a one-man team could create Cyberpunk 2077?

A one-man team built Minecraft which includes Redstone, which allows for some amazing complexity. But that doesn't make it more complex (dev time wise) than an AAA FPS.


> Right, but the simulation isn't as complex as simulating rain in a 3D game or whatever

I think a naive implementation of factorio would be reasonably straightforward. But that implementation would have no chance to scale to the size of bases factorio manages. The complexity of factorio’s implementation comes from its simulation’s optimizations, particularly in the face of its hard determinism requirement. (Something most physics engines and rain shaders never need to think about.)

Making a good rain shader takes expertise but probably not a lot of time when you know what you’re doing (months not years). Making a game like factorio probably doesn’t take more specialised expertise than many devs here have, but even with all the requisite knowledge it would still take me years to implement something as feature rich, correct and performant as factorio’s simulator.


The gameplay is complex, but that does not mean the software must be complex. Take for example the ancient game of Go. It's a bunch of very simple rules with some stones, yet it's a highly complex game that could not be beaten with traditional software-solutions.


It is also being worked upon by only 17 people as opposed to the 500+ dev teams for AAA games.


AAA Games usually have a different realm of complexity and quality than factorio. Factorio is one-trick-game, in the sense that there is one thing it's doing really really good, while AAA games are doing many different things at the same time and sell you the whole package.

For example, graphic of factorio is very basic. Level-design is not really existing, nor is there any story, music, highly optimized cutscenes, a quest-system or a constantly balanced battle-system. Multiplayer is rather basic, not some high level infrastructure with dozens of servers for 100k+ players. There is also no big marketing where you deliver some stuff outside the game. And Factorio is running only on PC, not consoles or mobiles.

Basically, Factorio is 95% high level code which makes it successful because people enjoy the gameplay coming from this code; while AAA games are successful because of the 95% of things which are not code. People enjoy the gameplay, but even more do they like what is on top and around the engine. The story, the interaction, the atmosphere...


This comparison is somewhat misleading though.

AAA games like Call of Duty Modern Warfare (2019) only have 50-60 developers.

But then they'll have another 50-60 designers. 15 audio people. 40 animators. 90 artists.

Most of that large team size is caused by the realistic graphics, which Factorio (and most other indie games) simply don't have.


Well the factorio team is also only 4 developers, 1 tech lead, 1 art lead and 1 3D modeler for some reason. You still think its misleading comparison?[1]

[1]https://factorio.com/game/about


Here's more info on their GFX pipeline, where Blender is used to create the 3D models then pre-rendered for the game: https://www.factorio.com/blog/post/fff-146 (2016)


The factorio graphics are designed in 3d and pre-rendered to 2d for use in the game


I believe code quality to be closely related to the quality of communication between developers, and it’s a lot easier to achieve high quality communication in a smaller team.


That's a great point and although all of it components have been repeated a million times, I'm not sure I've ever heard them put together that way before.


Right but that's not OC's point.

How long do you think it would take a 4-person dev team to build something the scope of Cyberpunk 2077?


The Sims (the original version) started with around 4 developers during its first 6 or so years, and it took quite a long time to develop. And yes, the team was quite tight and focused, with excellent "high" quality communication (in that we smoked lots of weed together). More developers and artists and designers came in towards the end, after EA bought Maxis, but the original version had a much smaller team than any of the subsequent version.

It pains me to recall how crude and primitive it was even a year and a half before the release (check out the awful flamingo and telephone and fish tank graphics, not to mention the characters and animations themselves, like pot-bellied Archie Bunker always holding a cigar in his hand, and the naughty scenario description text @ 40:44) -- a whole lot of content and user interface and tuning was done at the very last moment:

The Sims Steering Committee - June 4 1998. A demo of an early pre-release version of The Sims for The Sims Steering Committee at EA, developed June 4 1998.

https://www.youtube.com/watch?v=zC52jE60KjY&ab_channel=DonHo...

Chris Trottier, one of the designers, calls it "Tuned Emergence" and "Design by Accretion":

https://news.ycombinator.com/item?id=20772916

Here's an interview with Chris Trottier, one of the designers of The Sims, in which she describes "Tuned Emergence and Design by Accretion".

Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion

https://web.archive.org/web/20110408034710/https://www.donho...

>Chris' honest analysis of how and why "the gameplay didn't come together until the months before the ship" is right on the mark, and that's the secret to the success of games like The Sims and SimCity.

>The essential element that was missing until the last minute was tuning: The approach to game design that Maxis brought to the table is called "Tuned Emergence" and "Design by Accretion". Before it was tuned, The Sims wasn't missing any structure or content, but it just wasn't balanced yet. But it's OK, because that's how it's supposed to work!

>In justifying their approach to The Sims, Maxis had to explain to EA that SimCity 2000 was not fun until 6 weeks before it shipped. But EA was not comfortable with that approach, which went against every rule in their play book. It required Will Wright's tremendous stamina to convince EA not to cancel The Sims, because according to EA's formula, it would never work.

>If a game isn't tuned, it's a drag, and you can't stand to play it for an hour. The Sims and SimCity were "designed by accretion": incrementally assembled together out of "a mass of separate components", like a planet forming out of a cloud of dust orbiting around star. They had to reach critical mass first, before they could even start down the road towards "Tuned Emergence", like life finally taking hold on the planet surface. Even then, they weren't fun until they were carefully tuned just before they shipped, like the renaissance of civilization suddenly developing science and technology. Before it was properly tuned, The Sims was called "the toilet game", for the obvious reason that there wasn't much else to do!


I'm not sure to understand your point.

More devs does not mean less bugs, it does not mean faster development, in fact, it does not mean anything.

An AAA game may need 500+ games, because that's what the technological constraint requires in terms of brain matter.

If big studio could launch an AAA game with only 10 devs, they would do it.


Yes they don't do it with 10 devs because the complexity is high. You don't think you need a larger team to handle complexity? Or you think the 500+ team normalized to complexity actually tell that AAA are understaffed.


I imagine at one of these 500+ companies the majority of those are in the art department.

I'm thinking about say DICE. DICE has made essentially the same game (battlefield/battlefront) about 10 times. The 3d engine does get upgraded game to game, but clearly the majority of the delta between games is simply the art.


I do think you need more dev to handle more complexity.

But more dev to have less bugs, or to develop faster is like saying that with 9 pregnant women, you can deliver a baby in 1 month.


So you are saying in a large complex project there are no impact on bugs by number of devs? I'm not saying there is a linear relationship but it's naive to say that having a large team does not help you handle bugs.


> If big studio could launch an AAA game with only 10 devs, they would do it.

They could, if they gave themselves 8 years. Factorio has been in development since 2012.

AAA games ship on a deadline; naturally the work is divided as much as possible among many teams. More devs can in fact mean faster development if you're OK compromising on quality.


You vastly underestimate efficient implementation of simulating and rendering so many entities at the same time. A lot of big name games crawl if there are 50 units doing their thing.


I think AAA games gain complexity from grafting many technologies together. Yes a 3D engine and GPU stuff adds complexity that factorio sidesteps. And also, to many folks here they see the complexity of factorio because they are exposed to it, while AAA games hide the game mechanics from the user.

However Factorio seems to have done everything from scratch. the game engine, the UI, etc.

And don't forget the (non-technical) complexity of developing out in the open with their blog and alpha testers.


You clearly have very little experience developing commercial games. The less you know the simpler you think it is. Physics is easy compared with the complexity of Factoroid. You are like somebody saying “Putting a man on the moon is EASY - just build a rocket, put him on top and boom you are done! Don’t know why it took so long for NASA”.


It is obvious that you never used the logistic systems and built anything interesting using circuit networks


The factorio development blog is one of the best development blogs out there


Kinda dumb though. Isn't the point of an "alpha" to release something before it is stable? Otherwise it's just called a release. You can have a rapid release schedule and still release stable software.


While having people find bugs might be one reason for an alpha release, it's not the only reason, or even necessarily the main reason. You might also want to see if people like a new feature, if the feature is well balanced, if it interacts with other systems well, etc. This is all useful information to gather before releasing a polished version to the general public.

If your alpha release is full of bugs, the type of feedback you'll be getting from users of the alpha is "this thing doesn't work" rather than "this thing is too easy/hard".


Leading up to this the developers were pushing out twice-daily updates to the game. These guys give unheard-of levels of support to their base. They should be the object of study in academic courses.


This seems to be the standard for indie dev studios [0]. They have to work harder and smarter than the big guys because their resources are in such short supply and they can't survive having a game that flops.

[0] Just look at Edmund McMillen (The Binding of Isaac, Super Meat Boy), Eric Barone (Stardew valley), Cardboard Computer (Kentucky Route Zero), Scott Cawthon (Five Nights at Freddy), Extremely OK Games (TowerFall, Celeste) or The Fullbright Company (Gone Home) to mention a few.


Indie dev studios also have the ADVANTAGE that they can do this - if Bob wants to post a blog he just needs to run it past Jim and Barbara - no need to run it through Legal, etc.


Also “management” and “devops” needs to trust every dev to push out a high quality update. Twice daily deploys don’t happen if QA goes through a 48 hour test process for every release.


the devs at factorio have developed an amazing test suite automation system to automate regression tests. I wouldnt be surprised if this is what gives them most of their confidence to do twice daily releases. I thought it was newer, but they seem to have had it for the past 6 years. So i guess my point is they dont need to 100% trust every dev (while I'm sure they could with such a small team) they can instead trust in the tests.

https://www.factorio.com/blog/post/fff-62 https://www.factorio.com/blog/post/fff-186


Wait, this went from twice-daily “updates” to release too fast. One is a blog post / tweet, the other is software related ;-) Where did you get twice daily _release_ from?


Release notes for updates pop up when you start the game. Last weekend I was starting the game twice a day. New release notes popped up every time. The "twice daily release" came from two or more updates being pushed out per day running up to the official 1.1 release.

Since the 1.0 release last year Wube has published what, 2 or 3 blog entries including the 1.1 release announcement?


Who owns the tests? Developers.


Mind that the amount of QA you ought to have heavily depends on what game you're making - e.g. with a story heavy game, you 100% want give or take 3 weeks on every update for localization checks, or for a MMO you probably want to run new clients/servers with your testers first for about a week to make sure nothing catastrophic happens, which is especially important in online games(lots of bad PR and real money invested by players - you really don't want to have to roll back "saves").

All depends on budget and quantity of course, but this is what's usually planned for from my personal experience working in that sector.


Not a dev: " Twice daily deploys don’t happen if QA goes through a 48 hour test process".

Why does that matter, surely it's pipelined. If you feed in RC packages to a 48h QA twice daily then after 2 days lag you're getting tested code twice daily.

I'm not suggesting that's realistic for large software houses, just that the logic seems wrong?


I think the QA process isn't usually as pipelineable as you're suggesting. On a website it's often easy to QA changes that happen on page A at the same time you QA changes on page B. But in a game, especially one like factorio, it's probably a lot harder to find features that can be tested and deployed simultaneously with other features.

It would be easy to test changes to the design of Level 3 at the same time as changes to the design of Level 5, but it would be hard to test changes to the way inserters work at the same time as testing changes to the way conveyor belts work.


If the QA cycle is too long the developer gets out of the zone in that area - two days isn’t bad but some places you won’t get review or reports for weeks after submitting code.


I wouldn't call it standard for indie dev studios. It's certainly what makes a good indie dev studio stand out, and your list which is comprised of studios that make games in the top ~5% percentile of quality shows that.


They also know what they have - an extremely loyal fanbase and a great product that can stand on its own. See: they never put it on sale on Steam.


> some media picked up on it and presented it as a "fairly bugged release".

This is so unfortunate. I've never used any software, game or otherwise that has been as bug free as Factorio. I guess it must have been "journalists" who didn't want to put in any time playing the game.

Congrats to them on reaching 0 bugs and 0 open issues - I can only dream of achieving that one day!

For people wondering why they see Factorio updates on HN when no other game makes it, I wrote about what makes this game appeal so much to HN users - https://blog.nindalf.com/posts/factorio-and-software-enginee...


While pointing out that factorio has bugs is factually true, its effectively just clickbait in terms of the duration of how long they impact players if at all. I'd judge that newsfeed into oblivion. But these articles are few. The main game sites only have glowing reviews.

Factorio's bugs are swatted at high speed with gusto and grace. How do I know this? I use the experimental version for gameplay. Any bugs soon vanish into the changelog history.


> I guess it must have been "journalists" who didn't want to put in any time playing the game.

I'm not really sure what you mean. I'm not even sure what the main article meant, because I could only find four mainstream reviews covering the 1.0 release. The first one by RockPaperShotgun[0] is essentially glowing and mentions how they've closed so many bugs. The second one by Game Enthusiast which seems pretty happy about it, the only reference to the word "bug" in the review is:

    Let’s just say, Factorio has always been a diamond in 
    the rough. Or more like just a lump of promising coal. 
    And after 8.5 years, 18,855 bug reports, 5,603 mods, 
    and probably thousands of man hours, we can finally 
    conclude that Factorio has become a spectacular 
    diamond. Albeit, a diamond for gamers with a highly 
    specific acquired taste.
    - GameEnthusiast review[1]
The only other reviews I could find were both by PCgamer, and only one mentioned the number of bugs left, but was overall positive. Here is the reference to bugs, which is almost entirely factual, and seems mostly-positive about it aside from a single line:

    The rush to get it out a month early does mean that the 
    1.0 build is still a bit on the buggy side. According to 
    Wube, there are around 150 reported bugs and 80 internal 
    tasks that still need to be tackled, but they're 
    apparently smaller issues rather than critical ones. You 
    can see the known issues and current bug reports on the 
    official forum. They'll hopefully be dealt with in the 1.1 
    update, which will focus on fixes and "filling the most 
    obvious gaps" rather than adding new stuff. 
    
    Factorio was pretty much feature-complete already—though 
    Wube was also planning a campaign and some UI improvements 
    that have been cut [...]
    - PCgamer review [2]
The fourth review is particularly glowing. When talking about bugs they say:

    Factorio has been in early access for four years, so 
    most of its creases have been ironed out. There are some
    minor flaws. Visually it isn't the most exciting game, 
    with an odd penchant for beige and brown. The top-down 
    perspective can also obscure potential spanners in your 
    works, like a missing piece of conveyor belt or an 
    inserter facing the wrong way.
    - PCgamer review[3]
they give a 91/100, and have this particularly glowing passage at the start:

    Let's skip the preamble, shall we? Factorio is 
    brilliant. If you're remotely interested in games about 
    management, construction, and above all production 
    chains, then hop aboard the nearest conveyor belt and 
    grab yourself a copy of Factorio this instant. Then 
    pick up another copy for the most important person in 
    your life, because they won't be seeing you for a 
    while, and at least this way they'll understand why.
    - PCgamer review[3]
I'm honestly not sure why one line in a mostly-positive-but-factual review that is mostly not subjective, results in in the need to disparage the entire journalistic profession? Could you explain why? I'm extremely curious, thanks.

[0 (RPS review)]: https://www.rockpapershotgun.com/the-fantastic-factorio-has-...

[1 (GameEnthusiast)]: https://game-enthusiast.com/2020/08/18/factorio-review/

[2 (PCgamer)]: https://www.pcgamer.com/uk/factorio-finally-leaves-early-acc...

[3 (PCgamer)]: https://www.pcgamer.com/uk/factorio-review/


On the contrary, load any map and there are bugs everywhere!


I wish I could fix my bugs at work with machine turrets and lasers.


> "journalists"

In my experience, gaming journalists are often neither gamers nor journalists.


Like science journalists, political journalists, or really any journalists.

Are their any industries with quality journalists that have legitimate industry knowledge?


They are gems in the rough, but they do exist.

One that instantly comes to my mind is Matt Levine from Bloomberg, who writes on finance. People on HN seem to be holding him in high regard as well, whenever his name comes up.

I wouldn't say it is due to the industry of his choice commonly having quality journalists that have legitimate knowledge of the industry, though. Finance journalism is very densely packed with typical trash journos, just like other industries.

I have an armchair theory that higher barriers to entry in the industry (in terms of the pre-existing knowledge that target readers have) increases the likelihood of a quality journalist like Matt Levine appearing. Gaming journalism requires almost no prerequisite knowledge from readers aside from playing games, so the average quality of "game journalism" is abysmal, and people who read those articles are usually just all kinds of people. Same thing with "pop science", because everyone wants to jump on the next clickbait about some miracle drug or other futuristic sounding stuff. With finance journalism, most average people on the street have zero interest in reading those articles, so the audience self-selects mostly towards those who already have the pre-requisite knowledge and understanding of the subject matter, so the demand in terms of quality of the journalism from the target audience is higher on average. Which would increase the probability of someone like Matt Levine popping up, since those people are much more valued and sought after.

That's just my personal guess though, so I don't encourage anyone here to take the entire previous paragraph as a fact.


I am a scientist and I am pretty happy by most journalists I have interacted with and most science articles for non-scientists I have seen. Like all media, just stick to reputable outlets.


One thing some people don't know is there is a ton of really cool mods - https://mods.factorio.com/

You can see some of the most popular at - https://mods.factorio.com/downloaded and https://mods.factorio.com/trending


Here are some recommended mods from a previous Factorio discussion: https://news.ycombinator.com/item?id=22933767 Mostly convenience/quality-of-life improvements.

I "completed" the game using a lot of these and thoroughly enjoyed it but it was incredibly addictive.


Some favorite mods (I've played a LOT of factorio over the years)

Bobs Mods is a good "new game plus" after beating the base game.

Space Exploration adds an amazing amount of depth, but it's somewhat intimidating.

FNEI is a very useful recipe browser.

Recursive blueprints are incredibly cool, but also hard to reason about. Fun to try though!

Factorissimo add recursive space (buildings that contain more space inside than their footprint).


Amongst the total conversions, I've quite enjoyed Krastorio 2.

If you're into really detailed and complex factories, Industrial Revolution might be for you.


As long as we're doing mod recommendations, I can also recommend the Space Exploration total conversion, which expands the game far past your first rocket launch. If you're looking for a really complex factory and are so inclined, it's compatible with Krastorio 2 (but it also works standalone).


Had a blast with Krastorio 2. Thanks for your Industrial Revolution recommendation!


Looks like the top of the "downloaded" list is basically all of Bob's mods? What's the story there - is it basically "Factorio but with an alternate game progression"?


Yeah, that and "angels" mods are two very popular mod groups that make the game much harder and more complex.


Any good texture packs people can recommend? I can't stand the outdated graphics of the vanilla version. (Yeah, I'm one of those people.)


Their multithreading story here was fascinating. Gratifying that they have such a visual explanation.


They keep the discussion very high level. The topic is much deeper, but they appear to be constraining themselves to a single-timestep-state. If they loosened up the state to include two timesteps then a lot more could be parallelized. Since the simulation and graphics are in lockstep, this would add one frame of latency. One frame of latency is hardly noticeable against the 7-10 frames minimum added in multiplayer but the payoff could be massive. It’s hard work, without a doubt. An example I like to point to is the minecraft mod “tickthreading”. It was never stable, but the concept is there and sound.


It's hard to tell for sure. Double-buffering game updates like that can involve a lot of memory copying. Considering that it would not surprise me in the least if Factorio was close to being bottlenecked by memory bandwidth, this could easily be counterproductive.


Factorio is sensitive to memory latency, not memory throughout. This matches expectation of a single threaded application with many data dependencies. Ripe for multithreading where data independencies can be made.


I've always wondered, how exactly games do this. Do you have at least one "write" state and one "read" state, so that the simulation can write during its update and the renderer can read the previous state independently? I think copying the write state to the read state would probably take some time in a Factorio "gigafactory", while the renderer only has to access a tiny part of the state most of the time.


The game Destiny went this route to increase GPU throughput by 50%. An extra frame of latency, the dev's said, was hardly discernible on a controller.


Recently discovered a less complex, open source alternative called Mindustry. Highly recommend it.


A very similar game called Dyson Sphere Program came out in the last week, I've been having a great time with it! Basically Factorio with planets and solar systems you can fly to. Early access but tons of content.


Dyson Sphere Program looks interesting.

There's also Satisfactory, which is a 3d first-person-perspective factory builder.


DSP is quite good. I think it's worth the ~$20 currently. Definitely a few QOL rough edges and some balance issues still, but certainly playable and haven't seen any critical bugs or crashes.

I think building systems in DSP feels a lot more like Satisfactory, but it's much easier to get a good view of whats going on. Loved Satisfactory but found FPS perspective frustrating frequently.


I just heard about this game earlier today! It's looked super cool from what I've seen, I might have to get it soon...


Great game. For me, it scratches all the right factorio itches and adds some Sci-Fi and Space(TM).


Many of the more popular mods add complexity to Factorio. I guess there might be an audience that swings the other way, but I don't imagine the lack of the dopamine surge from solving the next problem is going to have Mindustry players putting in the same insane hours.


This is one of those cases where it is best to not judge it before you try it. Mindustry has a bespoke assembly language that lets you control the behavior of drones and buildings. The complexity cap is far above factorio.


While I completed it, I personally did not enjoy my time with Factorio. In my review I specifically used the term "complexity fetishist" to describe the kind of player who might enjoy the game too much.

Which isn't to say there's anything wrong with the game. It actually felt kind of weird to not recommend it since it was a pretty darned good execution of what it set out to be, I just couldn't ever actually suggest to someone that they play it. Either they wouldn't like dealing with the needlessly ever increasing in complexity goldbergian monstrosity, or worse they actually would.

I think the game's popularity among developers highlights a core problem with our industry. Look at Factorio, then look at all of the over engineering, the layers upon layers of abstraction, the obsessive need to keep making software larger and more complicated only to eventually tear it down and rebuild the exact same thing with the new-hotness widgets...


The universe is a Goldbergian monstrosity running on a Godlbergian mostrosity. Computer programmers didn't invent this pathology, and they might help us understand it.

Factorio is a celebration of things as they are.

"Five: From the wheels-upon-wheels-upon-wheels evolution of computer programming dig out, systematize and display every feature that illuminates the level-upon-level-upon-level structure of physics." ~ JA Wheeler in "Information, Physics, Quantum: the Search for Links"


My point is that the problem with complexity fetishism is that one adds complexity where none is necessary simply because one enjoys the complexity. That's fine for a game, but our industry is very often doing it at work with products that are ostensibly meant to make people's lives better.


"then look at all of the over engineering, the layers upon layers of abstraction, the obsessive need to keep making software larger and more complicated only to eventually tear it down and rebuild the exact same thing with the new-hotness widgets"

That could be a sane evolutionary process. I'm not saying it is, of course there are problems with the tech industry, but this process of exploring a space of possibilities with the tools you have, then breaking them down and building up a better suited set of tools from the ground up doesn't sound like a bad thing to me.

Maybe what I mean is, what makes you think the game is unnecessarily complex? Playing it, I was always amazed with how you become capable of achieving more and more with less and less time and effort as the game goes on. I don't see that it is made artificially more complex, it seemed like there was a lot of effort put into making the emergent complexity manageable at larger and larger scales.


- The vast majority of products you create are never actually employed to do anything and are instead thrown into a blender to make science-goo, arbitrary amounts of which are required to unlock new stuff that is also mostly destined for the blender.

- Bots are introduced way too late in the game, forcing the player to manage the rapidly increasing complexity of their infrastructure manually for a large portion of it.

- Power distribution is a tedious non-problem you're forced to keep solving, again manually most of the time because bots come so late in the game.

To name a few. The natural argument here is that those things are required to motivate the player to make their automation faster and more efficient to progress the game, but the point is that they feel needlessly arbitrary. In a game like Subnautica, for instance, there are some big high-resource things you have to build with reasonably deep critical paths, but they are things you actually use instead of just melting them down to increase a number somewhere. They feel necessary, science-slurry doesn't.

Players also claim that yeah, that's all true, but the real game doesn't start until after you've researched everything and launched your first rocket anyway. Meaning all of that is essentially a 40 hour tutorial.


Added complexity isnt always bad. It's just that abstraction is indeed a very, very hard thing to be done. Powerful features will be complex.

Take browser as example, it's a form of abstraction (imo, it's an abstraction done right). It abstract the http communication in form of html and represent as gui. Browsers are indeed, very, very complex.


Factorio was inspired by minecraft tech mods. My favorite minecraft mod is gregtech. It adds the most complexity of any mod I know of, but it’s balanced in a rewarding way. Higher tier setups need more factory to produce, but also produce squared gains (each power tier goes up by a factor of 4). The endgame is fusion for both power and alchemy. It’s great stuff, but eventually one has seen it all.

If you really want to see an offender of complexity for complexity’s sake: check out gregtech new horizons. They maintain a minecraft modpack based around needing gregtech recipes for all other mods. On paper that’s great. Hell, even I made a pack like that for personal play. They go pretty far with it though, to the point that the maintainers seem to have an expectation of grinding endlessly and never reaching the highest tiers. An outsider might dismiss it as chasing a dragon.


It's tough to get the curve right.

I actually haven't completed all that many of the packs I play, e.g. I finished Age of Engineering (even meticulously upgrading all my storage to infinity though I knew I'd probably never use it) but I didn't technically finish Agrarian Skies (I had a few of those stretch goal quests left) or Project Ozone 2 (got bored during the last of my singularities) or even Compact Claustrophobia (I've run it twice, I escape, and then I tend to lose interest before getting to the Moon)

I recently finished Star Factory and I realised that on the one hand it was nice to be able to look at it and say yup, I have ticked every box, almost anything you could want my setup now produces in unlimited quantities -- but on the other hand of course because it's so small it also felt cramped. I had to use very obviously bad solutions because the better options just weren't available in the pack.

One problem I had in Factorio was that it seemed like it was just doing one thing over and over, with different dress up - whereas I like how Minecraft packs teach me both new things I need to do, and entirely new ways to solve problems. Writing a Predicate that automatically processes my Astral Sorcery crystals goes from an idea that I'm obviously not the first to have, to something I can do almost by reflex... and then a pack says too bad, no Integrated Dynamics so figure out a different way.

The other problem I had is that I like to ignore our universe's rules, I like infinitely renewable everything, sure that's unrealistic but it's a video game. My Minecraft wins are generally powered by something ludicrous, like a single inexplicably efficient solar panel beaming energy from a world of eternal daylight, or a closed box which is somehow producing and burning unlimited amounts of Ethylene made from nothing. Factorio clearly doesn't want such shenanigans.


Constant learning does keep modded minecraft fresh. That’s why I eventually stopped playing: I had sufficiently seen it all.

One thing that really allured me towards the end was the idea of voxel layouts. I found it fun to optimize pipe layouts between heat exchangers and boilers to maximize throughout and minimize resource cost.

Factorio has similar feelings with 2D layout optimization, but it feels comparatively simplistic. There is also never a crunch for resources in factorio. “Oh I need more iron” is very different than “I just spent an hour hunting down a chrome vein and I better carefully pick what I’ll make next”. This is a rather hardcore game mechanic and I can see it being very niche.


I think a lot of the appeal comes from reducing complexity, not adding it.

My first playthrough was a rube-goldberg spaghetti mess. Scaling out specific resources near the end became a very painful process.

I'm in my second playthrough, and the goal is to build a factory WITHOUT all the complexity. How can I cleanly scale out resource production without things becoming a hot mess? How can I build flexible re-usable subsystems that don't restrict systems downstream?

Solving simple problems with complex solutions is one thing (over-engineering) but solving a complex problem with an elegant solution is much harder. And factorio is full of complex problems.


That's an interesting take, I think I agree.

My biggest problem with Factorio is that after a few hours it starts feeling like programming, which is why it attracts a lot of programmers, but it lacks any tooling or QoL features that remove some of the frustrations of programming.

I can't add tests to ensure that refactoring my belt system doesn't break some process on the other side of the map.

I can't place a breakpoint to trigger a debugger and step through a tricky piece of logic.

I can't raise exceptions on unexpected behavior and handle it in a sane way.

Some of these are contrived examples and I can't imagine what the UI would look like, and they might be achievable via debug mode or some mods, but I haven't explored much outside of the base game.

So as the factory grows (and it must grow!) the game doesn't have any mechanisms to help you deal with the complexity. After a while it becomes a chore to manage, and I usually end up thinking that I'd rather enjoy programming instead. Which after spending a work day doing at my day job, I rarely have the motivation to do in my spare time, and when I do, I'd rather invest it on side projects than on Factorio.

Still, it's one of the greatest games ever made, and the thrill of watching it all work when it does work is exhilirating, much like programming. :)


Every game is about adding artificial barriers the player has to deal with. Games without artificial barriers are called movies.


Not putting in insane hours is a feature for many.


Another game I like to recommend that is in the same vein is Big Pharma. I particularly like the aesthetics.


Megaquarium is by the same team as Big Pharma

It's a aquarium business management simulator (think RollerCoaster Tycoon but indoors and with aquatic life.) Really enjoyed it as a relaxing casual game.

Looking forward to trying out Big Pharma.


That looks very similar (in gameplay) to https://www.puppygames.net/revenge-of-the-titans/ which is another great game.


Hm, I tried Mindustry multiple times after enjoying a few runs of Factorio, and did not get hooked. I think my gripes are:

- all buildings look the same, so it is hard to make out the layout of the factory from an overview

- (at least initial) levels are very small, and when you move on, you have to build from scratch. I love infinite worlds since Minecraft. It would also be ok, if levels preserved my previous setup when reentered.

- the pace is too high (maybe it is controllable, I haven't looked) to plan far ahead, which is exactly the most interesting problem in Factorio (and Satisfactory BTW)


Mindustry is absolutely fantastic, especially the recent 6.0 update. As addictive as factorio and I think that the whole combat aspect is much more fun.

Combat in factorio is an aside, almost a nuisance, but factorio could be better if it would copy some things from mindustry on that front.


Shapez.io is very much in the same spirit.


I taught myself linear programming because of Factorio. It is easily the single game in which I have spent the most time, probably close to 4,000 hours. It is delightful to see that the team is continuing to improve it, even after the 1.0 release.


Warning: this game is seriously addictive. I don't game a lot, but I tried this and lost a weekend. Just say no


I can confirm.

I downloaded the demo at 10PM. When I looked back at the clock it was 4AM.


I bought the game late last year and have almost 700 hours already. This is a great game and the 1.1 update is awesome. Logistics, move queue, and follow for Spidertrons are game changing.


The section on multithreaded belts hits on my biggest complaint with this game: I don’t like that the belts are multi-lane, I wish they were smaller and single-lane.

I’ve tried to get into Factorio twice in the past but I always eventually run into some annoying issue where oops, I need resources to be on the other lane of a belt, or a grabber arm that should obviously be able to reach something isn’t, or something of that ilk, and I now need to scrap and rebuild my entire design.

At that point, I feel less like I’m building a factory and more like I’m working around the game engine, and it just immediately kills my interest in going further.


>I wish they were smaller and single-lane.

Smaller and single-lane as in individual half-width belts that can be placed independently? I think it would be more of a pain to play with, because now only would you now have separate left- and right- belt items, but also have more complex rotations to be able to convert one belt into another at a corner. Eg to convert a right-belt going east into a left-belt going south, you need to rotate just the tip of the right-belt, not the whole right-belt.

---

>I need resources to be on the other lane of a belt

A single splitter and a little space around it can swap a belt around if you need to. Or better yet, find the place where you're mixing the two items on the same belt and make the change there.

    A ╗
      ╠══ A/B
    B ╝

    A ══╗
      ╔═╬═ B/A
      ╚═╣
    B ══╝
(The ╬ in the second diagram is a crossing of belt and underground belt.)

For single-item belts where everything's on one side and you want everything to be on the other side, it's even simpler.

        ═╦╗
    A/- ═╝╚═ -/A

    -/A ═╗╔═ A/-
        ═╩╝
The ╦ and ╩ are a vertical belt feeding into the side of a horizontal belt. Because the horizontal belt has another horizontal belt to its left, the point where the vertical belt touches it does not make a corner.


To each their own, but I find it an interesting dynamic. I’m having a hard time understanding the problem, but the game does have a learning curve. Suggestions: The majority of my belts carry one item. The remainder carry only one type in each lane. Those are neatly merged at the beginning, and consumed indiscriminately at the end. That is, the consumer wants both items so they can be transferred by one inserted. I never pack a belt to save on belts or space.

I’d hate for this to be the nit that stops a person from going deeper into this amazing game.


You might check out https://shapez.io, which is a simplified (an open source) clone with single-lane belts.


Unrelated to the article, but I found clicking the rocket at the bottom of the webpage an amusing (and fitting) way to handle the typical "scroll to top" feature. Kudos!

Also - Awesome game!


this is great, the new train logic allows for completely modular factory building, can't wait to start all over again.


I purchased Factorio recently because this game looks amazing. Anyway I couldn’t manage to really get into the game because it’s just overwhelming. Can someone recommend any good tutorials or guides to get into it so I can start building my awesome factories?


After a few failed attempts in the start I discovered Xterminator's series[1]. Now I just roll a similar map and try to imitate what he does.

[1]https://www.youtube.com/watch?v=fimGkeVVASA&list=PLwehwVVQir...


One of the best games I have ever played. It gives me the same sense of satisfaction and feeling of achievement that programming used to give me. I have been programming for so long now that there are very few interesting challenges left.


Does anyone have experience updating servers to 1.1?

Is it as simple as loading into 1.1 loading the old 1.0 map in single player, saving it as 1.1 then uploading to the server?


If my experience with old versions is to go by, you just update the server binary and fire it up. No need to download + upload!

Factorio is a very stable game, do a backup and give it ago!


Beware that some mods haven't been updated to 1.1


This is super exciting! Going to be a fun weekend.


Earlier HN discussions about Factorio:

Factorio 1.0

https://news.ycombinator.com/item?id=24155609

https://factorio.com/blog/post/fff-360

>Friday Facts #360 - 1.0 is here!

https://news.ycombinator.com/item?id=24163024

>Factorio (and also games like SimCity) are not actually pure CA rules, but they combine cellular automata techniques together with many other techniques like system dynamics, etc.

Will Wright gave a great explanation of how simulation games combine different techniques together in three intersection dimensions: Topologies (agents, networks, and layers), dynamics (propagation, growth, grouping, order, allocation, mapping, specialization, and nesting), and paradigms (cybernetics, system dynamics, cellular automata, chaos theory, adaptive systems, network theory).

https://www.youtube.com/watch?v=CdgQyq3hEPo&t=35m50s

>Lessons in Game Design, lecture by Will Wright, Computer History Museum, November 20, 2003.

Understanding Kafka with Factorio (hackernoon.com)

https://news.ycombinator.com/item?id=20362179

>When I saw this title, I first thought it was about understanding the cockroach-like aliens in Factorio, but it is actually about queuing and congestion and parallel processing with conveyor belts and factories!

https://hackernoon.com/understanding-kafka-with-factorio-74e...

Von Neumann Universal Constructor (wikipedia.org)

https://news.ycombinator.com/item?id=22727228

https://en.wikipedia.org/wiki/Von_Neumann_universal_construc...

DonHopkins 10 months ago | on: Von Neumann Universal Constructor

https://news.ycombinator.com/item?id=22738598

>Factorio players will recognize these tapes of construction instructions as 2D "blueprints" that construction drones use to build patterns of factories and conveyor belts, etc. In Factorio, after your drones have build a blueprint in the unpowered, unsupplied state, you can connect it to the power grid, hook up pipes to deliver fluids, and run conveyor belts in and out of it to deliver resources and products, and it will immediately starts doing its thing. Playing Factorio is uncannily like von Neumann 29 state cellular automata programming, not by coincidence. So it's a great way to get your head around cellular automata programming, gpu programming, parallel programming, queuing systems, and data flow programming in general!

https://news.ycombinator.com/item?id=22738268

>Here's some stuff about that I posted in an earlier discussion, and transcribed from John von Neumann's book, "Theory of Self-Reproducing Automata".

>His concept of self-reproducing mutating probabilistic quantum mechanical machine evolution is quite fascinating and terrifying at the same time (or outside of time), potentially much more powerful and dangerous than mere physical nanotechnology "gray goo" and universe-infesting self replicating von Neumann probes:



I don’t think we have to worry about the HN hug of death. Wube posts their updates to their own subreddit that has 230k subscribers. Afaik their website has never been smothered by traffic.


There were problems early on when they were posting GIFs instead of videos. It was nice because they noted the bandwidth savings by converting over to WebM instead.


The website doesn't load for me on firefox on Android - some vague security issue (I'm guessing it could be related to OSCP Stapling?). factorio.com appears to be on cloudflare, so you are of course right that it's not a hug problem.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: