Summary:
In which a new metroidvania-ability is implemented.
Greetings and salutations!
This week's screenshot shows the effect of a new metroidvania ability:
And indeed, that new ability was, I think, the main work of the week just past, albeit with some other things done besides:
The new ability in question is--for the moment at least--called "The Eye of the Aether". In short, it allows the player-character to dip into the aethereal at their current location--and thus to reveal some things and vanish others. In some cases this only reveals an impression of a past event; in other cases, it changes the world around, and the paths available through it.
And I have at least one use in mind towards the full game that would take the latter even further...
The presence of such unseen elements is currently sign-posted by a localised mist.
Actually creating this feature did prove a little challenging, as I recall, and involved a bit of iteration:
Originally, I envisaged the ability as operating by area of effect: when activated, it would make relevant objects appear or disappear within a certain radius of the player. And indeed, I implemented this and had it largely working, I think.
But I realised that it presented a problem: if the player revealed only part of an aethereal structure, they could potentially find themselves dealing with a broken room--and indeed, one that might then allow them to escape the confines of the level.
So, after some thought, I changed my approach: Now aether-related structures are handled as indivisible units, meaning that when acted upon the entire structure is affected.
Further, such objects are now detected via trigger rather than distance: aether-related objects each have a trigger that alerts the ability to their presence, and on the ability's activation, all present objects are then affected.
And once again, a variety of things were done that don't seem worth detailing here--collision for dragged objects; some level-building; a few more bits of tutorialisation; bug-fixes; and so on!
But before I conclude this blog-post, let me share one more gif--this one showing a test of a post-process effect that I implemented in the week just past. The effect was subsequently removed, but I like the gif well enough to want to share it anyway:
That, then, is all for this week--stay well, and thank you for reading! ^_^