top of page

About

Luna is a fast-paced 2D platformer where the player must race against time, overcoming various obstacles to complete the game.

Developed within a 3-day game jam, this project challenged me to implement key mechanics efficiently. The two aspects I want to highlight are:

  1. Physics Joints – How they were used to enhance movement and interactions.

  2. Abilities & Inventory System – How abilities were integrated into the game's inventory system.

​

​

​

Luna

 

In Luna, the hanging platforms were created using Unity’s 2D Hinge Joints. These joints require a Rigidbody2D and a reference to an object they can "hinge" to.

By utilizing multiple hinge joints, I was able to create swinging platforms that added momentum to the player's movement, enhancing both challenge and gameplay dynamics.

While working on these platforms, I also explored other types of physics joints in Unity. This experience helped me implement similar mechanics in other game jam projects.

Vertical Black Box.png
Vertical Black Box.png

Ability-Boosting Inventory System

​

In Luna, the fruit icons in the inventory serve as power-ups, enhancing the player’s existing abilities:

  • Apple → Increases the player's base speed.

  • Banana → Grants a higher jump.

  • Orange → Enables a dash ability when pressing the dash button.

Designing the Inventory System

Initially, I planned to implement a pickup system where players could collect fruits and use them when needed. My approach was to store these fruits in an array and manage them using the LIFO (Last In, First Out) method, allowing the inventory to rearrange dynamically when fruits were consumed.

However, due to time constraints, I opted for a simpler approach—giving the fruits to the player at the start of the game and allowing them to activate the abilities as needed.

Implementation Details

To handle the ability boosts, I used public references for the player's moveSpeed and jumpHeight, allowing the fruit effects to directly modify these values. For the dash ability, I introduced a boolean variable (canDash), which was set to true when the player obtained the Orange and pressed the dash button.

Looking back, I see many areas where this system could have been improved. Nonetheless, this project serves as an important milestone, showcasing my growth as a game programmer.

​

 

 

​​​​​​​

Gameplay:

Vertical Black Box.png
bottom of page