Download avatars in series, not parallel - prioritizing small file size
complete
-WildCat-
Introduction
I, like many people, don't have a super-fast internet connection. When I join a busy public world, there is a long period where most avatars haven't loaded yet. This is a source of discomfort to me. It's hard for me to interact with people if they're all just a bunch of faceless transparent blue crystals.
My suggestion
I want the most number of avatars to load as soon as possible. Therefore, I propose downloading avatars in series starting with the smallest file sizes and ending with the largest.
If the VRChat client could receive metadata about avatar file size from the server, it could sort the list of avatars to download from smallest to largest and start from the smallest. By only downloading one avatar at a time, the internet bandwidth can be dedicated to that single resource and get it loaded as fast as possible. As soon as it's downloaded, display it and start downloading the next one in the list.
I believe this method would result in the most number of avatars loading in the shortest time, leaving only a few large avatars until last.
Log In
HK
complete
Hitori Ou
Network trafficking is by nature not a solid one file at a time transfer when it comes to the internet.
They get sent in packages piece by piece so that if one is lost in transit it can be re-requested, and if you got a really lousy connection then forcing traffic to re-request the same package will stall the process and delay the total transfer.
So paralell tasking is the smoothest option as if you force one at a time then the one you wana see first might be forced to come last.
I would agree tho that prioritizing small files first is a great idea that i was about to propose my self.
As it would encourage avatar makers to make their avatars smaller instead of larger downloads.
Enverex
Hitori Ou: This doesn't quite work. Parallel downloads on a slow connection very quickly have a detrimental effect as each download thread becomes starved and starts to struggle, in turn resulting in it taking
longer
to download everything, the opposite of the desired effect.Parallel downloads can work on slow connections, but it needs to be a very small number (how much depends on the connection itself, but as low as 2 would be enough on a slow connection to avoid any "unused" bandwidth periods). Parallel downloads on a slow connection also cause the voice chat to become bandwidth starved too and break up badly.
I have these issues on an 18Mb connection, so I hate to think what anyone on a slower line experiences.