core.multiplayer package

Submodules

core.multiplayer.protocol module

Multiplayer protocol definitions. Defines message types and serialization for network communication.

class core.multiplayer.protocol.MessageType[source]

Bases: object

CUSTOM = 'custom'
DESPAWN_ENTITY = 'despawn_entity'
DISCONNECT = 'disconnect'
GAME_START = 'game_start'
JOIN_ACCEPTED = 'join_accepted'
JOIN_REJECTED = 'join_rejected'
JOIN_REQUEST = 'join_request'
LOBBY_STATE = 'lobby_state'
OWNERSHIP_TRANSFER = 'ownership_transfer'
PING = 'ping'
PLAYER_JOINED = 'player_joined'
PLAYER_LEFT = 'player_left'
PLAYER_READY = 'player_ready'
PONG = 'pong'
RPC_CALL = 'rpc_call'
SPAWN_ENTITY = 'spawn_entity'
STATE_SYNC = 'state_sync'
STATE_UPDATE = 'state_update'
core.multiplayer.protocol.decode_message(raw: str) dict | None[source]

Decode a JSON string to a multiplayer message dict.

core.multiplayer.protocol.encode_message(msg_type: str, data: dict = None, sender_id: str = '') str[source]

Encode a multiplayer message to JSON string.

core.multiplayer.room module

Room and Player management for multiplayer sessions.

class core.multiplayer.room.Player(player_id: str = '', name: str = 'Player', client_id: int = 0, is_host: bool = False, is_local: bool = False)[source]

Bases: object

Represents a connected player in a multiplayer session.

client_id
custom_data: dict
static from_dict(data: dict) Player[source]
id
is_host
is_local
is_ready
latency_ms
name
to_dict() dict[source]
class core.multiplayer.room.Room(room_name: str = 'Room', max_players: int = 8)[source]

Bases: object

Manages a multiplayer room/lobby with player tracking.

add_player(player: Player) bool[source]

Add a player to the room. Returns False if full.

all_ready() bool[source]

Return True if all players are marked as ready.

static from_dict(data: dict) Room[source]
get_host() Player | None[source]
get_player(player_id: str) Player | None[source]
get_player_by_client(client_id: int) Player | None[source]
get_player_count() int[source]
is_full() bool[source]
players: dict[str, Player]
remove_player(player_id: str) Player | None[source]

Remove a player by ID. Returns the removed Player or None.

to_dict() dict[source]

Module contents