Friday, November 22, 2013

Elbrus Shrine...

Hi all,

Here is what has been done this month in Valyria Tear!

First of all, the Episode I last dungeon is slowly but surely advancing on our side. I wouldn't like to spoil it all, but here is something I can already show you:

The Shrine entrance...

Some will recognize the excellent work done in the Liberated Pixel Cup adapted for Valyria here. An adaptation that took some time already... ;)

During that time, on the development side :

 Support for a key to toggle the minimap view has been added. A feature dedicated to BioHazardX. ;)

 Work has been also done to properly support the XBox 360 pad and D-Pads or Hats in general.
There is still a small issue preventing you to use the D-Pad to move your character in the map mode, I'll advise you to use the L button for that until this is properly solved. :)

 I'm also in the process of prettifying the characters battle attacks, by adding new animations, dust and weapon slash effects,  ...

 Last but not least at all, I spent something like two weeks working on a big overhaul of Text Rendering management.
 That part of the code was a bit rusty, and bearing historical workarounds (including mine), making it something heavy. I previously fixed the most ostensible heaviness there (one year ago in fact, wow) by turning the glyph cache from a std::map to a std::vector leading to better performance when parsing it.

 Previously, the texts rendered on screen were computed on each draw call for Option Boxes (used as selectable lists) and Text Boxes (Main text Gui objects with word wrapping support and other nice features).
Only one class (TextImage) was made with the concern of rendering the text only once and reuse the text texture at draw calls as a normal image.

I thus made the Option Boxes and Text Boxes use Text images wherever possible while checking for recomputing only what's necessary and when necessary and made many other tweaks that came along the way. (Cached the Font objects within text styles, made the shadow colors only recomputed when necessary, ...)

The script supervisor is now also using Text Images, meaning that showing some text through scripting isn't killing FPS anymore.

It turned out well, as I earned an average of ~20 FPS on my low-end laptop when dealing with the menu mode, for instance, where there's a lot of text to draw, and the FPS are much more stable and higher in general now.

VoilĂ  ! I hope I didn't lose you in the middle of my geeky explanations. ;)

Stay tuned!