PR Logo

ChronoShift: Collapse

Logline

A fast-paced first-person runner where players swap between Red and Blue realities to reveal platforms, outrun a collapsing world, and make split-second navigation decisions under increasing visual pressure.

TL;DR

  • Core hook: Swap between Red and Blue realities to reveal the path forward
  • Pressure system: Fog and limited visibility intensify as the run continues
  • Replayability: Procedural layout + lane choices encourage varied routes
  • Iteration: Telemetry and survey feedback informed tutorial, balance, and pacing decisions

Project Intent

Build a high-clarity runner where difficulty comes from rapid interpretation (what exists in this dimension?) rather than memorization. The game evolved through playtests and instrumentation, using data to pinpoint friction (onboarding, fog pacing, procedural linearity) and guide targeted fixes.


What We Set Out To Solve

Early playtests surfaced issues in onboarding clarity, difficulty pacing, and procedural variety. Through telemetry, iterative systems design, and targeted mechanic adjustments, we reshaped the experience to be clearer, fairer, and more replayable.

Challenge 1: The “Tutorial Cliff”

During Alpha playtests, most players quit in under 60 seconds. To understand why, we logged death events via UnityWebRequest to Google Forms and visualized them with a small Python script. The heatmaps showed a huge spike at a single “Dash Gap” in the tutorial, where players were failing 18+ times on average before giving up.

Analytics Dashboard: User Retention

The Alpha build (Red) shows a massive death spike at the "Dash Gap". Players were rage-quitting here. The Gold build (Blue) smoothed this out.

Challenge 2: Balancing the “Fog” Mechanic

One of our core systems is a Health-Visibility link: as the “Chrono” timer runs out, fog density increases and view distance shrinks. If the fog ramped too fast, players felt cheated; too slow, and there was no tension. We used another round of analytics to tune the curve until it felt fair but still stressful in the final seconds.

Analytics Dashboard: Game Balance

We moved from a Linear Decay (Red) to an Exponential Curve (Blue). This keeps visibility high for longer, creating panic only in the final seconds.

Challenge 3: Fixing Procedural Linearity

The final hurdle was our procedural generation. Analytics showed that ~90% of players were taking the same route, meaning our “maze” behaved like a hallway. We rewrote the PlatformManager to use a simple graph-based validator that simulates player movement and only accepts chunks that offer at least three distinct, viable paths and require dimension swapping.

// Pseudo-code of the fix implemented in Week 13

public bool ValidateChunk(Chunk chunkData) {
    // 1. Get all potential paths using A*
    List<Path> viablePaths = Pathfinding.GetAllRoutes(chunkData);

    // 2. CONSTRAINT: Must have exploration variety
    if (viablePaths.Count < 3) {
        return false; // Reject chunk, regenerate
    }

    // 3. CONSTRAINT: Must utilize Dimension Swap mechanic
    bool usesRed = viablePaths.Any(p => p.dimension == Dimension.Red);
    bool usesBlue = viablePaths.Any(p => p.dimension == Dimension.Blue);

    return usesRed && usesBlue;
}

Gameplay Video


Play the Game

Launch the playable WebGL build in a new tab.

Launch WebGL Build


Team & Contributions

My Role

I contributed as the Developer / Implementor, UI Designer, Mechanic Designer, and Stenographer. My work focused on:

  • Implementing core gameplay systems including Dimension Swap, Dash, and Fog mechanics
  • Designing UI and player feedback systems for clarity and responsiveness
  • Building and analyzing telemetry pipelines to guide iteration
  • Refining tutorial flow and difficulty progression using analytics
  • Improving procedural generation to increase path diversity

Team

[Captain]
Justin Shi
Team Captain, Level Designer, Mechanic Implementer
[Gameplay]
Harshal Dave
Gameplay Developer, Analytics
[Design]
Christian Perez
Level Designer, Mechanic Designer, Gameplay Developer, Product Manager
[Systems]
Pranav Rathod
Developer / Implementor, UI Design, Mechanic Designer, Stenographer
[Testing]
Udita Mathur
Gameplay Tester, Analytics Designer / Implementer
[Level]
Zezhong Yang
Gameplay Developer, Level Designer / Implementer