How kmanojkamath/eka_multiplayer_app works
eka is a Flutter multiplayer UNO-style game. Players sign in, create or join a room, wait for the host to start, then take synchronized turns until a player wins and sees the result screen. The README documents host/player game logic, Firestore room synchronization, action-card rules, wild-color selection, animated play, and custom-drawn cards. Dart implementation files were not excerpted, so edges reflect documented workflow and capabilities rather than verified call sites.
Main entry points: host_game_play.dart Host rules · login_screen.dart Sign-in flow · home_screen.dart Home screen · game_initialiser.dart Match setup
Components 19
Identity and lobby
- Sign-in flow
lib/screens/home_screen/login_screen.dart - Auth routing
lib/screens/home_screen/auth_wrapper.dart - Home screen
lib/screens/home_screen/home_screen.dart - Create room
lib/screens/game_sequence_screens/create_room_screen.dart - Join room
lib/screens/game_sequence_screens/join_room_screen.dart
Matchplay logic
- Match setup
lib/screens/game_sequence_screens/game_initialiser.dart - Host rules
lib/game/host_logic/host_game_play.dart - Player turn logic
lib/game/player_logic/player_game_play.dart - Card and move models
lib/game/models/card_logic.dart - Turn logs
lib/game/models/game_log.dart
Game presentation
- Game screen
lib/screens/game_sequence_screens/game_screen.dart - Result screen
lib/screens/game_sequence_screens/result_screen.dart - Card layers
lib/layers/cards_layers/player_cards_layer.dart - Card rendering
lib/widgets/card/card-ui/card_widget.dart - Card animation
lib/animations/card_animations/card_animations.dart
External services
- Firebase Auth
- Cloud Firestore
- Google Sign-In
lib/google_sign_in.dart
Other components
- Player
Connections 25
- Player → Sign-in flow: signs in
README.md - Sign-in flow → Firebase Auth: authenticates with
README.md - Sign-in flow → Google Sign-In: offers Google sign-in
README.md - Sign-in flow → Auth routing: continues through
- Auth routing → Home screen: routes to
- Player → Home screen: chooses room flow
README.md - Home screen → Create room: creates room
README.md - Home screen → Join room: joins room
README.md - Create room → Cloud Firestore: synchronizes room
README.md - Join room → Cloud Firestore: synchronizes room
README.md - Create room → Match setup: starts match flow
- Join room → Match setup: enters match flow
- Match setup → Host rules: sets up turns
- Match setup → Cloud Firestore: synchronizes match
README.md - Host rules → Card and move models: enforces card rules
README.md - Player turn logic → Card and move models: processes turns
README.md - Host rules → Turn logs: tracks turns
README.md - Player turn logic → Turn logs: processes persisted logs
README.md - Turn logs → Cloud Firestore: persists room state
README.md - Game screen → Player turn logic: presents turn play
- Game screen → Host rules: presents host play
- Game screen → Card layers: shows player hand
- Card layers → Card rendering: renders cards
- Card layers → Card animation: animates card play
README.md - Host rules → Result screen: reports win
README.md