The problem is, loading things takes different amounts of time. I once tried to implement a real loading bar for an app because it took long enough to load that clients needed some indication that the app hadn’t crashed. There were seven steps, so I naively made each step take about 14% of the bar. Then I tested it, and it just jumped to step 4, sat there for the entire loading process, and then jumped to 100%. Because loading isn’t linear.
The only way for loading bars to work is for them to be fake.
I’ve seen other games add a secondary loading bar for the individual task at each step. So, sure, its stuck at 5/7, but then the second loading bar shows it’s still processing.
Perhaps the best indication is just telling the user what it’s doing rather than an arbitrary progress bar.
Edit: Just gonna add, I’ve been playing Bannerlord and the game (while heavily modded) just silently freezes when starting a new game. Outside of task manager and watching the game just not do anything for a while, you wouldn’t even realize it was frozen.
Why not make a fake loading screen that adjusts load times based on how long it took to load the previous instance within the same environment?
If I’m using the same version of everything, and same hardware, then those load times would be very similar or near identical, and I no longer have to deal with randomly jumping status bars, no?
The problem is, loading things takes different amounts of time. I once tried to implement a real loading bar for an app because it took long enough to load that clients needed some indication that the app hadn’t crashed. There were seven steps, so I naively made each step take about 14% of the bar. Then I tested it, and it just jumped to step 4, sat there for the entire loading process, and then jumped to 100%. Because loading isn’t linear.
The only way for loading bars to work is for them to be fake.
I’ve seen other games add a secondary loading bar for the individual task at each step. So, sure, its stuck at 5/7, but then the second loading bar shows it’s still processing.
Perhaps the best indication is just telling the user what it’s doing rather than an arbitrary progress bar.
Edit: Just gonna add, I’ve been playing Bannerlord and the game (while heavily modded) just silently freezes when starting a new game. Outside of task manager and watching the game just not do anything for a while, you wouldn’t even realize it was frozen.
Why not make a fake loading screen that adjusts load times based on how long it took to load the previous instance within the same environment?
If I’m using the same version of everything, and same hardware, then those load times would be very similar or near identical, and I no longer have to deal with randomly jumping status bars, no?