Hardware Acceleration

Resolution Comparison

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.

Ivan Flash Animation

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:

Ivan Animation Frames

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:

Thieves' Warehouse Battle Textures 1
Thieves' Warehouse Battle Textures 2
Thieves' Warehouse Battle Textures 3
Thieves' Warehouse Battle Textures 4
Thieves' Warehouse Battle Textures 5
Thieves' Warehouse Battle Textures 6

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!


New posts are available early to subscribers on Patreon.

Thank you for your support!