← Connection and sync — never pretend to be online · all tasks
Local play — your home when there is no realm
connection-and-sync/006 · created 2026-08-18 · updated 2026-08-19 · blocked by connection-and-sync/005
What to do
game/world/local_authority.gd: the simulation half ofarea_server.gd— grid, ground, portals, entities,_apply_intents, movement budget,_area_payload,_serialize_state— driven in-process; the one outbound seam_send_to_peerbecomesdeliver(type, payload);area_server.gdkeeps the transport and builds on it.- Client:
_send_game/_poll_gamebehind aGameTransport(the WebSocket implementation, and aLocalTransportthat calls the authority synchronously);_handle_game_messageunchanged;_ready()’s “no session = fail” gate gains an explicitLOCALmode. - Behaviour: at Start with the director OFFLINE (or “Play offline”), the home (
either) loads locally fromuser://areas/home.json(written from the last onlinehello_ack; else the default 16×16 grass home). Walking works; doors tomultiplayerAreas bumpOFFLINE; an “Offline — your home only” banner. When the realm returns, “Go online” re-enters the server’s home; the local walk-only state is discarded (decision, 2026-08-18).single_playerAreas use the same machinery once one is authored.
Definition of done
The local authority passes the server’s movement / portal / budget checks in test_runner.gd;
a headless client run with --offline reaches a home with no director and its door bumps; the
web and Android builds start offline in airplane mode.
Where the work lands
land-of-lor/game/world/.
View source in repository · also available as raw markdown.