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.