This chapter is a work-in-progress. You can help improve it by bugging the author, Starrodkirby86.
When storyboards were first introduced into osu!, they were intended to mimic the background animations of the Ouendan and Elite Beat Agents games: basic slideshows of images, simplistic pass/fail visuals, and a narrative from start to finish. And yet, as osu! continuously grew, more tools became available for development, and innovators pushed the boundaries of storyboarding far more than its original intentions.
In this sense, the concerns for storyboards have shifted greatly as well. What initially were concerns about strobing and a multitude of large images being loaded at one time, have now shifted into ones that simply push osu!’s game engine with a sea of sprites coordinating together into something utterly unreal.
As of the last revised date for this article, new efforts to promote performance-friendly storyboards in an era of particle generation have been brought up here. As such, the ranking criteria has now changed to allow a storyboarder more freedom in rendering sprites, but also to be a responsible creator that won’t highly detract gameplay performance whilst creating art.
This chapter is devoted to creating and improving a storyboard for performance, from problems and solutions to general principles in ensuring a storyboard that isn’t something relegated to Cinema mod.
SB Load is a simple metric that is determined by how many rendered sprites occupy the 4:3 viewport. A sprite background occupying the 4:3 playfield of 640x480 would simply be an SB Load of 1.0x, as a background occupying a widescreen storyboard of 854x480 is of 1.33x. The metric is a sum of all rendered sprites at the current point in time. For instance, a series of four sprite backgrounds cascaded over each other results in an SB Load of 4.0x.
These concerns are more founded when you’re scaling upwards and are using many commands
These practices should not necessarily be used unless your code is already considerably slow, and the bottlenecks such as O() algorithms may have been taken care of. Likely for storyboarding cases they are not important, but for knowledge’s sake. <3