Skip to main content

What Is SummerPlayer?

SummerPlayer is the scaffolded platform contract for a future connected-player record. The production gameplay runtime and transport are not live, so the signatures below are authoring targets rather than deployed connection behavior. See platform capability status. It is intentionally game-agnostic:
  • no required 3D movement model,
  • no required health model,
  • no required scene structure.
The contract is intended to support card games, RTS, 2D games, and 3D action games without forcing one movement model.

Core Contract (Signatures)

Identity

The future runtime contract assigns identity fields during connection:
  • peer_id: int
  • player_id: String
  • display_name: String
  • avatar: Dictionary

Custom Synced Variables

set_synced and get_synced are the core data sync mechanism. Use them for any gameplay data your clients need:
  • card hand summaries,
  • turn state,
  • unit stats,
  • score,
  • custom RPG state.
  • set_synced(key: String, value: Variant) -> void
  • get_synced(key: String) -> Variant
Keep authoritative game logic on server paths (Summer.is_server()). Clients should render synced state, not decide outcomes.

Input (Read On Server)

The future runtime contract gives a connected player an input proxy for server-side reads:
  • player.input.movement -> Vector2
  • player.input.look_direction -> Vector2
  • player.input.is_action_pressed(action: String) -> bool
  • player.input.is_action_just_pressed(action: String) -> bool

SummerCharacter3D (Optional 3D Template)

For 3D action games, use SummerCharacter3D in your player.tscn. The template contract includes:
  • CharacterBody3D movement-compatible node type,
  • health fields (health, max_health, is_alive),
  • helpers (respawn, damage, heal, kill, teleport),
  • same synced API (set_synced / get_synced).
Example:

Practical Rule

If your game needs built-in 3D character behavior, use SummerCharacter3D. If your game is not a 3D character game, extend SummerPlayer directly and sync your own state model.