Skip to content
On this page

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.hpp avec 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

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

📊 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

📝 Notes Importantes

  1. LoginPacket utilise 3 champs (username, password, game)
  2. RoomMangager conserve le typo existant
  3. IState (pas IGameState) pour les game states
  4. PacketsManager utilise le factory pattern sans PacketType explicite
  5. LZ4 requis pour compression

🎯 Prochaines Étapes

Pour un client complet avec UI graphique :

  1. Intégrer LobbyState dans un GameClient
  2. Ajouter backend graphique (SFML/SDL)
  3. Gérer input clavier pour navigation
  4. Transition vers ClientRoom (UDP) après join