Multiplayer

Choose by state, not genre.

Inspect the game first. Do not infer player count, teams, or simulation type from the name. If a material field is ambiguous, stop and ask.

Decision

  1. Discrete actions → createSynchronizedRoom()
  2. A continuous host tick → createRealtimeRoom()
  3. Do not pick realtime because the game animates at 60 FPS.
  4. Do not run both room types for the same mode.
  5. Native clients cannot join realtime rooms. Cross-client modes use synchronized rooms.

What every mode still needs

  • Create with createRoom() / room.create()
  • Join with joinRoom({ inviteCode }) / room.join({ inviteCode })
  • A 6-digit invite code issued by Loki (16-character hex codes from 0.2.0 still join)
  • Loading, waiting, reconnecting, and error UI
  • leave() only from an explicit Leave / End Game control

Fine-tuning after install means confirming those fields for this title, not copying a chess lobby onto a racer.

What Loki does not supply

Physics, collision, rendering, interpolation math you did not provide, or competitive integrity. Overlay UI does not start a match.