OneLiteFeatherNET / OneLiteFeatherNET/Voyager

Replay system: record and replay race flights

Open
#136 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

gameplay P2 release
Dominant language
Java
Stars
0
Forks
0
Avg merge
2d 21h
Merged PRs (30d)
12

Description

Description

A replay system lets players review their best races, share highlights, and spectate ghost runs on leaderboard positions. This is a differentiating feature for the v1.0 release.

Acceptance Criteria

  • During a race, each player's position, velocity, and rotation are sampled every tick and stored in memory
  • After the race, the recording is serialized and saved to DB (ReplayEntity) or disk
  • /replay <player> <cup> <map> command loads and plays back a recorded race as a ghost (invisible entity following the recorded path)
  • Ghost replay is visible to all spectators in the instance
  • Replay can be paused and scrubbed by the viewer
  • Recordings older than 30 days are auto-pruned (configurable)
  • Memory impact: storing 300 ticks × 20 players × ~64 bytes/sample = ~375KB — acceptable

Technical Details

  • New RecordingComponent and ReplaySystem in server module
  • Serialization: use Gson or a compact binary format
  • Ghost entity: Minestom EntityCreature following pre-computed positions
  • Replay storage: ReplayEntity in shared/database or flat file under replays/

Dependencies

  • "Spectator mode" (Beta) provides the ghost-viewing infrastructure

Estimate

XL

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the server module and the Spectator mode implementation, then inspect shared/database for the proposed ReplayEntity location. Compare the recording, storage, ghost playback, spectator visibility, scrubbing, and pruning acceptance criteria; the work is done when the full replay flow and configurable retention behavior are implemented.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, database, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.