This might not be a bug but an optimization issue. Not really sure, but sharing anyway.
The issue is that high amounts of retro cartridges greatly murder performance. This seems to mainly effect the condo host, but it probably effects people joining as well.
Steps to Reproduce
Put down a few hundred cartridges. Unsure if they need different games each, but do not think so.
What I expected to happen
Performance to remain the same.
FPS greatly decreases, especially when more players join.
I have tested this issue more and it is definitely the retro cartridge item itself that lowers your framerate. It does effect people who join the condo as well.
It is not caused by the actual rom loaded on the cartridge or the artwork, as completely empty cartridges still lower the framerate.
With about 600 or so cartridges, my framerate as the host can barely hit 50. If a single player joins me, it goes down to like 35 or so. Having an actual large in-game collection of games to play isn’t feasible right now with how much this item hits performance unfortunately.
I’m guessing this isn’t specifically the cartridge that’s the issue, but the fact its a physics item? I could test it by putting down a few hundred other physics items, when I have some more money in game.
Do you have simulate physics on respawn on or off?
I have it off. I’ve also tried disabling the ability to pickup and respawn the cartridges, but it didn’t effect it. The only thing that improves my FPS is just stashing them completely.
Alright, so to test this further I went into a blank empty condo (the default one) and threw down 600 unedited cartridges that don’t have roms set on them and don’t have any of their options turned on.
Even in a condo with no other objects, my FPS began tanking pretty heavily.
Its also possible arcade cabinets harm FPS as well, but not as sure about that one since I only own around 70 of them to place.
I imagine the performance is falling because of these being physics items, so if there’d be a way to disable the physics effects entirely when they’re not in use that might help.
The Media Shelf will really help with this.
That doesn’t seem like a proper solution and would be quite limiting in how we design unless we can make them invisible. If it were the only way to reduce the FPS hit then we’d be forced to use it. Also if this item is only handling the options we already have on cartridges then it won’t fix the issue. FPS still drastically lowers, with all options disabled.
Now if that shelf is actually going to fully disable the active physics in a way we can’t currently modify, then I imagine it’d fix the issue. However, those physics should already be disabled on completely stationary objects that are not being used or moved. I don’t see why the optimizations would be delegated to just the media shelf. I’d rather see the cartridges receive proper optimization, than be dependent on another object. Surely if the shelf can somehow handle these optimizations, then the cartridges themselves could be made to do the same without that dependency. Really, they just need to behave like a normal item or a canvas cartridge, when not being moved around.
I understand this issue may effect the minority (as most players aren’t using hundreds of these), but if this item were properly optimized then players could make giant game rooms of collections and really use Tower Unite as an emulator frontend. I’ve done this myself, but unfortunately its rendered my entire condo unplayable.
Yes, the Media Shelf handles the cartridges differently. It disables all collision and physics while it is in the shelf, helping with performance drastically.
It is very hard to optimize 600 physics items. The physics state does go to sleep when not active, but unreal still has to calculate collisions.
What happens in the media shelf that can’t happen to the cartridges on their own? Why can’t the cartridges have their physics and collisions disabled, like when they’re on the media shelf?
And why is the collision calculation different for the retro cartridges, than it is for the canvas cartridges? I don’t think those have the issue, though I need to test it further.
Just trying to understand fully.
I’m not a programmer but if I had to guess:
The media shelf will likely just have a shelf full of media built into it, and the visibility of those medias will be toggled on and off depending on what you have placed inside of it. When you select one, it will spawn the media for you to hold and temporarily hide the media inside the case. This is still one item because it’s only toggling visibility of certain parts of it, and calling for a physics object to be spawned when requested.
Basically the media shelf is only one item.