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 (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.
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.
- 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.
Keeping that alone bug free is quite the achievement.
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.
craft/place buildings implies a very discrete action and does not encapsulate the sum of the parts, the interaction between all these systems.
Simple building blocks don't mean simple programs. Heavily interacting components leads to complexity and significant bugs. That's just software engineering 101.
"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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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...
(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.)
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.
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.
In comparison collision detection and AI need to rely on a lot of trickery (and thus bugs) because naïve approaches explode in complexity.
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).
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...
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.
- 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).
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.
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.
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.)
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.
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.
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.
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)
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.
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! ;)
There is a good xkcd for this: https://xkcd.com/1425/
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.
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.
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.
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.
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.
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.
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.
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.
How long do you think it would take a 4-person dev team to build something the scope of Cyberpunk 2077?
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!
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...
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.