bettola/srv/game/game.h
Ritchie Cunningham a2a8b052af feat(network): hybrid TCP/UDP networking model.
Moving from a TCP only model to a hybrid TCP/UDP system. This is
required to achieve a responsive, real-time multiplayer experience.
2025-09-14 00:52:18 +01:00

25 lines
710 B
C++

#pragma once
#include <netinet/in.h>
#include <vector>
#include "bettola/network/tcpsocket.h"
#include "bettola/network/udpsocket.h"
#include "network/message.h"
#include "player.h"
class Game {
public:
Player* add_player(BettolaLib::Network::TCPSocket* socket);
void remove_player(unsigned int player_id);
void handle_udp_message(const BettolaLib::Network::MessageHeader& header,
const char* buffer, const sockaddr_in& from_addr);
void broadcast_game_state(BettolaLib::Network::UDPSocket& udp_socket);
Player* get_player_by_socket(const BettolaLib::Network::TCPSocket* socket);
Player* get_player_by_id(unsigned int id);
private:
std::vector<Player*> _players;
};