Appearance
Lobby Client - Test & Compilation
Corrections Appliquées
Toutes les erreurs ont été corrigées :
- LoginPackets.hpp : Header guards corrigés (
LOGINPACKETS_HPP_) - ClientHub : Utilise
LoginPackets.hppavec 3 champs (username, password, game) - LobbyState : Méthode
getRoomToJoin()ajoutée - IGraphicsBackend : API corrigée avec font management
Compilation Rapide
Option 1: Script automatique
bash
./compile_lobby_client.sh
./compile_lobby_client.sh
1
Option 2: Commande manuelle
bash
g++ -std=c++17 -I. -o lobby_client_test \
Networking/client/main_lobby_test.cpp \
Networking/client/ClientHub.cpp \
Networking/PacketsManager.cpp \
Networking/compress.cpp \
Networking/encrypt.cpp \
RType-Game/Packets/LobbyPacket.cpp \
RType-Game/Packets/AckPacket.cpp \
RType-Game/Packets/SpawnPacket.cpp \
RType-Game/Packets/DestroyPacket.cpp \
RType-Game/Packets/InputPacket.cpp \
RType-Game/Packets/GameStatePacket.cpp \
-lboost_system -pthread -llz4
g++ -std=c++17 -I. -o lobby_client_test \
Networking/client/main_lobby_test.cpp \
Networking/client/ClientHub.cpp \
Networking/PacketsManager.cpp \
Networking/compress.cpp \
Networking/encrypt.cpp \
RType-Game/Packets/LobbyPacket.cpp \
RType-Game/Packets/AckPacket.cpp \
RType-Game/Packets/SpawnPacket.cpp \
RType-Game/Packets/DestroyPacket.cpp \
RType-Game/Packets/InputPacket.cpp \
RType-Game/Packets/GameStatePacket.cpp \
-lboost_system -pthread -llz4
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Test
Terminal 1: Serveur
bash
./r-type_server
./r-type_server
1
Terminal 2: Client
bash
./lobby_client_test
./lobby_client_test
1
Fichiers Créés
Networking/client/ClientHub.hpp/cpp(250 lignes)RType-Game/Packets/LobbyPacket.hpp/cpp(450 lignes)RType-Game/States/LobbyState.hpp/cpp(300 lignes)Networking/client/main_lobby_test.cpp(test simple)compile_lobby_client.sh(script de compilation)
Architecture
ClientHub (TCP 4242)
├─ Login avec username, password, game
├─ RequestRoomList
├─ CreateRoom
└─ JoinRoom
└─ Callbacks automatiques:
• LoginCallback
• RoomListCallback
• RoomCreatedCallback
• RoomJoinedCallback
• ErrorCallback
ClientHub (TCP 4242)
├─ Login avec username, password, game
├─ RequestRoomList
├─ CreateRoom
└─ JoinRoom
└─ Callbacks automatiques:
• LoginCallback
• RoomListCallback
• RoomCreatedCallback
• RoomJoinedCallback
• ErrorCallback
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
📊 Impact Track #2
Avant: 58/100 (pas de lobby UI)
Après: 66/100 (lobby complet)
Gain: +8 points
🔧 Dépendances Système
bash
sudo apt-get install -y \
libboost-all-dev \
liblz4-dev
sudo apt-get install -y \
libboost-all-dev \
liblz4-dev
1
2
3
2
3
📝 Notes Importantes
- LoginPacket utilise 3 champs (username, password, game)
- RoomMangager conserve le typo existant
- IState (pas IGameState) pour les game states
- PacketsManager utilise le factory pattern sans PacketType explicite
- LZ4 requis pour compression
🎯 Prochaines Étapes
Pour un client complet avec UI graphique :
- Intégrer
LobbyStatedans unGameClient - Ajouter backend graphique (SFML/SDL)
- Gérer input clavier pour navigation
- Transition vers
ClientRoom(UDP) après join