Menu simulation, Spidertron, Ghost building, Confirm button
factorio.com
factorio.com
- Friday Facts #82 - Optimisations: https://www.factorio.com/blog/post/fff-82
- Friday Facts #117 - Path Finder Optimisation I: https://www.factorio.com/blog/post/fff-117
- Friday Facts #176 - Belts optimization for 0.15: https://www.factorio.com/blog/post/fff-176
- Friday Facts #204 - Another day, another optimisation: https://www.factorio.com/blog/post/fff-204
- Friday Facts #209 - Optimisation is a way of life: https://factorio.com/blog/post/fff-209
- Friday Facts #281 - For a Few Frames More: https://factorio.com/blog/post/fff-281
Few games give you enough creative choice to materialise how your head works in a game. A lot either over-prescribe the optimal way of doing it, or the meta just forces your hand.
Factorio lets you use rules to express yourself within a space they made for us. I play it for the same reason I first coding.
If I think back at how my various friends played The Sims back in the day, I think that's a pretty high contender of meeting that goal.
I'll go on a bit of a tangent and say that I don't play Factorio for the same reason that I keep coding.
The gameplay gives you creative choices and sets of rules, and a satisfaction of working within those rules to get things going by reflecting your head inside it, much like programming.
I bounced off of it after a few short hours, with a deep sense of lost time. If what I do in the game is the same I would do for work or as side projects, then why am I choosing the game, which has no outcome in the real world?
I went back to my side project, and never played Factorio again.
The game is great, I just can’t spend that much time... psychologically... repeating the same motion ad infinitum
The one type of single player game I do play are either city building games or 4X games. The freedom for creativity and randomness, respectively, makes every game new.
I do think you're on to something in that having to visualise everything yourself when reading books does get me more invested, probably because I can better project onto the characters than if they're just given to me on a screen.
I recently played an interactive visual novel (think choose your own adventure only digital) and.. wow, it was not as I expected. By the time shit went down, I was already so invested in the characters that by the time shit hit the fan, I actually legitimately cared about what happened in a way that no movie or show ever has and only a few books and games have.
How do you feel about the highly interactive "all of your choices will impact the story" games, where few people will experience exactly the same thing you did? For example, Detroit: Become Human or Until Dawn, where any or all of the main characters can die without the story ending (quite early on in some cases too; but they can also survive), or the Life Is Strange games?
For the same reasons you might engage in any entertainment activity.
Real-life still-unsolved puzzles are hard ; whereas puzzle games keep the difficulty under some control (except for the infamous boat puzzle in The Witness).
Real-life problems are hard because, often, proper domain modeling/formalization is part of the problem. Puzzle games generally don't have this 'domain modeling' part, they provide you with an extremely consistent set of rules, and you have to build a solution inside it. Sometimes this set of rules is partly implicit, and discovering it is part of the fun (e.g The Witness, Antichamber) ; but you never have to worry about the real-world and it's complexity.
Not every puzzle game has mechanics that combine in such surprising and entertaining ways so consistently, but I think this feeling is what most of them are going for.
A side project may well give you that some of the time, but will also involve tasks that don’t give you that.
In other words, factorio is a game! They rigorously exclude more realistic features if they believe they'll make the game less fun. You can't do that in real life! When I play it, I feel like I'm working on a side project in that peak phase where you're fleshing it out and what you have in your brain is appearing in front of you. As another commenter said, it helps you recover from the constant stumbling blocks and blockers that burn you out during real development.
Games, such as factorio, can provide you with the small scale successes relatively risk free, allowing you to recover from burnout.
If you consider this from the functional perspective, then it becomes yet another useful tool to the developer.
True. But they can also provide you with cheap instant "successes" which a depressed person continues to go for, instead of seeking success in the real world.
Once my job got back into more hands-on programming, I quickly lost interest in playing Factorio. I've been reading other programmers having the same feeling. You expend the same type of mental processing with both, so one makes you too tired to do the other.
That said, if I have a long weekend or a week off, I might find some time and enjoy playing it, and still feel refreshed when returning to work.
It’s like how budding Chinese military leaders were once (still?) encouraged to play Go. It shapes your mind and develops patterns that will later prove applicable to real-world situations.
Watch my oldest daughter play, and you'd think Minecraft was purely an RPG about slaying as many bag guys as possible.
Watch my youngest, and you'd think it was an adorable farm animal simulation.
Watch me, and you'd think it was a low-res architectural sandbox.
Wow, I didn't thought he will be know for that particular game, for me he is the creator of Populous and Powermonger :) Although I played Black and White for much longer then any other of his games (but I didn't remember he made B&W, but I do remember Populous :)
But for an indie game like Factorio with so much development, features, interactions, etc it's almost mandatory.
I'm sure most games have a big automated testing suite though, there's too much in there nowadays to warrant manual testing.
Also, a lot of these kind of games are also highly driven by art style. Which is really hard to capture in automated test suites. Add to that the complexity of a 3D world and all its interactions and associated math.
>Also, a lot of these kind of games are also highly driven by art style. Which is really hard to capture in automated test suites. Add to that the complexity of a 3D world and all its interactions and associated math.
To be honest I wouldn't know where to start testing the art stuff, but the crashes should be doable automatically relatively easily.
It feels like there should be an elegant solution.
Older versions of the game actually used an even more flexible physics engine for objects on belt (not restricted to two lanes), but that was deemed unnecessarily complex -- and the current model is much more performant.
if nextCell.isEmpty():
moveContentsToNextCell()
But what happens when you have A connected to B connected to C and A and B have items? It depends upon the execution order of A and B's doTicks(). If A's runs first then B is still full and so A can't advance its contents. If B's runs first, then it passes its contents to C and then can receive from A when A runs.You might put the entities into a graph, order them by their connections and run the doTicks in the right order. But you can't do that if there are loops in the conveyor belts (which Factorio handles, at least). I haven't come up with a trivial modification of this scheme to handle these problems. Do you have to do multiple passes until everything has gotten a chance? Or maybe a priority queue? I'm not sure. And what if the loop is entirely full? It should advance all the contents one square but may instead get jammed.
> And what if the loop is entirely full? It should advance all the contents one square but may instead get jammed.
In Factorio, it jams.
And what would you do if you want the entirely full loop to not jam? It sounds possible, probably even simple, but I haven't seen how. A solution to this problem is orthogonal to the points you've raised.
That's actually not as big a problem as you'd expect. You would end up with 1-tick gaps, but at 60 ticks-per-second, those kinds of gaps don't end up being an issue, especially when you've got a backed-up buffer that has some natural hysteresis waiting to fill that gap.
> And what would you do if you want the entirely full loop to not jam? It sounds possible, probably even simple, but I haven't seen how.
Compute the graph of connectivity at entity construction, precompute a topological iteration order, and handle each strongly-connected component as an individual entity. Or maybe you could do it with merely a list of elementary cycles; it would take some work to figure out what you want the semantics of loop motion to be if a belt is in multiple loops.
> precompute a topological iteration order
So do you mean the a topological sorting as in [1]? That won't be possible with cycles, of course, so I don't think I know what you mean. I agree that I haven't fully specified the desired specification, but I'd probably be satisfied with something that satisfies: "chooses a movement such that it is impossible to move any additional items this tick". So maybe of two joined loops only one moves this tick, so long as its movement makes the other one impossible to move, but move both if possible. And any isolated loop always has to move.
Overall I continue to be impressed by the Factorio team and consider it some of the best money I've ever spent on a video game. In terms of return on investment (time-wise) I think it's got every game beat expect maybe Skyrim for me. (especially if you exclude my video game time from before I went to college and cut back drastically)
That being said, it's a great game and would still recommend it to anyone that hasn't played through it.
It's amazing how powerful the mod system is. FNEI is a great in-game directory of resources/recipes that I'd recommend with any new mods you're trying. SpaceEx add a whole new 'navigation satellite' mode that lets your remotely configure buildings and an interface for selecting planets and stars (in addition to the standard new buildings/recipes/vehicles of most mods).
Factorissimo (building that can be entered and contain more land than their footprint) and Recursive blueprints (automated blueprint usage) also add tons of potential depth.
If you find the regular game tough to get into, try playing with some basic mods.
Factorissimo or Factorissimo2