I recall during my CS studies that predicting loading bars with 100% accuracy is literally impossible. Something about the only way to predict it was to actually perform the action and then report back to the user.
Did some quick Googling to find a paper or article on this and nothing turned up, unfortunately.
Is that It’s an asynchronous operation and you need to send messages in the form of events back to the UI thread. But it’s difficult to predict how much of the total percentage of progress you just finished in the small part it’s doing, since every part is doing something different or longer-taking. So it’ll jump and won’t be steady. Or, you make a fake one that goes steady and shows down at the end, or something similar. So, fake. :)
I kinda wonder if it’d be possible to actually record data on the operations used, and then incrementally use that to inform future loading bars. I guess it’d have trouble if future runs are going to execute on different hardware, but at least on consoles, it could use some sort of learning algorithm to say “30 seconds of 40 finished”.
To be fair, I just now realized there’s issues like disk fragmentation if someone is on a PS4/XB1…
I recall during my CS studies that predicting loading bars with 100% accuracy is literally impossible. Something about the only way to predict it was to actually perform the action and then report back to the user.
Did some quick Googling to find a paper or article on this and nothing turned up, unfortunately.
Is that It’s an asynchronous operation and you need to send messages in the form of events back to the UI thread. But it’s difficult to predict how much of the total percentage of progress you just finished in the small part it’s doing, since every part is doing something different or longer-taking. So it’ll jump and won’t be steady. Or, you make a fake one that goes steady and shows down at the end, or something similar. So, fake. :)
I kinda wonder if it’d be possible to actually record data on the operations used, and then incrementally use that to inform future loading bars. I guess it’d have trouble if future runs are going to execute on different hardware, but at least on consoles, it could use some sort of learning algorithm to say “30 seconds of 40 finished”.
To be fair, I just now realized there’s issues like disk fragmentation if someone is on a PS4/XB1…