Going Up! – Game Jam Project

Going Up! – Game Jam Project

A first-person 3D platformer about escaping a perfect apartment and climbing your way through dangerous heights. Built in 7 days with one 3D artist, focusing on tight movement, clean architecture, and responsive physics.

A first-person 3D platformer about escaping a perfect apartment and climbing your way through dangerous heights. Built in 7 days with one 3D artist, focusing on tight movement, clean architecture, and responsive physics.

Category

Category

Unity · C# · Game Design

Unity · C# · Game Design

Role

Role

Game Developer

Game Developer

Studio

Studio

2 Person Team

2 Person Team

Duration

Duration

1 Week

1 Week

The Challenge

Build a fast, responsive first-person climbing/platforming game in just 7 days. Movement had to feel tight and rewarding, physics needed to be polished, and the climbing flow had to maintain tension between safety and vertical danger. The game required strong feel-first programming under a very limited timeframe.

What I Built

I developed all core systems for the game’s movement and interaction flow. This included a custom Rigidbody-based controller with air control, drag tuning, and jump buffering to achieve responsive platforming feel. I created first-person camera controls with clamped vertical rotation and separated movement orientation for smoother input. I implemented accurate ground detection using raycasts, a unified UI interaction system using interfaces and raycasts, and optimized overall performance by caching references, minimizing physics calls, and keeping systems clean and modular for rapid iteration during the jam.

Technical Contributions

1. Physics-Based Movement System

Problem:

Achieve responsive first-person platforming controls that allow precision jumps while still using realistic physics.

Solution:

Built a full custom movement controller using Unity’s Rigidbody system with air control, drag handling, speed limiting, and ground detection.

// Input + jump
if (Input.GetKey(jumpKey) && readyToJump && grounded) {
    readyToJump = false;
    Jump();
    Invoke(nameof(ResetJump), jumpCooldown);
}

// Movement forces
moveDirection = orientation.forward * verticalInput + orientation.right * horizontalInput;
rb.AddForce(moveDirection.normalized * moveSpeed * (grounded ? 10f : 10f * airMultiplier));

// Speed cap
Vector3 flatVel = new(rb.linearVelocity.x, 0f, rb.linearVelocity.z);
if (flatVel.magnitude > moveSpeed)
    rb.linearVelocity = new(flatVel.normalized.x * moveSpeed, rb.linearVelocity.y, flatVel.normalized.z * moveSpeed

Result:

Tight, smooth platforming with predictable momentum, strong ground control, limited air influence, and clean speed management.

2. Precision Camera Control System

Problem:

Create smooth first-person camera movement that works for platforming and avoids disorientation during fast motion.

Solution:

Implemented a mouse-look system with rotation clamping, separate orientation transform for movement, and proper cursor locking.

float mouseX = Input.GetAxisRaw("Mouse X") * camSensX * Time.deltaTime;
float mouseY = Input.GetAxisRaw("Mouse Y") * camSensY * Time.deltaTime;

yRotation += mouseX;
xRotation = Mathf.Clamp(xRotation - mouseY, -90f, 90f);

transform.rotation = Quaternion.Euler(xRotation, yRotation, 0);
orientation.rotation = Quaternion.Euler(0, yRotation, 0

Result:

Smooth, responsive viewing control that enables precise landings and fast maneuvers without motion sickness.

3. Ground Detection System

Problem:

Prevent unreliable jumping behavior caused by uneven terrain, platform edges, and inconsistent collision detection.

Solution:

Implemented raycast-based ground check with correct height offset, layer masking, and dynamic drag switching.

grounded = Physics.Raycast(
    transform.position,
    Vector3.down,
    playerHeight * 0.5f + 0.2f,
    whatIsGround
);

rb.linearDamping = grounded ? groundDrag : 0f

Result:

Consistent, stable ground detection across all geometry, preventing false airborne states and double-jump exploits.

Results & Impact

  • Built a feature-complete 3D platformer prototype in just one week.

  • Delivered responsive, polished first-person controls that players highlighted as a strong point of the game.

  • Structured all systems with clean, modular architecture for easy debugging, testing, and future reuse.

  • Maintained stable performance throughout the full vertical level with no physics hitches or collision bugs.

Create a free website with Framer, the website builder loved by startups, designers and agencies.