OneLiteFeatherNET / OneLiteFeatherNET/Voyager
feat(practice): Practice Mode session — no competitive scoring, repeatable skill drills
Nobody has claimed this yet.
- 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
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 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