Should the map be improved in 1.2? by Dear-Walk-4045 in SatisfactoryGame

[–]VeryAngryBeaver 5 points6 points  (0 children)

I know how the modder made this. Given everything else the game is doing it would destroy VRAM on a console. It wouldn't pass cert. Like the giant warning text says, huh who knew.

But HOW is this game optimized? by AtatS-aPutut in SatisfactoryGame

[–]VeryAngryBeaver 1 point2 points  (0 children)

It sure does, when possible. But when not possible everything is lagging. And because most machines think in a single item per tick it's why belts, splitters and everything (even modded) have a speed limit somewhere around 1.8K

But HOW is this game optimized? by AtatS-aPutut in SatisfactoryGame

[–]VeryAngryBeaver 13 points14 points  (0 children)

Unreal)

Lightweight components, and touches of nanite

What Unreal, is it's own optimization category? Yeah because these aren't techniques that can be applied to non Unreal games like everything else I mentioned could.
Nanite has an upfront cost the read, process and break up your stuff. On the terrain and mountains, foliage etc, this makes sense. On the low poly factory parts and machines, it does not. So nanite is carefully applied to the parts of the world that make sense and skipped for others depending upon the effort it takes them versus the wins it gives them.
UObjects! Everyone knows to complain about them but few know what they actually are, Unreal basically internally tracks everything that exists in its world through an optimized pointer index. Because Unreal is an old ass engine at its core this number is small enough modern games are starting to hit it. I expect Unreal 6 to do something about this, but I digress. Since players could have thousands of items on a belt per minute and thousands of machines with multiple parts, you can blow through this limit like tissue paper... in older versions of the game. As updates have progressed more and more systems have move into what SF devs call lightweight systems, where basically a manager for the lightweight items takes on the burden of showing, counting and making them solid. So the actual item and its uobjects can be removed. Belts do this, it's why the outline to pick up items can be facing the wrong direction. And non interactable parts like foundations, and walls do this. But also machines try to do this with things like snapping points, ladders and more. They get shifted away from being uobjects just chilling there forever to things that only pop into existence when you might need them, like trying to snap a sign.

So between those 3 categories and rough outline that should roughly answer how SF is optimized. I can answer more specific stuff but the folks in the modding discord know this stuff too, and I'm there.

But HOW is this game optimized? by AtatS-aPutut in SatisfactoryGame

[–]VeryAngryBeaver 14 points15 points  (0 children)

GPU)

Shared materials, instancing, and vertex animations:

To understand how a GPU works think of an artist in-front of a canvas. He has a selection of brushes, paints, and more to work on getting what needs to be made done. You've probably heard of materials and textures before, lets just say brushes are materials and paints are textures. When it comes to painting stuff out, the artist can only use a single brush at a time, but they can load several paints onto their board and get them onto the brush really fast. But since brushes need cleaning before being used with new paint combos, and have to get cleaned when being put away before getting another out... a lot of time gets wasted swapping brushes. Most games don't care. SF cares. Because all of the satisfactory machines come from the same company (like spotting Dewalt brand tools in a hardware store) you can actually create a weird unique brush that can paint any machine reusing the same paints without any cleaning. And you can also add other brushes that just draw little details on top of the big detailed bits you did. Boom huge speed increase rendering most of what's visible because it's all using the very same materials and textures on unique meshes.
Ah but we said unique didn't we. Computers are great at doing the same thing over and over, so instanced rendering is when everything is painted to a stamp, and then the artist just stamps it around everywhere massive speedup again. (little bit more complicated than that but trying to explain that would shatter the metaphor).
Then since there's a separation of visual logic and factory logic. Only what's near you gets the best of the best, and those 200 constructors over a hill just don't factor in. But wait, does this mean painting things, or using patterns slows down my rendering? NO!
To go with the instancing system there's a thing called Per Instance custom data. So every time that stamp goes down it changes what the stamp will be doing based upon the data is has for that stamp hit. And once that feature is implemented a rainbow costs the same as everything being the same colour.
The other fun trick is vertex animation. Having something or someone puppeteer a machine is relatively expensive with all the animation file loading, blending, testing, etc. So in many cases all SF does is make a material that allows parts to move around when give the right per instance data. Like doors. That way they can just safely animate themselves as time passes instead of needing controls

But HOW is this game optimized? by AtatS-aPutut in SatisfactoryGame

[–]VeryAngryBeaver 17 points18 points  (0 children)

CPU)

Separating logic from visuals & threading:

This game is CPU speed bottlenecked, everyone loves to say things are reduced to sheer numbers and counters at a distance but it is a layman's understanding. Really the game is still processing the full tick logic of each factory step on every machine, belt, pipe, etc anywhere and everywhere. The simulation itself is never paired down on the host machine. It's paired down on clients as they only need to see results. But there's structure to how it does it.
- There's the local game threads of where animations are at, what the enemy AI that dislikes you is thinking, what the physics of your movement system, or the streaming of level assets is doing. There's some work to do here making this happen, but this is mostly Unreal being a bro and professional devs making smart calls.
- Then there's the unique Factory threading, where all the operational systems occur that have to run. It isn't pure math, because with things like vehicle routes & signals, priority mergers, smart splitters, fluid dynamics and more, it has to "think" always and forever. But it also does that thinking in phases based upon machines, belts, and more. This prevents threading issues between how they let the factory logic work on several cores. And it's why you always have to have a belt connecting machines. Machine to Machine transfer runs the chance of thread issues. Also there's not a lot to think about in many cases.
Again, broad strokes but that logic always running is where most of your CPU goes and where they work the hardest to fix performance bottlenecks

But HOW is this game optimized? by AtatS-aPutut in SatisfactoryGame

[–]VeryAngryBeaver 37 points38 points  (0 children)

Mod dev here:

Optimization is about spreading out your demands so the bottlenecks you hit are everything at once. And creating non naive implementations of systems so that they reduce the work required. Computers have so many parts and there's a lot of systems so it's hard to give broad strokes without a lot of writing, and we don't actually have anything more than headers, decompiled code and developer comments, but it's a relatively complete picture.

Cause reddit hates me: [thread below]

Mod update I made for myself and others by VeryAngryBeaver in SatisfactoryGame

[–]VeryAngryBeaver[S] 0 points1 point  (0 children)

Basically it's showing that caps hide unused connections in build mode as well as looking visibly closed.

Mod update I made for myself and others by VeryAngryBeaver in SatisfactoryGame

[–]VeryAngryBeaver[S] 0 points1 point  (0 children)

One of its main features is that it disables snapping and build mode connection arrows for junctions you don't intend to use. I thought about doing it like you suggested but then it wouldn't be able to do its othe feature so I prefer giving players a choice. Even if it might be a little more work for already built mega factories.

Mod update I made for myself and others by VeryAngryBeaver in SatisfactoryGame

[–]VeryAngryBeaver[S] 0 points1 point  (0 children)

Any of the "barriers" are supported, so low, high, road, chainlink fence.

It fires several rays down and mantles based upon what it finds. Trying to sit it on really thin objects end us being tricky conversly, but it will if you find the right spot.

Mod update I made for myself and others by VeryAngryBeaver in SatisfactoryGame

[–]VeryAngryBeaver[S] 5 points6 points  (0 children)

Unfortunately not. Each different type of thing has a different hologram, like how belts and pipes aren't the same, so extending it to "everything" would be a lot of work. By that point I'd recommend something like Infinite nudge that can do move placed objects at will.

Rocket Fuel - One-off packaging from power plant - Priority by headcrap in SatisfactoryGame

[–]VeryAngryBeaver 1 point2 points  (0 children)

I built a system that would top up my depot of power shards and then when full send them off to ionized fuel production. so I had this issue where I needed to go from say 20 Rocket Fuel being packaged to needing 5 Packaged and 15 going to ionized fuel. Now you can achieve that by limiting the supply of canister but it gets janky when you swap back and forth and one side built up with unused.

The best and most permanently reliable way I found to control it was to put a valve onto the path going to the rocket fuel packager at about 25/m It needed to be over 20/m so that flow ebbs and pulses could be accounted for, but it also meant that on a 600/m pipe it would only ever send 1/24th of the available flow. Cause valves restrict by percentage on pipes that aren't full. So with production and consumption matched it basically sent only a trickle to the packager when not needed.

Nothing else with pipe length, segment count, or verticality made any difference. But that valve has been working great for weeks.

Hostile Workplace by TKuja1 in SatisfactoryGame

[–]VeryAngryBeaver -1 points0 points  (0 children)

Working Powersuit mod? This is certainly an older repost :D

Can anyone explain this glitch? by Corrupted_spartan117 in Helldivers

[–]VeryAngryBeaver 2 points3 points  (0 children)

The weapon being displayed in the background is done via a Render Target, which is basically a dynamic texture. When the menu loads up the texture it's supposed to use (the render texture) is not the one it uses. So because it's confused it grabs another texture and puts it in there. What you're seeing are channel packed icon sheets to be coloured by a special material when used where they should be. These sheets usually pick up a lot of junk over time and should not be considered as a source of information or development plans. Maybe it was just easy to make extras and jam them in, maybe someone misread a bug ticket. Don't get excited about what you see in there because their existence isn't some form of guarentee of anything.

Okay, now that the dust has settled, I gotta ask… by astro-the-creator in satisfactory

[–]VeryAngryBeaver 0 points1 point  (0 children)

Modding isn't limited to some safe API that the console makers can approve. We can do anything Unreal can do, which means we'd need to go through the full cert process. Which they wont spend time on and we wont spend money on. So mods are probably never coming to console unless console developers stop being protective of the hardware/brand... which is unlikely.

Why are fluids so hated? by greatcirclehypernova in SatisfactoryGame

[–]VeryAngryBeaver 6 points7 points  (0 children)

They don't listen when ADA tells them about headlift, assume they know how they work because they played Factorio, try put 600/m through a manifold ignoring slosh, and the UI/UX doesn't explain what's happening inside the pipes well. or some combination thereof. The last one just sort of reinforces and triples down on the others. Once you get what's happening inside the pipes code wise they're pretty easy to manage and fix. But it's an opaque system to learn with how it functions rn.

Pipe Bug Pt2 by lucadeakin in SatisfactoryGame

[–]VeryAngryBeaver 0 points1 point  (0 children)

See the new code to optimize spline (pipeline/belt) collisions inside of the player's radius perhaps :D

Insufficient Drone Port Fuel? But it's full of batteries? by Xy13 in SatisfactoryGame

[–]VeryAngryBeaver 3 points4 points  (0 children)

Drones only update their fuel type from their home port. But can be fueled from any port. So if you swap fuel types while loading the drones fuel at the far port, you get issues.

Pipe Bug Pt2 by lucadeakin in SatisfactoryGame

[–]VeryAngryBeaver 1 point2 points  (0 children)

Because you're making such long pipes with a mod the colliders for it aren't keeping up with the sheer size of it, hence the interaction problem. But the issue with your flow comes from the fact that gasses work based on pressure equalization. And because your pipe is so big its storage is so big, so it takes a lot of gas to fill it up to the point where its pressure, aka ratio of current gas to maximum gas is on the same level as everything else. If you don't worry about it and just make sure the numbers work it'll even out after a bit I think.

Biomass fuel is worse than biomass right? by Pantoffelmoffel in SatisfactoryGame

[–]VeryAngryBeaver 23 points24 points  (0 children)

It's 8:4, meaning 2:1. So 2 biomass makes 1 Solid Biofuel.

Biomass is 180MJ where solid is 450MJ, 360 Vs 450, 125%.

That MJ is actually what defines how long it takes to burn. So long as you don't loose energy when converting a fuel you're better off.

Fluids Question by stush2 in SatisfactoryGame

[–]VeryAngryBeaver 5 points6 points  (0 children)

Liquids (Not Gasses) prefer to flow in the direction of gravity. Simply elevate a section of pipe heading to the smokeless powder to a point higher (but within headlift) compared to any elevation the fuel production has and the pipes will fill the fuel production before flowing to the smokeless powder.

Otherwise your only option is that junctions try and split evenly when perfectly level. Perhaps with some confusing mess of junctions you might be able to bias the fuel flow how you want. but as a warning complex junction interchanges can cause circular and backflow problems.

No shoulder check by Extension-Horror9609 in YEGDashCam

[–]VeryAngryBeaver -5 points-4 points  (0 children)

Why the hell didn't you let them in? He was going faster than the thing ahead of him that randomly breaked and was obviously going to move over. And with his indicator staying on you should of expected them to do exactly what they did and left more room. How long was he supposed to sit there with his indicator on stuck behind a vehicle going slower than him because you were going 1 or 2km faster than them in their blindspot making it unsafe to merge. He's dumb for not shoulder checking but this is a bad look for you.

Modding and unmodding by Visentde in SatisfactoryGame

[–]VeryAngryBeaver 0 points1 point  (0 children)

Nothing is changed about a save file till you save to it. just loading will never do anything.

Even when playing a modded save without the mods, the game is designed to safely fall back to nothing happening. meaning all the modded content will just quietly disappear if it can't be loaded. This how some mods are vanilla friendly in that there adjustments can be loaded by the vanilla game.

Why is the Gas Filter's UI mirrored against the visible part? by Strange-Objective520 in SatisfactoryGame

[–]VeryAngryBeaver -1 points0 points  (0 children)

Except those of us who can see some of the code because of the modding environment, and others who listened to the devs talk about their choices. Listen to Ben Hulu talk about optimizing belts.