OneLiteFeatherNET / OneLiteFeatherNET/Voyager

feat(practice): Practice Mode session — no competitive scoring, repeatable skill drills

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

Nobody has claimed this yet.

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

Description

Description

Practice Mode (formerly Tutorial Mode) is a permanent, repeatable content surface — not a one-time onboarding tunnel. Players can replay any map to improve their medal. This epic establishes the Practice Mode session model on top of the GameMode infrastructure.

Acceptance Criteria

  • `GameMode.PRACTICE` sessions suppress position-based bonuses and competitive ranking
  • The end screen shows a per-map medal result (Bronze / Silver / Gold / Diamond) instead of a podium
  • Medal tiers use the same time-bracket thresholds as Race Mode (configurable, same defaults)
  • Practice results are excluded from competitive leaderboards (filtered by `gameMode` in queries)
  • Practice Mode supports single-player (minimum player count = 1, no countdown gate)
  • Players can replay the same map/cup unlimited times; each attempt is recorded separately
  • `GameResultPersistenceService` stores Practice results with `gameMode = PRACTICE`
  • Unit tests cover medal assignment at each bracket boundary
  • Unit tests verify Practice results are excluded from leaderboard queries

Technical Details

  • Medal enum: `BRONZE`, `SILVER`, `GOLD`, `DIAMOND` — follows Enum DSL pattern
  • End screen is a separate `PracticeEndPhase` (not shared with Race end screen)
  • No DB schema changes beyond what Epic #167 introduces (`gameMode` column suffices)
  • Leaderboard queries add `WHERE game_mode = 'RACE'` filter — no separate table

Dependencies

  • #167 (GameMode enum and mode-aware session/orchestrator)

Estimate

L

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 with the GameMode infrastructure and the mode-aware session/orchestrator from dependency #167, then trace GameResultPersistenceService and the leaderboard queries. Review the separate PracticeEndPhase design and existing Race Mode medal thresholds; done means Practice sessions support repeatable single-player attempts, persist PRACTICE results, show medals, and are excluded from competitive rankings with boundary and query tests.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.