Factorio 1.1 is getting close
factorio.com
factorio.com
Nuclear plants can be complicated in the game because they will consume their (expensive!) fuel even if it's not necessary, so people have constructed sophisticated logic systems to only feed fuel to the power plants when it's actually required.
For some reason, the blueprint I copied wouldn't feed new fuel into the power plants, and my factory ground to a halt for lack of power!
Not being fluent in Factorio's logic networks, I spent a couple hours trying to understand the logic connections and operations that made this system work.
And just as I write this, I find that a modified copy [2] (don't call it a fork :p) of the blueprint calls out my issue explicitly: if there is no fuel available to refuel, the system will wedge itself and effectively need to be rebooted!
The whole experience was amusingly similar to my job ^^;
You can measure the flow of steam in the system by dropping two tanks in series in the pipe and finding their difference in level--the difference is proportional to the amount of steam being consumed. After some experimentation in creative mode, I found the difference level that corresponds to the need to enable another reactor. Then I set up the inserters to each plant to only take in new fuel cells when the steam draw exceeds the relevant threshold.
This does have some waste in that it doesn't count for hysteresis, and it doesn't try to prevent the reactors from filling up, but at the level of megabase I had, that level of waste wasn't an issue for me.
I presume that certain amount leaves enough headroom for steam generated by a full fuel cell cycle (ie worst case scenario) ?
In theory, since my turbines are slightly oversized for the reactors, under very high load it could possibly never get back above my reinsert level. But I've never had that happen and I have a siren set to go off if the steam tanks get under 25% and a constant combinator button I can press to insert fuel manually if that ever happens.
of course, by the time I got that going, I also had the breeder reactors working fine and with them in place the nuclear cells are really hardly expensive anymore.
(I designed my system when I moved from 3 separate 2×2 nuclear plants to one large 2×6 system, and, as you say, even then it was mostly because I wanted to design such a system, and I didn't want to worry about power ever again).
Komrade, clearly there is nothing wrong with the design. You just forgot to press the AZ-5 button.
This game only starts when you launch your first rocket.
Building huge Megabases is where the real fun lies for me, and that's probably true for most players.
Trying for a target such as consumption of 10K science packs per minute, sustained. The size of that kind of factory is beyond anything, but it is awesome.
Unfortunately, I'm discovering that my DDR3 era PC can't cope with such large bases, I need faster gear...
I'm really waiting for an update where train stations will have queue's. This prevents 10+ trains racing en masse to that one single active/open station. It was in the works, hope it's in 1.1
I've kind of lost interest after building out all the non-infinite sciences. Scaling for the sake of scaling just doesn't appeal to me a lot.
(To be clear to people who haven't played it: Finishing out all the sciences is something that cannot happen until after launching a rocket which is the nominal 'win the game' condition. I thought factorio was tremendous fun, and it ate up all my free time for a week until I got a rocket launched.)
A lot of what I found interesting was these emergent challenges like train throughput being poor because of chests becoming unequally full and blocking the train with slow unloading... which can be resolved by using the logic control. I really liked setting up advanced oil processing to not block on overproduction. Stuff like that.
In some sense I think the logistic bots kind of break the game-- they eliminate most logistic challenges, but on the other hand they're also the only way to both reasonable scale up capacity and also to handle minutia and worry about larger scale things.
I guess I would have liked to see a parallel track of other technology which is harder to use that you could work on exploiting for those of us who don't find merely scaling up for the scale of scaling up that interesting.
E.g. I think it would be neat if there were advanced chemical processes that required writing PID controllers to effectively drive, or resources scattered on the landscape that you needed to program autonomous tanks to go gather. Different enemies that require different strategies to defend against, etc.
Maybe some of this stuff exists in mods, I haven't really looked at those.
The infinite scaling doesn't matter. It's about building out the factory itself, if that doesn't motivate you, it's just not for you.
Regarding PID controllers, I've done that for real-life applications (hobby) so no desire to do that in a game.
Oh, I liked building a factory, in order to unlock then figure out the new mechanisms or defend against the bugs.
If I didn't I wouldn't have played through completing all the science.
But for me the game ended at that point because after that it was just more of the same with little more to discover.
I can see how some people enjoy cranking it to 11, but that part isn't for me.
Maybe I'm missing some of the challenge, but I feel like I could mostly scale to arbitrary size (I think my game currently keeps one rocket port with prod modules saturated) now by simply copy/pasting factory chunks and letting the bots replicate them. I guess I would find automatically furnishing long range construction with construction supplies kinda interesting to do... but I dunno why I'd want to try. :)
also personally, I find rocket launches to be too abstract to care about as a goal. I get where you're coming from with the infinite science, but I find it a lot more satisfying when every new tier tangibly improves the efficiency of my factory.
There is no vertical upgrade path beyond the rocket. And that is too bad.
This is really unfortunate. "Fortunately" it seems to be a result of the simulation engine using only a single core- there is the opportunity for the developers to get a 2-8x speedup from switching to a multithreaded simulation engine.
I imagine there's fairly loose coupling between, for instance, fluid calculations, biter pathing, and on-belt entities, which tend to require dedicated strategies for mitigating their outsized performance impacts. (to include using console commands to simply delete the biters) Those sound like fairly low hanging fruit for splitting off into three threads if there's no plan to completely multi-threadify the sim engine.
If you want to know more, they were very open about the development process so they will have a blogpost about this.
Factorio is already written in a deterministic way.
The developers main argument is that they cannot get much speedup from concurrency because their software is primarily memory bandwidth bottlenecked and at least on consumer hardware using more cores doesn't substantially gain you access to more memory bandwidth.
You aren't serious about factorio until you are measuring your case for a threadripper mobo.
But in that case you can do even better than building your own. The OEM-only WX line has 8-channel memory, and the cheapest one is a reasonable 12 cores.
Factorio combines all the fun parts of my day job (algorithms, simple maths, tackling solvable problems) with a fairly quick reward cycle.
It has some very fun scaling challenges at every level of play. For anyone interested in trying it out they have a free and feature rich demo available (either through their site or steam).
Step one: solve a small problem with a script
Step two: scale the solution to the problem to make it repeatable
Step three: optimize a part of the solution to improve the process
Step four: scratch head at why problem is no longer solved after attempted optimizations
Step five: isolate the changes and fix the problem in isolation
Step six: put changes into original solution to try and fix what I broke
Step seven: Google for answer as to why I can’t get it to work
Step eight: copy and paste solution only to make things worse
Step ???: remove all changes and get angry that nothing is working anymore
Restart
This made me think about my actual job (software developer at a large tech company), and why is it that it's not as fun as factorio? What's the difference?
I think a big part of it is visibility. If factorio were like my job, I'd only see my own small corner of the map. The rest of the megabase would be continuously refactored by thousands of other players, and largely hidden from view.
Occasionally problems would arise; sorry, no more red circuits this month, but here's some iron and copper and plastic. We've doubled our rocket control module quota. Various incompatible versions of schematics would be emailed back and forth and posted on wikis, and using them in your own situation would always require some sort of belt spaghetti because their setup is just a little bit different than yours. There'd be occasional high-level directives from senior executives explaining what goal everyone is working towards. Our competitors are launching their rockets on time. Logistics bots would go AWOL periodically. Random objects would show up on the wrong belt occasionally, no one really knows why. How did this fish get here? Every team would have their own opinions about the most aesthetically pleasing way to arrange power poles.
At least I can be thankful that my day job doesn't require flame turrets, artillery wagons, and occasional nukes. I wouldn't mind driving a spidertron to work, though (once the pandemic is over and "driving to work" is a thing again).
No pain akin to many other games' setup where you "sell" a structure for less than for what you "bought" it for.
Once I get good at building bases fast, I'll try with enemies to see how I like it.
(not affiliated, just biased to “shill” Free software :))
I know these small developers don’t have an infinite budget so I don’t expect anything of them unless it makes sense for their team, but unfortunately it does mean I’m less likely to play them. Which is a big shame because I’m pretty sure I would love Factorio.
A LOT of people will say it’s not possible with a controller.
Fundamentally, the user-interface is baked into the game. Every button-click, every key, has a purpose. Lets list the things that you must do in Factorio:
1. Move the avatar -- WASD keys + shoot + weapon select. The combat system includes grenades of various types, auto-firing machineguns, and deployment of various "combat bots".
Given the typical tablet gestures (click, click-and-hold, two-finger press, etc. etc.), there's simply not enough gestures to handle all movement and battle commands.
2. Building -- Even in combat, building items is common. I often build power-poles + electric turrets as part of my combat push into biter-land. Buildings can be rotated (4-rotations), shadow-built (you don't place a real building: just a shadow of one. Then a bot places a real one at a later time), or copy/pasted.
Given the typical tablet gestures (click, click-and-hold, two-finger press, etc. etc.), there's simply not enough gestures to handle all building commands.
3. Advanced UIs -- #1 and #2 give you an idea of how detailed the controls of Factorio are. But this extends dramatically to all entities in the game. Editing an inserter? That's a custom GUI (inserter filters, inserter stack sizes, inserter direction, inserter-rotation). Building a train-track? Custom GUI. Combinator logic? Custom GUI. Train-scheduling? Custom GUI.
-----
Maybe a Factorio could be rebuilt from scratch on the Tablet form factor. But I severely doubt it. Almost every key on the keyboard is bound to a command, all mouse buttons (zoom, scroll, right-click, left click, and more) are bound to commands.
And there are even "vi-like" hotkeys for the shortcut bar, allowing you to swap custom items into your toolbelt because we still don't have enough buttons to do things in Factorio.
A hypothetical "Tablet Factorio" would have to grossly simplify mechanics, and reduce the number of "modes" the game has. Its hard to tell that all these modes exist in Factorio, because the UI just so naturally teaches you the hotkeys and the buttons to push in all circumstances. But when you break it down, there's "too many modes" to really cram into a GUI.
And mind you: unlike Civilization, Factorio is Realtime. Biters are FAR faster than the player in the early game, they bum-rush you and block your movement. Every fraction of a second you waste with controls is another biter that comes up to start nom-noming you. Touch-screen interfaces are just too slow for combat.
-------
EDIT: And all of these GUIs interact with each other in "logical" ways. If you want to drive a tank (or even a train) while ordering bots to deploy blueprinted Laser Turrets, you can do that in Factorio.
But maybe the biter swarm was stronger than you expected, so you're going to retreat. You disable your personal roboport, swap out for some exoskeletons (+Speed), exit the tank, load a nuclear bomb into the rocket launcher, then run back to your base while nuking the biters who are chasing you.
You can seamlessly transition between situations, realtime. All the GUIs of Factorio interact with each other seamlessly.
https://i.imgur.com/yZeqpuo.png
Imagine hooking up a MadZuri loader (Arithmetic Combinator "output = input / -Size". Input is sum_of_chests (Green Wire, isolated to input-side). Output is also Green-wire (isolated to output-side). A 2nd network built out of red-wires on each inserter connected to its private chest, calculating "output - myChest >= 0??").)
Configuring such a setup would be... terrible, through touch. No matter how I think of it.
--------
With keyboard + mouse, I shift-right click to copy settings, then run down the line to shift-left paste settings across every inserter. But that's because the keyboard has many, many buttons that can map to useful hotkeys.
Touch provides... maybe 3 or 4 gestures that work while touching an object? (Touch, touch-and-hold, pinch-zoom, pinch-zoom out, multi-finger touch, multi-finger touch and hold). Between select, settings, rotate, zoom... I think we're already out of gestures before we even got to copy/paste settings (vs copy/paste blueprints vs copy/paste ghost objects).
The precision needed to hook up the Madzuri loader would be hell alone on an imprecise touch-screen. Its already kinda difficult with a mouse, even at full zoom-in.
https://apps.apple.com/us/app/ftl-faster-than-light/id833951...
"Satisfactory" is also really good for people who like this kind of game and are looking to lose 80+ hours.
I'm 34 and not super into YouTube but the guy is smart and legitimately hilarious (to me, an adult, not to 12 year old gamers). I've watched through more of his backcatalog than I'd like to admit.
While Empire Earth never seemed to get quite as big as many other rts games, I think certain macro-management aspects of gameplay flew under the radar. For example:
1-click to set units to explore; when multiple units were selected they would fan out to decrease fog of war.
Multi unit formation setting, to dictate the spread factor between units when moving and fighting.
Setting indefinite patrol loops (although I think I recall other games having this?).
It’s been a while since I’ve played the genre, and it seems like factorio’s really nailed the set and forget - but allow tinkering - for base management. What I want is similar automation for army control, that’s always the piece that gets tiresome with, for example, Starcraft for me.
Ultimately, I want to write a script for my civilization and be able to step into the fold to take over manual control as necessary. And then update my script. If that’s too much, being able to just define action buttons that execute scripts for selections of a certain composition.
And of course to run it in a a competitive environment against other people and see what we can all come up with :)
[1] Before I stopped playing due to it taking so much time
but belts, like any other entity in factorio, have their orientation set before they are placed. so if you have an up belt and you click and drag left-to-right, you get a long line of parallel belts that don't connect. this is useful when you're trying to create a parallel bus, but very annoying when you just wanted to make a long belt.
the new behavior is that the game will ignore any mouse movement that's perpendicular to the direction of the belt being placed.
Generally, I very much enjoy watching other people play Factorio, I myself don't have the time to do it in a way I'd consider "right".
That said - my first 100 hours or so were without outside influence and were pure fun.
There's an old joke about golf "The goal of the game is to play as little of it as possible," which is also very true for factorio.
As you advance through the tech tree, previous things you did manually you'll automate more. There's an achievement called "Lazy Bastard" that forces you to do a bare minimum amount of manual work.
One my very first bosses noted the reason he felt I was an exceptional programmer was that I had managed to automate everything at the office from time reporting to doing performance reviews.
I have had some success with certain tasks in the very high-frequency category, but almost no successes with anything that has a cadence higher than a month (always relevant.. https://xkcd.com/1205/)
I wrote weekly status updates, important accomplishments I marked with asterisks. For the annual reviews I just had a script that loaded a TeX template from the past review then populated it from the flagged entries in my weeky reports. Then I'd just edit it down a bit, tweak the language and sent it out. In theory I could have probably gotten away with sending the autogenerated one at least after I'd refined the usage some.
I did it this way because it's always hard to start writing a performance review. But I found it a lot easier to start with a bunch of stuff I did and restrict it down to the relevant stuff.
I was tickled when they later updated the job description for my role and used the text from my performance review. I guess since I didn't have to spend much time populating it I managed to completely optimize the level of corporate-speak in my narrative. :)
These were quarterly reviews. Basically I had it copy/paste verbatim the BS from the previous review. This worked for everything except accomplishments. These were 'completed' tasks (from my time reporting) for the reporting period copied into that section.
In particular, its being able to build a complex distributed system with extremely high visibility to discover the bottlenecks and overflows that need to be resolved. With some Chaos Monkey thrown in as random biter attacks.
...until you start messing with fluid system and oil cracking
for me the only time when I'm always checking the docs is when I'm trying to supply enough water to a nuclear plant. the pressure loss over distance for a pipe almost never matters, but it really does for a nuclear plant. if you don't have a very short run of pipes or lots of pumps along the way, you will never achieve the full potential of your nuclear plant. this can be quite disastrous if you make assumptions about how much power the plant will make. I wish they would add something to the UI to make it a bit more clear when pipe runs are too long.
Conway's game of life organisms' different states can be memoized. Starting the simulation slowly, an engine can memoize the following computations. This is what Hashlife [1] does. Quoting from Wikipedia: "the rapid increase in speed is often described as "exploding"."
So much so that this kind of thing is possible: https://www.youtube.com/watch?v=xP5-iIeKXE8
Simulating the next ticks just entail looking up the future. Except for things the users touch.
Since Factorio is a game about reaching the next scale of automation, I believe this is a worthy follow-up to Factorio 1.
I think SpaceChem is similar to Factorio, in that there is no single solution. The designer of SpaceChem said he just tried to create interesting problems, but didn't spend too much time going through possible solutions. Factorio is similar, in that there are set recipes, but how you move from one to another is completely up to you.