This Is The Game:
That's the main mechanic, toggling a light on and off to interact with a different version of the level. It's a really cool thing that I first built in about 30 minutes for a class in college and now turned into a full project that I intend to finish before the end of summer.
The light itself is just a circle with a little shader to make it wobble and a destination out blending mode applied to it. That blending mode allows the sprite to "pierce" through the first layer and show the layer behind it or, as I call it, the other dimension. To organize the collisions, I just change a "solid" property on the collision boxes depending on whether the light is on or off. Like I said, it's a simple mechanic.
What I did not expect, however, is how complex the level design process is. Every time I decide to create a new level I have to sketch two, one for the top layer, and one for the bottom (or hidden) layer. Not only that, the two layers must interact with each other. It's not just about making two levels per "screen", but about creating a little story about how each dimension exists within the game world. A level is not good unless there is a "oh shit" moment when the player sees how that inter-dimensional iteration looks. AKA, the moment the puzzle is solved because the player sees that they're dealing with two worlds at once (as you can see in the image above).
A bad example of level design is the image below. Even though I think it looks cool, the two layers have almost no interaction with each other, they just exist there. Separately.
So yeah, this devlog is just me venting about how a simple idea can turn into a design nightmare. But I'm having fun making this game! All the menus are done and now I just have to focus on level design and adding some other mechanics I have in mind that play off the light and collisions.
If you read this all the way through, thanks! I'm planning on writing more of these to keep me on track and active in the game's development.
Of course, you can follow me on Twitter for smaller bits of progress and screenshots: @elDaddyGabe.