Repository navigation
core v0.5.0
Pre-game lobby, co-op settings panel, HUD drawing for games, clean exit (new features, so a minor release). No
breaking changes: game repos update without code changes; every new interface call is optional. The wire protocol
changes (kProtocolVersion 7, the lobby messages), so players need the same build anyway.
- Lobby (
net/lobby.h, docs/protocol.md "Lobby"): guests ready up, the host picks a mode from the game's list and
starts it for everyone; a late joiner sees the game in progress and can follow it. The dll attaches it to every
session and writesmc_state/mc_modeinto the Steam lobby data (SteamLobby::SetData). New testnet_lobby. - Co-op UI: a LOBBY panel (players with character and READY / NOT READY / HOST, the game's character rows, READY or
MODE + START, JOIN GAME while the host plays, INVITE FRIENDS, SETTINGS, LEAVE); it opens by itself after joining a
host while not in the world (onceGameModule::LobbyCanOpen()), closes on every screen when the game starts and
when the session ends. A CO-OP SETTINGS panel (NAME with a text box, DEBUG OVERLAY, the game's rows; saved with
Config::Set), also reachable from the pause CO-OP panel. NewMenuCommand::Lobby/Settings. - GameModule (all optional):
SettingsOptions/SettingsOptionStep,LobbyModes/StartMode,InWorld/
CurrentMode/LobbyCanOpen,PlayerCharacter,DrawHud(game geometry under the panels, e.g. name tags). - Clean exit:
ExitProcessandTerminateProcess(self)are hooked; the session is left cleanly before the process
ends, so the others see "host left" / " left the game" at once instead of after the 10 s timeout. Banners:
HOST LEFT for guests, " lost the connection" for a timeout. UDP sends its Disconnect 4 times (was 2). - Overlay: holds no backbuffer reference between frames; releases everything on device removed/reset and at exit;
logs the Present / ResizeBuffers threads.Mod::DebugOverlay/SetDebugOverlay,Coop::SetName.