Open stickgrinder opened 4 days ago
I like the idea of having something in the Project Settings (maybe under a Scene Transitions section? or the GUI?). But from what I saw while checking the code, having rooms "covered in black" by default might be also needed.
PS: I guess you are refering to the on_room_entered()
function. We don't have a _before_room_entered()
function, neither a _before_room_updated()
one.
@mapedorr yes, sorry! I took a note to check the function name because it sounded weird and I didn't do it :sweat:
Fixing!
What's the expected benefit of the feature you are requesting?
The
_on_room_entered()
function is called on the room change, and happens before the transition layer starts to fade away. This is useful to mask all the setup actions, like moving a character to a certains spot, making some animation play to a certain point, or whatever can "take screen time" and create visual glitches.The problem is, the transition layer is not applied to the first room, so there is no way to perform some preparatory actions "behind the curtain" if they happen in the first room.
The absence of the TL is by design, to save dev time during tests, and considering that the first room is usually a splash.
In practice this effect is very mitigated and clearly nobody notices as of today, but me coding the sample game.
Still this is a problem that a wider adoption may arise, and the reason is, you can't trust the
_on_room_entered()
function to behave consistently. The first case out in the wild will result in a bug report.Describe the solution you'd like
Simple and effective solution is to add (and document) an option in the Project Settings, called "Fade in at game start".
Devs will decide the behavior of their game, not being forced into anything.
Describe alternatives you've considered
_on_room_entered()
function to explain that it won't apply to the first room (this is more of a workaround, really)