Hardware Acceleration



So, we've decided to take our Flash game to the next level and run it full-screen. Despite the artwork being entirely vector-based, we unfortunately can't simply change some settings and expect to perform well at 233% normal size. This is due to Flash's CPU-based renderer.



In the CPU version of World's End, we did need to do some graphical optimization like rendering map layers into bitmaps, but otherwise the Flash Player handled the rest by re-rendering the vector artwork each frame. This is unfortunately not something your typical CPU can do to fill an entire 1080p or higher resolution display. Not with any speed, at least.

Now, to fill a modern display with our game's artwork, we need send it to the graphics hardware beforehand in the form of a spritesheet:



Where previously I could leave the artwork entirely up to Complacent's direction, I now have to recreate animations by keeping track of keyframes, layers, tinting and application of glow and other effects manually. Fortunately, we don't have to completely redo our source artwork, but there's still some manual work to be done per-animation.

Here's how the first thieves' warehouse battle is looking:



Ivan is a bit of a space hog at the moment, and I'll be further breaking down his attack animations into layers as I've done for Ysabel. Depending on how close we get to an overall 512MB graphics memory limit (for support on older hardware), I will resort to further sprite dismemberment. Several decapitations may be in order, but that would be a topic for a future post.

Thanks again, everyone, for your support, and welcome to our new patrons!

-Crack

World's End Development Blog

2020.Aug.21

Next: Working with Color (Available early to supporters on Patreon)