For my graduation project I had a very clear goal in mind, namely :
"How do I use the 2D Lighting, Rendering Pipeline and Shader Features of modern game engines to create an 'enchanting' experience for fantasy and adventure game fans."
Before I started I did a ton of research about similar games and associations people have with the feeling of 'enchantment' I was trying to invoke. I discovered that vibrant colors, contrast and certain tints such as purple and cyan invoke a sense enchantment and related feelings such as curiosity, wonder and excitement.
I looked at games which people rated very highly as being enchanting such as the Ori games as a point of reference. And after I looked up major interconnecting aspects such as glowing elements, unexpected surprises, mystery and nature and put that against more mundane aspects to avoid such as mechanical and civilized elements and flat colors.
To further invoke the feeling of enchantment and the contrast between more mundane elements I wanted to create an antagonistic force that represented the more mundane and unenchanting aspects. For that reason I went with more yellow tints and more mechanical movements and shapes for the enemies and obstacles within the game.
I used the relatively new 2D Rendering Features of the Universal Rendering Pipeline within the Unity Engine to create lighting effects. I used ShaderGraph to create movements within the elements of the game to allow for movement without having to create sprite sheet animations for background objects. This allowed me manipulate the shapes and forms of background objects and create a unique and varying appearance despite having made only a handful of assets to decorate the background. Which saved a huge amount of time in the asset creation process.
I made sure to use the knowledge I gathered from making pixel art illustrations to create a sense of depth in the game and I loved the interactivity of combining multiple small and modular components to create a complete experience. This allowed for a very non-destructive workflow in which I was able to manage and tweak small details in the environment.
In code I also made sure to make classes that utilize the single responsibility principle. I also made sure for my content to extend the Corgi Engine I was using. This is similar to the workflow I had when I just learned C# when I was making Terraria mods, so it felt very intuitive for me to work with.
Generally I'm quite happy with how the experience has turned out. I'd have loved to have create more spells, assets and effects. But I'm happy the core of my project has been created and if I were to continue I think I have created a great foundation to build upon.
I think the potential of shaders and lighting within 2D projects is very large. There are a lot of neat tricks within the creation process of modern game engines that are normally reserved for 3D games that are very valuable for 2D projects that can be used without losing the essence of the style you're working with.
Also a big thank you to Danae Dekker for creating the music for the game!
Gameplay Footage
Glow and Animation without sprite sheets.
Hidden Areas and Rewards. Custom Fade Shader.
Let's Bounce,
Academically approved rainbow lasers,
It's a puzzle what to do next,
No such thing as too many mushrooms!
Animated Ambiance 1
Animated Ambiance 2