It's Kou from FHW.
Today in SUPER METBOY! issue #8,
Rebuild Games' Lead Programmer Hosshy will discuss「Adherence to Load Time」！
Adherence to Load Time
Hello, everyone. Nice to meet you all. I am Lead Programmer Hosshy.
At this time, I will be discussing adherence to load time. Please pardon me if I get a little too deep into this presentation.
About Load Time
We considered keeping load time as short as possible.
It can be discouraging to wait a long time to play a game you want.
It's essential to keep the load time short from starting the game to playing it. We considered if the load time is extended, then unconsciously, the hurdle to start the next game will increase.
The experience may feel longer if there is no response, so we devised a way to load the necessary items little by little from the logo scene so that Players do not get tired of waiting.
I digress, but we carefully restricted the load time to make it feel like there is「Instant Play」.
The controller instructions are learned by playing the actual game.
SUPER METBOY! was made with Unity.
In Unity, all resources are usually prepared and loaded during startup, but the load time can be adjusted by stored, archived files called AssetBundles.
In the case of SUPER METBOY!, the necessary resources for each scene are separated into AssetBundles, so the minimum requirements for the scenes are loaded.
Also, duplicated resources are separated again into AssetBundles to not be wasted.
With Scenes In Build in Build Settings, the scene can be loaded at startup, but the scene itself can be stored in AssetBundles, which allows the load time to be adjusted.
In the case of SUPER METBOY!'s Scenes In Build starts processing the script when empty scenes are registered.
Also, the empty Base Scene constantly loads to avoid disordered scene intermissions, so during scene switches, the Base Scene becomes active after the scene fades and loads the next required scene.
About BGM (Background Music)
BGM file size tends to be huge, but the sound quality was decreased, so there isn't any discomfort while usually listening to it.
（However, the game's central theme is heard during the entry, so its quality is relatively good.）
Also, since the file size is huge, each track is separated with AssetBundles, to prevent multiple BGM tracks from loading all at once.
It can be time-consuming, but the BGM volume is large and surprisingly effective.
Frequently used Objects are Resident
The most effective way to decrease load time is to "no load" it.
SUPER METBOY! does not require a lot of memory, so frequently used objects are loaded one by one instead of permanent memory.
A few more words from the developer
Lead Programmer Hosshy
Here I have presented the fundamentals, but load times can significantly vary in these instances.
For example, loading the next screen while the other is still on runtime, etc. There was more that was able to be done, but there was no end to what could be done, so we made a clear decision on what would be the most cost-effective.