|
Post by Evie ❤✿ on Sept 11, 2023 8:54:13 GMT -5
Loading times: This is particularly an issue nowadays, where games are larger, have larger filesizes, models take time to render and things. The lag may also differ depending on whether you're using a physical or digital copy. When networking is involved, it can also be problematic if the relationship between the gameplay and the connection is unstable/insufficient to the point that online matches suffer.
Hiding non-important assets: Developers can choose to do this if loading time becomes an issue, however it can also be irritating if these disappear on screen or textures do not load while the game is loading. In terms of software, websites, engineering in general the developer can also use psychological tricks so that you don't get so frustrated (a popular example I think being the shift from the "egg-timer" loading icon to the moving circle. If hiding assets applies, it may also be good to hide all of them in the same class, as it would be awkward to see YouTube videos pop up individually rather than one at a time, or if trees start to have their textures fill in not all at once (or even delays in the rate of when they fill in).
Code optimisation: For more primitive games running on modern hardware/optimisation, this is not such an issue anymore. However, optimising the code by using a good assembler can help. (Examples: Super Mario 64, RollerCoaster Tycoon which was written directly in assembly). Other than loading times, there is another issue as well; prevent things like buffer overflows or the game might glitch out or freeze.
|
|
|
Post by nocturnal YL on Sept 11, 2023 12:08:50 GMT -5
A lot of games and infinite-scrolling websites (like YouTube and Google Images) load in new elements as you get close to them. Some do them in batches and others do it in a per-visible-element basis, but either way they don't look that bad, I'd say.
I don't know what do you mean by "hide all of them in the same class", but if you apply the same visibility state to an entire class of objects, it'd look really weird. Surely a tree 400m away from you should be given a lower priority than one that's right next to you?
|
|
|
Post by Evie ❤✿ on Sept 11, 2023 16:28:30 GMT -5
A lot of games and infinite-scrolling websites (like YouTube and Google Images) load in new elements as you get close to them. Some do them in batches and others do it in a per-visible-element basis, but either way they don't look that bad, I'd say. I don't know what do you mean by "hide all of them in the same class", but if you apply the same visibility state to an entire class of objects, it'd look really weird. Surely a tree 400m away from you should be given a lower priority than one that's right next to you? Ah OK.
I was referring to if you're going to hide assets, although it may help reduce loading times of the whole map/overworld routines, don't have trees or textures on trees popping up/rendering one at a time rather than all at once, since it would look something like this (but in 3D). So you'd have to have the code be able to hide/display them all, while it might be better to process one further away but not if it was displayed last?:
In Pokémon Scarlet and Violet for instance, if your boxes are full of lots of Pokémon the Pokémon species' menu sprites will lag. Certain sprites will still use a loading icon for a while, and they aren't all replaced at once. In this case it may not be as weird as the trees, but I personally don't like it and think they should either all load at once or there should be a loading message for the whole screen (though very short).
(I might attach a video later)
Also I remember how games Masahiro Sakurai has worked on has short messages on the loading screens to keep you occupied. Maybe it's on his channel.
My digital copy of Super Mario 3D World unfortunately lags on a black screen when I choose the main mode, and it feels quite long.
In a video I watched several months ago, Naughty Dog's co-founder Andy Gavin said they had difficulty getting Crash Bandicoot to work, so first their main strategy was to hack the PlayStation 1 to use a hidden CPU co-processor for specific limited Vertex maths, and some people at Sony allowed it. The GPU (graphics processing unit) could only do about ~5000/10,000 polygons per second but they could increase it to about ~120000 polygons per second using both (and if I follow the video the CPU co-processor was just the right speed for moving data from the co-processor back into the GPU).
They talk about other things as well such as limiting the view and corrupting animation data (similar to how JPEG compression is lossy compression since there was a lot of it ~500 vertices, 600 polygons and they had to store the position every frame of animation per vertex as well. They wanted slapstick style animations like Looney Tunes, but it was too much as for instance, inflating all the fingers would require too many bones. So they took out unimportant details and were able to get the data about ~50th of the size.
In the video they also mentioned the term "complexity" too. In terms of the shorest length of a computer program to achieve an outcome, there is a term called Kolmogorov complexity.
|
|
|
Post by nocturnal YL on Sept 12, 2023 8:47:51 GMT -5
I see, you mean it's better not to show anything until the scene is entirely loaded. There are both merits and demerits with either approach. This reminds me of footages of people running into invisible obstacles; and I'd say progressive loading really isn't suitable for interactive environments.
It can be good for menus, though, since those are places where speed should be priortised. If I just want to select item #2, I shouldn't have to wait until item #10 is loaded.
|
|