Jing Chung

Monkeying Around

About The Game

Climb! And be brave!


Monkeying Around is a two-week project where players use hand-tracking technology to climb through a vibrant world. Overcome the challenges of three towering shelves to reunite with your monkey toy companion!

Inspiration

“If horizontal space is limited, why not take advantage of the vertical?”

Developed by students at Carnegie Mellon University’s Entertainment Technology Center, this idea emerged during brainstorming. Inspired by the constraints of physical space, I proposed creating a climbing game to push the boundaries of vertical exploration.

Monekying Around

Tech Breakdown

Hand-Tracking-Based Camera Movement

Basic Concept

Imagine the motion of climbing: as your hands move downward, your body moves upward. This concept forms the basis for moving the camera using hand-tracking data—applying hand movements inversely to the camera’s motion.

Physics Implementation

Unity’s built-in physics system, controlled by the Rigidbody component, is used here. When climbing, gravity must be turned off, allowing the player to move entirely based on hand movements. Once both hands are released, gravity is re-enabled.

Climbing Mechanics

Starting and Stopping Climbing

When a hand touches the placeholder, every movement of that hand is applied inversely to the camera. This enables the climbing motion to start and stop based on the hand’s interaction with the placeholder.

Major Hand Logic

During climbing, people naturally rely on the most recently engaged hand to pull themselves up. Similarly, in this implementation, the player’s movement is driven by the latest hand that touches the placeholder.

Hand Switching

What happens if a player releases one hand from the placeholder? The system accounts for this with hand-switching logic: if one hand is released, the remaining hand on the placeholder automatically becomes the major hand.

Monekying Around

Challenges

How To Release The Hand?


When the hand’s movement offset is inversely applied to the camera’s position, the hand remains stuck to the placeholder. This creates a challenge in determining how to release the hand from the placeholder. Since the hand’s distance from the placeholder cannot be directly used as the sole criterion, an alternative mechanism was designed: using another game object as the reference for determining whether the hand is far enough to release.



I call this the Marker Weighting Mechanism. When the hand touches the placeholder, an independent marker game object aligns with the hand's position. A normal vector is then calculated based on the hand's position, its forward vector, and the placeholder's position. As the hand moves, the offset is applied to the marker's position. However, movements in the same direction as the normal vector are assigned a higher weight, causing the marker to move away from the placeholder more significantly than the hand's actual offset.

When the marker reaches the release threshold distance from the placeholder, the hand is considered released. This mechanism ensures smooth and intuitive detachment from the placeholder without relying solely on the hand's direct position.



Loss of Tracking

The Meta Quest 3 tracks hands within a specific field of view. During playtesting, many players looked around, moved their hands out of this range, or overlapped their hands, causing the system to lose hand tracking and resulting in players falling. To address this, a logic was implemented to maintain the player's position when tracking is lost and re-enable hand movement once tracking is restored.

Valid Touch

A touch is considered valid if it meets the following conditions:

1. Touched by the palm.

2. Contact occurs at a specific angle.

3. Within the required distance.


These conditions are determined by analyzing the hand's forward vector and the normal vector at the point of contact with the placeholder.



— PROJECT NAME

Monkeying Around


— ROLE

Programmer


— DATE

Sep, 2024

My Contribution


Developed Climbing Mechanism

a. Touch angle detection

b. Hand-tracking for camera movement

c. Attachment/detachment rules.


Developed the game flow

a. Scene transitions

b. Event-based object communication

c. Game state logic.


Developed Visual Effects

a. Designed visual cues for climbing status.