Melayu is a game about a girl stranded on a tropical island who stumbles upon a magical flower that connects her to the spirit world.
The game is a University project developed over the course of six months by a team of five people. Our showcase won the Best Sound award, Best technology award and Student Choice award. I was responsible for the environmental assets, shaders and visual effects, which won us the best technology award.
From the beginning we wanted the game to have a unique style. I settled on Toon shader but decided to expand its functionality by adding support for Normal, Roughness and Emission maps
From the beginning we wanted the game to have a unique style. I settled on Toon shader but decided to expand its functionality by adding support for Normal, Roughness and Emission maps
Water was an important element of our game so I decided to put a substantial amount of effort into its rendering. On the Vertex shader, I am blending together 4 Trochoidal waves and using scrolling normal maps for micro-details. On the Pixel shader, I am coloring the water based on depth and distorting the scene behind the surface of the water.
Since the project's development was limited to six months of work I tried to create a shader that would save up a lot of time in terms of decoration. The idea was to automatically place vegetation on top of the rock's surfaces as a way to create variations and blend the assets together in a natural way whilst remaining artist-friendly.
The blending intensity can be adjusted by the artists.
The trees and rocks were all hand-sculpted by me. I also re-topologized them and set them up for texturing. (I didn't create the smart material though)
My idea for the foliage was to create the illusion of density by creating a sort of mesh decal with very aggressive LODs. This mesh was used to patch up the areas between the grass blades, which were programmed to be dynamic and react to the player / object.
The trampling logic is taken from NedMakesGames. It works by creating a render feature that tracks the player's position and feeds it into the shader.
The shader then rotates the blades of grass using World Position Offset. When the grass is trampled, less wind applies.
Multiple positions can be tracked at the same time, but for the final prototype I left it at one.
The crystal shader was created for the ending puzzle. This shader fakes some effects such as refraction and the dispersion of light. I wanted to give it a cloudy, mystical feeling, so I used some animated noise textures to control the transparency of the objects. This is the shader demonstrated on two different objects.
Out of boredom and a bug, we decided to create a surf map with trippy visuals. This can be dowloaded as a separate file on the itch.io page.