Another visually minor update today, but that’s ok because I spent most of the time on fixes and optimization. I managed to speed up the drawing code significantly by cutting out the number of passes through the entire Map Object list which was called for each type of graphic (be it overlay, obstacle, or decoration). And even worse, to emulate 3d I had split up obstacles into two passes, but realized that since I didn’t attach a seperate collision map to each object that there was no reason to check if it would draw in front of Arashi or not.
In preparation for the Menu implementation, another of the fixes made today was regarding the base player attributes. Since the original Shadowdawn design, I use a 7-part attribute system that covers pretty well all aspects of character development in a balanced way, so there is no one dominant trait like Strength is typically. With their addition finally to this game and replacing the placeholder numbers from the very first version with enemies, I could finally start doing real damage calculations, though I see it will still need some fine-tuning towards endgame. Critical hits were added with this update, though the calculation for their occurance isn’t -quite- perfect, but it’s easy to adjust the way I set it up. At least now I have a firm idea how to make equipment choices interesting for the player.
Also in this screenshot I am experimenting with lighting. I think I got a glimmer of an idea how to do 2D lighting effects, though I was originally thinking about it the entirely wrong way. It will take a bit of work to implement fully, but the payoff will be great visually. One final long overdue fix is locking the camera in place when reaching the edge of the map, before it would continue to scroll and show the black void beyond the edge of the map, which really annoyed me, but looks much better now and will be easier to cover up with decorate graphics on the borders. Honestly other than drawing the animation frames and creating map decorations, the graphics processing end is nearly complete.