I think a serious mistake has been made from the start by customizing the regolith per unit: each unit has a percentage of oxides (iron, titanium, silicon, aluminum) in addition to the slag percentage. Now imagine when you collect millions of regolith units and calculate the amount of memory used by the PC; so I humbly believe that to free up memory and make the game run better, MDRs should mine and produce oxides and slag from their source. I think the FPS would improve greatly!
#Improve FPS
1 messages · Page 1 of 1 (latest)
It really depends how it gets calculated internally, is it per slab or does it just average them all when combining? When you are mining at your base then yea, each slab would have its own values, which is bonkers, but I guess its a more unique game mechanic, but when you have a storage with 1million regolith, there is no real point in storing all 1million slabs as separate values, you can just average them and when outputting just output regolith with that averaged value. Atleast this is how I would do it, duno how this games dev's are doing it.
I think it's a weighted average
regolith is averaged out when combined
something else is causing FPS issues, drones or factory
You can pack the percentages of 5 different oxides (including slag) into a single 32bit number with some trickery. (As you need 0 to 100, which fits into 7 bits, 7*4 is 28 bits, and you work out the remaining slag %) then the memory consumption would be significantly reduced from, say, 5 64 bit values that most game devs would generally use.
Yes, I'm old and from a generation where memory wasn't cheap and you only had kilobytes to work with 😃
Tracking the individual items on the conveyors is probably what's causing the low fps with mega factories, not the regolith slabs. Nevertheless, using less memory for each item would improve performance if any of them get copied or allocated on the heap. Memory bandwidth matters much more than people think.
That can definitely work, tho you would loose some precision as its only between 0 and 100, tho to be fair this should be enough for most use cases. I was thinking about different approach, more of a having cached values and assigning 16 bit id to it, this would keep more accurate precision and things like underground miners could simply assign one ID to a slab, tho lookup of actual value should be optimized too. Well, there are plenty of solutions here and who knows what's already being used.
Side thing is that games save files takes way to much space, someone have a file which is like 800MB in size, which is bonkers, as this game doesn't have that much information to be saved
Is this confirmed by tests or just guessed to be the case? As I was thinking to do some testing myself when I will be in a mood to verify that values are being combined, so if it was verified then there is no need to do it for me anymore
I think it was co firmed by some devs in chat
I could be mistaken but you can ask. It's u realistic to store data for every item up to 100k. That's like a gb of data
So it's assumed to be averaged and fps issues are assigned to drones colonists factory etc
To be fair currently game suffers from lack of VRAM so who knows what's going on there
That's for textures and other stuff I assume it's loading everything at all quality settings
I tried to disable all of my drones, had like 50 of those, after disabling it had no impact on fps. Then went with underground belts, which looked like it helped, kind of, but after a while my fps went back down to ~20, so duno how much of a help it actually was.
What I did noticed is that game is slow to react about changes, like connecting factory to electrical grid, it takes few seconds before it actually registers, which could indicate that game isn't made with event dispatchers and with that delay it could indicate internal timers running constantly and doing constant checks, which would be big no no for games like this, well for games in general, but who knows, maybe its just weirder game mechanic
Yes, I also found that the wires are already connected, the factory is already producing, and the power shortage mark is still there for a few seconds before it disappears
UI updates are usually delayed since UI updates tends to create significant inefficiencies in code. so the UI might update every 1 second or 0.25s to prevent it from lagging up the game updating every frame.
standard procedure
i think the main thing they are talking about is delays to actual factory logic