02 / Time

Time Tag

Prototype

A tag game with obstacle-aware dashes, movement rewind, round rewards, and saved cosmetic collections.

  • Dash & rewind
  • Currencies & rewards
  • Leaderboards
  • Shops & monetization
  • Saved progress
Independently DevelopedImplementation reviewed in codeRecorded in Roblox Studio
STUDIO DEMONSTRATION
Hold to preview a dash route, release to fly it. The route is solved around gaps and ledges.

I made these hobby projects independently, including the builds, UI, gameplay, and supporting code. Libraries and adapted techniques are credited where relevant.

ABOUT THE GAME
ILLUSTRATION · NOT GAMEPLAY

Dash to a target or rewind your movement

The game plans a route for the seeker’s dash. Rewind follows a recorded movement sequence, with a ghost and connecting line showing the previous positions.

How a dash route is planned and checked

The solver checks the level for places the character can stand, then searches walk and jump connections. The movement plays on the player’s computer, with a final position check on the server.

  1. 01 / Find possible standing positionsSample the level and check space above the character.
  2. 02 / Choose a routeSearch walk, jump, and higher-cost super-jump connections.
  3. 03 / Play and check the movementRun the movement locally, then check its endpoint on the server.

A simplified explanation based on the project code.

Movement abilities backed by rewards, shops, and saved progress.

Dash and rewind

Dash around obstacles to a target, or retrace earlier movement with a visible ghost and trail.

Round rewards and leaderboards

Round results rank players and award coins, keys, and XP.

Shops and monetization

The prototype includes currency purchases, purchase-receipt handling, and a rotating trail-crate shop.

Cosmetic inventory and saved progress

Collect and equip trails, with currency, inventory, and progress stored in a player profile.

MORE FROM THE GAME

Short gameplay demonstrations

STUDIO DEMONSTRATION
A runner rewinds along their recent path back to their echo.
SCREENSHOT FROM THE GAME
The end-of-round results board with the coin and key reward.
The end-of-round results board with the coin and key reward.
SCREENSHOT FROM THE GAME
Coin bundles sold for Robux through Roblox's own checkout.
Coin bundles sold for Robux through Roblox's own checkout.

Have a feature in mind?

Tell me what you want players to be able to do. I can discuss the implementation and answer detailed questions about this project.

Discuss your project ↗
How it works — optional technical details

01 / IMPLEMENTATION

Finding a route through the level

The game checks obstacles and landing space when planning a dash.

Reviewed in project code
Technical details

ParkourSolver samples downward hits along a corridor and filters for walkable normals. A five-point upward ray fan checks headroom without treating the empty space above a wedge as an obstruction. Walk edges use passage sweeps. Natural jumps solve vertical projectile motion and test the required horizontal speed, then sweep along the arc. The A* search yields when its configured time budget is used.

Limitations

Super-jump edges carry an inflated search cost to favor natural routes, so this is not a claim of minimum real travel time. The search uses a linear open list. The arena itself is authored, not procedurally generated.

02 / IMPLEMENTATION

Checking where a dash or rewind ends

The player’s computer plays the movement, then the server checks the final position.

Reviewed in project code
Technical details

Both abilities follow request → server approval → local playback → completion-position report → endpoint validation/reconciliation. Rewind is checked against independent server history; dash uses geometric bounds and landing-clearance checks. Observers receive server-derived replica state with frame-rate-independent smoothing.

01 / Owner client

Request approval, play the movement locally, then report the final position.

02 / Server

Check the endpoint against history or geometric bounds, then accept or correct it.

03 / Observer clients

Receive and smooth the server’s replica state.

Explanatory diagram based on the source audit. Endpoint checks do not re-simulate every movement step.
Limitations

The server checks where a dash or rewind ends, not every step along the way. This is not rollback netcode or input-replay prediction.

03 / IMPLEMENTATION

Saved profiles and prototype trade handling

Currency and inventory use a shared saved profile; the prototype also contains trade coordination.

Reviewed in project code
Technical details

SessionLock stores ownership in the protected DataStore record and uses UpdateAsync to reject an active competing owner, with stale takeover rules. A trade takes two profile/resource types for each of two players in deterministic order, revalidates and snapshots state, then applies the swap with failure and rollback branches.

Limitations

This is prototype architecture. Trading is not a released feature, and saving is not claimed to survive every possible failure.

NEXT PROJECT / Force

ANTS!