OneLiteFeatherNET / OneLiteFeatherNET/Voyager

Spectator mode: watch ongoing race after finishing or DNF

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

Nobody has claimed this yet.

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

Description

Description

Players who finish a race early or disconnect/did-not-finish (DNF) currently have nothing to do while waiting for others to complete. A spectator mode lets them watch the remaining race from a free-camera or follow-player perspective.

Acceptance Criteria

  • After crossing the finish line, player is automatically transitioned to spectator mode
  • Spectator can cycle through active racers (next/prev player keybind via interaction)
  • Spectator HUD shows: currently watched player name, their score, position in standings
  • Spectators are invisible to racing players and cannot interfere with collision detection
  • Spectator mode ends and player returns to lobby when the race ends
  • Late-join players (joining after race has started) also enter spectator mode directly
  • Unit test: spectator entity has no CollisionComponent, no BoostComponent

Technical Details

  • New SpectatorComponent marker component on the player ECS entity
  • CollisionSystem must skip entities with SpectatorComponent
  • Use Minestom spectator gamemode and camera API

Dependencies

  • Live standings scoreboard (players need to be able to see who they're spectating)

Estimate

M

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 tracing the player ECS entity and CollisionSystem, then review Minestom’s spectator gamemode and camera API. Add the SpectatorComponent and connect race-finish, DNF, and late-join transitions, while using the live standings scoreboard for watched-player details. Done means the listed spectator behavior works and the unit test confirms spectator entities lack CollisionComponent and BoostComponent.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.