How mrkenny44/brightside works
Brightside is a turn-based ship-racing game with desktop and console interfaces, local and networked matches, configurable computer players, save/load, and a bot-simulation mode. The main play path runs from a player through the UI and MatchController into match rules and board state; bots use a separate move-selection worker before their moves are applied. The README is empty, so product capabilities and wiring are inferred from the tree and sampled source; unsampled subsystems are represented at supported directory paths, with uncertain links omitted.
Main entry points: MatchController.java Match controller · Match.java Match rules · WindowManager.java Window manager · gui Desktop UI
Components 19
Player interfaces
- Window manager
src/main/java/org/gui/windowing/WindowManager.java - Desktop UI
src/main/java/org/gui - Console UI
src/main/java/org/cli/ConsoleUI.java
Match control
- Match controller
src/main/java/org/controller/MatchController.java - Bot worker
src/main/java/org/controller/BotWorker.java
Game domain
- Match setup
src/main/java/org/model/match/Setup.java - Match rules
src/main/java/org/model/match/Match.java - Board state
src/main/java/org/model/board/GameBoard.java - Move and card rules
src/main/java/org/model/moves - Human and bot players
src/main/java/org/model/player - Bot strategy search
src/main/java/org/model/player/strategy
Online play
- Online lobby
src/main/java/org/online - Remote match proxy
src/main/java/org/online/ClientMatch.java - Network transport
src/main/java/org/online/rawnetwork
Persistence and analysis
- Save and load
src/main/java/org/saveload - Serialization and validation
src/main/java/org/de_serialization - Match statistics
src/main/java/org/model/board/stats - Bot simulation
src/main/java/org/simulation
Other components
- Player
Connections 30
- Player → Window manager: uses
- Player → Console UI: plays
- Window manager → Desktop UI: displays
- Desktop UI → Match controller: submits actions
- Console UI → Match controller: submits actions
- Desktop UI → Match setup: configures match
- Console UI → Match setup: creates match
- Window manager → Match controller: starts or loads
- Match controller → Match rules: applies actions
- Match controller → Bot worker: schedules bots
- Bot worker → Match rules: requests bot moves
- Match rules → Human and bot players: advances turns
- Human and bot players → Bot strategy search: selects bot moves
- Bot strategy search → Move and card rules: evaluates moves
- Match rules → Move and card rules: executes moves
- Match rules → Board state: updates state
- Match setup → Match rules: builds
- Desktop UI → Online lobby: joins lobby
- Online lobby → Network transport: exchanges messages
- Online lobby → Remote match proxy: starts remote match
- Remote match proxy → Network transport: sends commands
- Remote match proxy → Serialization and validation: encodes state
- Remote match proxy → Match rules: reads replicated state
- Match controller → Save and load: saves match
- Window manager → Save and load: loads match
- Save and load → Serialization and validation: serializes state
- Board state → Match statistics: records events
- Bot worker → Match statistics: records bot metrics
- Bot simulation → Match controller: runs matches
- Bot simulation → Match statistics: collects results