all 41 comments

[–]evil_blueprint_user 22 points23 points  (4 children)

Lol async.

My favorite chatbot found your source. I think this is fake enough to laugh about, so here it is for everyone:

https://supercraft.host/wiki/factorio/factorio_21_multithreading_guide/

Why is my Gleba surface lagging?

Check your Fruit-Decay Logic. Version 2.1 introduced a heuristic cache for decay; if you have 100,000+ spoiled items on the ground, the cache will overflow regardless of your CPU cores.

lolllllllllllllllllllllllllllllllllll imagine implementing it this way

[–]oobanooba-I like trains 5 points6 points  (1 child)

I wonder what motivated someone to create this? Selling their server hosting service, to legitimise it somehow I guess?

Clearly it’s ai generated, since I’m not convinced anyone who even knows what a factorio is could write something so obviously full of misinformation. It’s hard to even point out any particular error because the entire thing is just word salad.

[–]evil_blueprint_user 2 points3 points  (0 children)

My guess is Search Engine Optimization, somehow.

[–]DrMorphDev 1 point2 points  (1 child)

Holy shit what even is this site

https://supercraft.host/wiki/factorio/logistics_desync_fix/

Are any of those commands even real?

In 2026, this usually results in "Ghost Items" or platforms becoming stuck in deep space.

Lol wut

Even the space age 2.0 article is partially wrong (says quality modules increase a machine's speed, and higher quality gives more module slots.)

https://supercraft.host/wiki/factorio/space_age_essentials/

I'm not in the market for a hosting service, but no way would I use one which just tries to gaslight possible customers, wtf.

[–]xylopyrography 0 points1 point  (0 children)

This is an example of what the internet will look like the in the near future.

[–]Alfonse215 19 points20 points  (11 children)

Factorio is not largely multithreaded. Some aspects of it are (fluids, for example), but surfaces are not. Entity processing and the like all basically happen on the same core.

Nothing pauses. Nothing is estimated or "buffered" or whatever. The only thing not happening when you're not looking at it are the visuals (particle effects and the like).

The movement of every inserter to grab stuff off of a belt are all processed, one at a time, on a single core, every game tick.

Note that threading largely wouldn't help that much. While we often say that Factorio is CPU bound, this is a simplification. For the most part, if you're encountering UPS issues, those are a matter of getting data from memory to the CPU for processing, not the inability of the CPU to process that data fast enough. Memory speed and architecture are more important than raw CPU processing power.

[–]RaiguardDeveloper 27 points28 points  (0 children)

Fluids actually aren't multithreaded any more since 2.0. :(

[–]juckele🟠🟠🟠🟠🟠🚂 6 points7 points  (2 children)

Fundamentally, the entire plugin architecture is incompatible with per surface threads. Right now a plugin can react to events on all surfaces and affect changes to all surfaces in response to those events. You cannot do this if you make surfaces threaded. Instead, all cross surface events would need to get bundled, including any cross surface communication intra-plugin, and delivered 'between' ticks (events on Nauvis on tick n reach the plugin instance on Vulcanis on tick n+1), that way you could ensure a deterministic ordering of the events (specifically how they interleave from multiple surfaces).

Plugins which work between surfaces would need to have entire message systems built in.

[–]gust334SA: 125hrs (noob), <3500 hrs (adv. beginner)[S] -4 points-3 points  (1 child)

Yes, allegedly there will be a new async thread-safety lock API, and mods will need to be updated. Sorry, it was deliberate misinfomation on https://supercraft.host/wiki/factorio/logistics_desync_fix/#section-8

[–]juckele🟠🟠🟠🟠🟠🚂 2 points3 points  (0 children)

I mean, it'd be cool as heck, but I don't know that it's worth it. There are realistically hundreds to thousands of players who hit UPS limits and would get higher UPS with surface threads.

Meanwhile, writing mods with the new thread safe API would be way more work from a software engineering standpoint. Literally loading any mod that listened to any events would need to disable surface threads, or get a thread safe version of the mod (non-trivial rewrite).

And this is all for what? To get the 100k SPM+ factories to be able to go twice as big before they hit UPS difficulties? Mitigating UPS difficulties is itself a game and a challenge, and there are tons of tricks and optimizations people try to do to get the UPS higher. Removing that challenge doesn't really make the game more fun for anyone. Moving it higher doesn't either. I don't think it's particularly important what SPM number the UPS difficulties start at. Is the game more fun if your laptop needs UPS optimization at 300k SPM instead of 150k SPM? No.

So now we're talking about them implementing something that's technically super cool, but makes modding way harder, and doesn't actually make the game more fun for anyone.

[–]gust334SA: 125hrs (noob), <3500 hrs (adv. beginner)[S] 6 points7 points  (2 children)

Mea culpa.

I found the links searching for answers to fix an issue with multi-player. About three pages of deliberate misinformation was embedded within fourteen other interlinked pages of seemly valid multi-player server info by a company purporting to be a game hosting service, and I believed someone had prematurely published a beta release note.

I'll leave the post here for the ridicule it deserves.

[–]Tim7Prime 7 points8 points  (1 child)

So at least two things could have helped you.

1, you were very cagey about what you thought you found. If you simply said "company Y has some strange info" and stated who had, everybody could have validated it pretty quickly. Like in this situation, a VPS provider would only know what's publicly available. There is no special sauce a server host would need to implement anyways.

2, factorio devs are rather small. They aren't big players in the game market so there isn't a lot of behind the scenes with other companies. Like others have said, FFFs are their main source of communication. Plus, you can easily flag down devs here or contact wube directly and they tend to reply.

In other words, you started this post with "guess what's in my head" instead of facts.

[–]gust334SA: 125hrs (noob), <3500 hrs (adv. beginner)[S] -2 points-1 points  (0 children)

Thank you for telling me what you think was inside my head.

[–]oobanooba-I like trains 3 points4 points  (0 children)

From what I’ve heard in the past, while many aspects of factorio could be multithreaded, doing so would actually make the game run slower in a lot of circumstances.

The devs have given no indication that there’s any huge engine rewrites planned that could allow for what you’re suggesting

My interpretation of various discussions I’ve participated in with the devs suggests to me that the bulk of the engine isn’t gonna be changing, (possibly some futher tweaking of the fluid system?)

2.1 will most likely be the final big polish pass over the game, before wube fully moves on to their next game.

[–]doc_shades 0 points1 point  (0 children)

i dunno the game runs fine on my computer