How merrick-shen/horyx-games works
Horyx Games is a cross-platform Flutter app that brings together five local games, several LAN multiplayer games, settings and saved-game management. The main user workflow is to browse the game catalog, open a game, configure or resume it, and play; multiplayer games additionally join or host a room and exchange game state over TCP. The README documents the feature boundaries and shared services; sampled native files mainly show platform launch plumbing, so detailed Dart call ownership is not verified here.
Main entry points: home_page.dart Game catalog UI · archive_storage.dart Game archives · main.dart App bootstrap · settings Settings pages
Components 25
App shell
- App bootstrap
lib/main.dart - Navigation shell
lib/app/app_shell.dart - Game registry
lib/app/game_registry.dart - Game catalog UI
lib/app/pages/home_page.dart - Archive settings
lib/app/pages/settings/archive_page.dart - Settings pages
lib/app/pages/settings
Game features
- Chinese chess
lib/games/chess - Gomoku
lib/games/gomoku - Tank battle
lib/games/tank - Tank engine
lib/games/tank/engine/tank_maze_game.dart - Word PK
lib/games/word_pk - Scoreboard
lib/games/scoreboard
LAN multiplayer
- Room pages
lib/shared/pages - Online controllers
lib/shared/network/online_game_controller.dart - Board-game controller
lib/shared/network/board_game_online_controller.dart - TCP room transport
lib/shared/network/room_client.dart - QR scan page
lib/shared/pages/qr_scan_page.dart
Shared services
- Game archives
lib/shared/storage/archive_storage.dart - Profile service
lib/shared/profile/profile_controller.dart - Theme service
lib/shared/theme/theme_controller.dart
Update service
- Update checker
lib/shared/update/update_service.dart
Other components
- Player
- LAN peer
- Local preferences
- GitHub Releases
Connections 39
- Player → App bootstrap: launches
- App bootstrap → Navigation shell: starts
- Player → Game catalog UI: browses
- Navigation shell → Game catalog UI: shows
- Game catalog UI → Game registry: lists games
- Game catalog UI → Chinese chess: opens
- Game catalog UI → Gomoku: opens
- Game catalog UI → Tank battle: opens
- Game catalog UI → Word PK: opens
- Game catalog UI → Scoreboard: opens
- Chinese chess → Game archives: saves games
- Gomoku → Game archives: saves games
- Tank battle → Game archives: saves games
- Word PK → Game archives: saves games
- Scoreboard → Game archives: saves games
- Tank battle → Tank engine: runs battle
- Chinese chess → Board-game controller: uses multiplayer
- Gomoku → Board-game controller: uses multiplayer
- Word PK → Online controllers: uses multiplayer
- Tank battle → Online controllers: uses multiplayer
- Room pages → TCP room transport: hosts or joins
- Online controllers → TCP room transport: exchanges state
- Board-game controller → Online controllers: extends
- TCP room transport → LAN peer: sends TCP
- LAN peer → TCP room transport: sends TCP
- Player → Room pages: joins room
- Player → QR scan page: scans room
- QR scan page → Room pages: provides room code
- Player → Archive settings: manages saves
- Archive settings → Game archives: reads or deletes
- Player → Settings pages: configures app
- App bootstrap → Profile service: restores username
- App bootstrap → Theme service: restores theme
- Settings pages → Profile service: edits profile
- Settings pages → Theme service: changes theme
- Profile service → Local preferences: persists profile
- Theme service → Local preferences: persists theme
- Settings pages → Update checker: checks version
- Update checker → GitHub Releases: queries releases