Whoa, I could swear I posted more recently. Any way, all my games except Dishpig! on Android (and Windows Store) should have an update rolled/rolling out. Before getting to work on my next project I thought I would spend two months on two tasks that I really wanted in for it. (on a side note, I am working through the issues so the android build of Dishpig! will hopefully be ready to go soon).
The first of those tasks I wanted to take another pass at improving shadows. I say another because this is probably the third or fourth time I have gone back to route out what exactly is the reason shadow maps in A Woodsman are such poor quality. This time I decided to tear everything apart. I built desktop program that would like me debug everything single step in the pipeline and log it, bit by bit, layer by layer in the hopes that I could find something to help me understand better.
The results were fairly good. I found a few chunks of stuff I didn’t need to be doing, and I did manage to improve the data going in. This allowed me to reduce the shadow bias value by about 60% in the end (?). I also managed to bring in variable biasing which let me reduce the bias a little more. I spent a bit too much time figuring out why I couldn’t push that even further to realise something I did in A Woodsman actually ‘clipped’ the most extreme value. I may eventually go back and fix that. I also resolved a few peripheral issues such as shadows showing in unexplored areas and reduced artefacts on some angled surfaces. And I put in the next step towards better shader handling into the engine which allowed me to reduce 5 shader pairs (vert + frag) to just one. It isn’t yet ideal, but it is a step in the right direction.
The second thing I did was to use some of knowledge I gained putting in full Unicode support in the app I am working on my contract to bring in better support into my engine. That basically means wrapping will work better. It also improves my support for other languages. And I was able to add in support for both LTR AND RTL. Also ‘composition scripts’ (I always forget the right term; Arabic, Devanagari and Thai are examples). Also it should resolve a subtle positioning issue I had in A Woodsman. And the way I render text should be more efficient as a necessity for some support. Now I need to find someone who can translate A Woodsman to Anishinaabemowin and I’ll be set.
Oh ya, I also fixed up a few bugs I missed before in A Woodsman!
What’s next? The new game!! I have ideas. My plan was to start talking about it soon. Maybe one I get the first earliest build? I have also been tempted to take advantage of the text rendering improvements and bring Chip’s Bricks over to the new engine. We’ll see though. I am still on contract so my time is quite limited.