Summary:
In which level-building continues; tutorial-messages are added; "blockages" are made; room-hiding is reworked; a door is thickened; lighting is implemented; and performance optimisations are sought and enacted.
Greetings and salutations!
This week's screenshot shows another addition to the aesthetics of the game: lighting! (As well as some tutorial-text.)
The work of the week just past was perhaps given primarily to issues raised by level-building, with some actual level-building and other matters done besides:
To start with, I did enact some level-building in the week just past--indeed, I think that I have the functionality and layout of the Vertical Slice Tutorial Moon complete!
This itself involved the implementation of two new features: Tutorials, and "blockages".
The tutorials in question are simple things: popups that appear when the player is within certain rooms, each sized to its text.
Speaking of which, I think that I have said text more or less complete--although I might add one more entry in the final room of the tutorial.
"Blockages" are likewise fairly simple: they're essentially "doors" of a sort (although not descended from the actual "Door" class), being objects that may control whether two rooms are linked. However, unlike actual doors, or breakable walls, these are not "rooted", and so can be moved via the player's "grab" metroidvania-upgrade.
As to the aforementioned issues raised in level-building, one of those was the matter of hiding rooms when they're separated from the player.
Until the week just past, this was done by fading the room itself to black--a simple expedient that had seemed to work.
However, in building a proper level in which this effect was visible, I found that it didn't work as well as I'd hoped: the cut-off between hidden and visible rooms was too sharp. (And there may have been some other unsightly artefacts; I forget.)
So, in the week just past I replaced that system with a variation of a previous one: now each room (optionally) has "cover" geometry, which can be faded -in and -out to hide said room. And since these covers are separate geometry, they can be made to overlap adjacent rooms and given semi-transparent borders, allowing for a softer transition between a hidden room and an adjacent visible one.
But this approach did incur a problem of its own: the doors of the Ossuary Moon were too thin. With the soft transition placed over them they would be all too greatly covered.
Thus I reworked the Ossuary's doors to be wider--and, I think, a little cooler:
Another issue that I discovered in level-building was that levels could end up looking a little flat; a little uninteresting. Even, I suspected, once additional decoration was put in place.
After some thought, I settled on the idea of adding lighting to my levels, in the hopes of adding a bit of depth and variation in their appearances.
These lights are fairly simple things: up to sixteen circles of illumination, each with a size, an intensity, and a "softness". (Although I may yet add colour.)
What's more--and with the aid of someone on GameDev.net--these lights do not accumulate independently. Instead, they merge together into blobby "masses" of light, creating an effect that's a little more stylised, and with a little more "form", than might be had with independent lights.
The result, then, should be visible in the first screenshot above!
On the technical side, one more issue that I had discovered was that performance dropped quite significantly around a cluster of enemies in the Vertical Slice Tutorial Moon.
So, in the week just past I set out to improve matters. Offhand, I recall that I implemented shader-based skinning, and that I adjusted the handling of effects by projectiles.
And indeed, these things helped! The frame-rate does still drop more than I'd like--but noticeably less than it did, I do believe.
And of course, there were various tweaks, fixes, and changes that don't seem worth detailing here!
That then is all for this week--stay well, and thank you for reading! ^_^