On-Device Observed Avatar Performance Ranking
Geneec
Thinking outside the box here. Everyone focuses on these extremely arbitrary feeling ranks, and I think it's the wrong way to think about the problem.
Computers are not equal, so the ranks cannot have equal meaning across them.
In other words, what is Very Poor to the state of the art computer is vastly different than what is Very Poor to a wireless headset, or a laptop.
Why not let the host computer decide for itself based on actual realtime metrics, letting the user configure and apply rules based on that? Provide sane defaults, like other video games give you quality presets "Low, Medium, High, Ultra".
Just spit balling here (and some of these exist in similar ways already) but what if I had settings like:
- How many avatars make an instance light, cozy
- How many avatars make an instance busy, poppin
- How many avatars make an instance overloaded, omg-furality-club-world
- Frame rate impact of an avatar (show the cost to draw it somewhere?)
- Frame budget buckets for CPU time (draw calls?)
- Frame budget buckets for GPU memory
- Report about excessive shader compilation time/frame hitches.
These ranks can adjust based on how populated a world is to maximize performance. I'm in a world with 3 other people, they can be in absolutely gargantuan avatars. But when the instance starts to fill up, the game has to cut back a little, those ranks reevaluate, and I might see some avatars fall back.
[Frame budget] = [Current World Demand] + [[Av1%]+[Av2%]+[Av..n%]] <= [95% total compute available]
Imagine the client observes Av2 needs way more of a share of resources than everyone else, AND we've reached a high water mark, then cut Av2s share.
I hope these are ideas that spark some more out-of-the-box thinking about avatar performance.
Log In
Geneec
Just to kind of expand on one of the points from above; when you're in a crowded world, you can usually tell when there's a really heavy avatar killing your frames (I always kinda knee jerk look for rexoiums or e-boy avs) but it's really difficult to know for sure which avatar is causing the drag on performance since VRChat doesn't show you any actual measured statistics. You just get the rank and have to hide/show everyone until you find the culprit.
I would say any progress on this topic as a whole should just start here. When you hover over an avatar, show it's live frame time and memory load or whatever stat(s) is most reasonable or indicative of performance.