OneLiteFeatherNET / OneLiteFeatherNET/Voyager
Replay system: record and replay race flights
Open
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
RecordingComponentandReplaySysteminservermodule - Serialization: use Gson or a compact binary format
- Ghost entity: Minestom
EntityCreaturefollowing pre-computed positions - Replay storage:
ReplayEntityinshared/databaseor flat file underreplays/
Dependencies
- "Spectator mode" (Beta) provides the ghost-viewing infrastructure
Estimate
XL
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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