10 ms·
I believe you are mistaken, Factorio is an incredibly complex game.
by serhatozgel 6y ago
I believe you are mistaken, Factorio is an incredibly complex game.
- linkdd 6y agoDo 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...
- BorisTheBrave 6y agoI 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.
- js8 6y agoI 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.)
- sleepybrett 6y agoI think it's probably as technically complex as a 3d game engine. Just differently complex.
- maccard 6y agoI really really don't think so. In my experience, 3d games are orders of magnitude more complicated than 2d games.
- username90 6y agoMost 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.
- maccard 6y agoIve 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.
- scotty79 6y agoPlay 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.
- rkangel 6y agoSpecifically, 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.
- maxfurman 6y agoMost 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.
- rkangel 6y agoThey might if they're just off camera. They don't if they're in the next town.
- Sohcahtoa82 6y agoDepends 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.
- loup-vaillant 6y agoThe 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.)
- LaGrange 6y ago> 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.
- DonHopkins 6y agoIf 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/ 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=SplatterCatGaming 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=SergiuHellDragoonHQ 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=JourneytotheMicrocosmos https://www.youtube.com/watch?v=elqwn7k2Wwk&ab_channel=Journ... I'd love to play SimSlimeMold.
- ashtonkem 6y agoMost 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.
- munificent 6y agoYes, 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.
- maccard 6y ago> 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)
- 6y ago
- 0-_-0 6y agoYou're talking about the user perpective, while GP is talking about the programmer perspective.
- est31 6y agoYeah 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/ https://xkcd.com/1425/
- dkersten 6y agoYeah, Factorio’s complexity isn’t in the graphics, it’s in the simulation.
- bombcar 6y agoFactorio 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.
- fastball 6y agoRight, 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.
- josephg 6y ago> 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.
- slightwinder 6y agoThe 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.