Is it possible to avoid startup loading entirely in HTML5 games?

So, in most web games you have a big annoying loading screen that severely dampens accessibility. I wanted to dynamically load/cache content seamlessly, avoid this issue.

For example, the player starts the game and a script automatically executes which loads JUST the title slides and menu. This is a trivial amount of data so it should be seamlessly (no loading). They would jump straight into the slides. Then another script would load concurrently that starts to render the actual game world (just the immediate area), even though the player only sees the menu screen. Then after the player seamlessly enters the world, another script could execute which would start caching the proximity environment, particularly when the player isn’t moving much, to reduce resource usage, and make it seamless. Is this possible?

You can’t avoid loading times completely, you can only move them around. Just bear in mind that any texture has to be completely loaded before it can be rendered.

I think the risks with background loading are: (1) you might get some jitter if you’re creating many/big resources; (2) you’re not guaranteed to receive the resources by the time you need them.

1 Like

So here’s an idea. Couldn’t you load assets in phases so something is displayed immediately?

Like, for example, my main-menu is extremely elaborate. Wouldn’t it be conceivable that dependent on player performance/connection I could scale the assets appropriately? Maybe instead of the textures being 256x256 they could be scaled and rendered at say 128x128. This way despite the player’s hardware/network being unable to load that ideal quality in time they would still receive something, and then if the player is still on the main-menu it could continue to load the ideal quality in the background, eventually updating it.

I was considering an overall fidelity system using this kind of system. So there could be 5 tiers of fidelity, controlled globally, applied to each individual asset. Therefore the player would always have content loaded (no weird texture), and no obvious jitter. I was thinking about prioritizing high fidelity on the player character and the immediate environment.

Sorry for the tangent. I’m thinking hard on this. I really, really don’t want loading screens at startup or in my game.

You could load in phases but there’s no way to avoid some loading/creation time for even small assets.

1 Like

i see what you’re saying. it would always require an amount of time to load any asset, by nature of web games. thanks for answering!

what i’m going to try and do, is make the title slides so small in terms of file size that they can be loaded almost immediately upon starting the game. i suppose you could also use some programming magic and predict whether the player is going to launch it, or implement animations to make the transition smoother too