Updates to the game engine
As I mentioned in the last post, the game has been walking nicely for the past couple of weeks. I've been getting things wrapped for a test build. Along with assembling more rooms of the game world and polishing bits of story and dialogue, I've been doing a whole lot of small improvements and fixes for many systems in the game engine.
Lighting system update
One of the more exciting ones was an update done to the lighting system. Light sources are rendered one by one to a canvas, and this determines how it will be applied to the darkness layer to get cutouts. Doing this can be taxing for performance, so you can half the resolution to get an improvement (i.e. the 320×240 canvas becomes 160×120). If you quarter it (80×60), you get a performance boost, but you get some ugly pixellation as well (shown in the example above). Blurring the canvas to make those blocks smoother was out of the question before, as it would be slower, but now that we're using Hardware Acceleration (HWA) shaders, it can be done very quickly. This way, we're using a pretty low-resolution canvas to render light sources but, by blurring the results, we keep the original intention of the lighting system at a quarter of the performance cost!
The gif on the left shows before blurring and the gif on the right shows after, although the 255-colour limit makes it a bit hard to see.
Software render-mode support dropped
While we're on the subject of Hardware Acceleration, I want to say that I finally decided to drop support for the software rendering mode, which makes the game compatible with old graphic cards. I made this choice because I used to have to develop some things twice to keep the game compatible with both modes. Overall, software mode's definitely slower and with a limited amount of blending effects. Any computer that supports Direct3D 9 can run HWA-games, so it's a good decision to only develop the game for this mode.
I'll talk about some cool enhancements made to a couple of spells in the next update!