How fyberov-dev/lobby-system-2 works
This is a LibGDX multiplayer lobby client with a Kryonet server. The main workflow registers a player, lists available lobbies, creates or joins a lobby, and leaves it; server state changes are sent back to update client screens. The README describes registration and lobby flows, while sampled source confirms the server dispatch, state changes, and client response handling. Some screen and button-listener implementations were not sampled, so their specific request wiring is represented only where documentation supports it.
Main entry points: ClientLauncher.java Client transport · ServerLauncher.java Server transport · Main.java Game state · Game.java Lobby operations
Components 17
Game client
- Game state
core/src/main/java/ee/taltech/game/Main.java - Registration screen
core/src/main/java/ee/taltech/game/screen/MainScreen.java - Lobby list screen
core/src/main/java/ee/taltech/game/screen/LobbiesListScreen.java - Lobby screen
core/src/main/java/ee/taltech/game/screen/LobbyScreen.java - Lobby actions
core/src/main/java/ee/taltech/game/listener/button - Response handler
core/src/main/java/ee/taltech/game/listener/ClientListener.java - Screen dispatch
core/src/main/java/ee/taltech/game/runnable/SetScreenRunnable.java - Client transport
core/src/main/java/ee/taltech/game/network/ClientLauncher.java
Lobby server
- Server transport
server/src/main/java/ee/taltech/game/server/ServerLauncher.java - Request handler
server/src/main/java/ee/taltech/game/server/listener/ServerListener.java - Lobby operations
server/src/main/java/ee/taltech/game/server/system/Game.java
Shared protocol
- Lobby model
shared/src/main/java/ee/taltech/game/shared/lobby/Lobby.java - Player model
shared/src/main/java/ee/taltech/game/shared/player/Player.java - Network packets
shared/src/main/java/ee/taltech/game/shared/packet - Kryo registration
shared/src/main/java/ee/taltech/game/shared/util/KryoHelper.java
Runtime entrypoints
- Desktop launcher
lwjgl3/src/main/java/ee/taltech/game/lwjgl3/Lwjgl3Launcher.java
Other components
- Player
Connections 21
- Player → Registration screen: registers
- Game state → Registration screen: shows
- Registration screen → Lobby actions: starts registration
- Lobby list screen → Lobby actions: offers lobby actions
- Lobby screen → Lobby actions: offers leave
- Lobby actions → Client transport: sends requests
- Client transport → Server transport: exchanges packets
- Server transport → Request handler: dispatches requests
- Request handler → Lobby operations: invokes operations
- Lobby operations → Lobby model: updates lobby
- Lobby operations → Player model: creates players
- Lobby operations → Server transport: sends responses
- Client transport → Response handler: delivers responses
- Response handler → Game state: updates game state
- Game state → Screen dispatch: schedules screen changes
- Screen dispatch → Game state: sets screen
- Client transport → Kryo registration: registers types
- Server transport → Kryo registration: registers types
- Client transport → Network packets: transfers
- Server transport → Network packets: transfers
- Desktop launcher → Game state: launches