Melayu
A GameLab project at Hanze University of Applied Sciences, The Netherlands
The requirement of the course was to develop a game in 5 months for a chosen audience with supported research and a business model.
As a result, our team Won: “Student Choice“, “Wonderful Technology“ and “Best Sound“ awards!
Tools:
Unity Engine, C#, Hack’n’Plan, GitHub, Git-LFS
Roles:
Developer
Team Size:
6 members + 2 Composition Students from Prince Claus Conservatory
Responsibilities:
Developer
GitHub Source control
Player States
Player Climbing System
Player Free Wall Climb System
Player Walking State
Crystal Puzzle Mechanics
Puzzle area obstacles
Animator animations setup
Description
Melayu is a chill, exploration-platformer about exploring an abandoned island and reconnecting with your cultural roots. Work together with a spirit flower to gain access to special platforming abilities and restore the island to its former glory! Heavily inspired by Southeast Asia and the Mediterranean (where several of our members are from).
Climbing & Puzzles
Climbing System
I have implemented the Climbing System as states in the Player movement state machine that another developer in my team has prepared for our character controls. As Ledge Grab and Free Wall Climb are another mechanics of Player Movement it was possible to make them as an addition to the player states.
Ledge Grab:
When the player falls, he casts two rays, which determine where it is time to attach to the ledge. The ray from the invisible ball detects the top surface of the ledge and the player ray detects the side of the ledge to calculate the position of the ledge corner. Additionally, it checks, whether is a wall for grabbing a ledge or possible for the free climb.
Free Wall Climb:
When the player detects a “Free Climb Wall“ he gets attached to the wall side and is able to freely move in any direction. Also is able to go around corners as Ledge grab.
Climb Up Ledge
Triggers a state change and lerps the player across a couple of positions to make him not lerp through the wall to the top surface of the held ledge.
Puzzles
The player is able to pick up crystals to complete the puzzle area to proceed to the next level. Meanwhile holding the crystal the character is restricted to walking slowly.
Crystal Pick Up
By using the Interaction script that my developer team-mate has done for various objects in the game, I let the player be able to grab the crystal and then add my code to it for puzzle checks & triggers.
Crystal Position Check
Check if the player has placed the crystal in the correct position, which would lead to triggering the laser cast to the neighboring crystal.
Development Conclusion
Due to the game being a big university project there were decisions made for fast and repetitive code, because of the closing deadline, mostly for the puzzle area. However plenty of things have been learned and stored in my experience. For example first time working with a developer team-mate who is at the same level of programming skills as I am, StateMachine and climbing mechanics.