The beta build went public in early May, which was an important milestone. This nudged me to look under the hood (using hxScout) and fiddle with the engineering stuff.
I managed to raise the framerate from 3 to 24 FPS for portions with a lot of mouse clicks and hero movement. There's still space for improvement (60 FPS is the gold standard) but I'm happy with the changes - and hope you'll feel the difference, too.
Do give the new build a go and let me know what you think!
For those who are interested in the technical bits, here's a list of major engineering tweaks:
Replaced Box2D physics and all collision events with coordinate detection.
All ambience sounds are pre-loaded on individual channels at scene initialisation.
Replaced "always" events with one-off custom events where possible, including all hero interactions on the map and combat logic, as well as animation switches, font switches and such.
Consolidated all mouse clicks and releases in one listener event.
Replaced OpenFL Textfields for button labels with more primitive (but faster) Stencyl "drawing" code.
Eliminated dynamic lookups for hashmap values.
Character death animations are now created dynamically using an "eraser" actor and image masks, instead of pre-loaded frame-by-frame spritesheets.
Implemented a dynamic tracker of opened windows and layers containing interactive elements.
Implemented a version check at game start.
Happy playing!
0 comments