GameServer SDK

View Source

SDK for GameServer hooks development. This package provides type specs, documentation, and IDE autocomplete for GameServer modules without requiring the full server.

Installation

Add game_server_sdk to your list of dependencies in mix.exs:

def deps do
  [
    {:game_server_sdk, "~> 0.1.0"}
  ]
end

Usage

This SDK provides stub modules that match the GameServer API:

Implementing Hooks

Create your hooks module implementing the GameServer.Hooks behaviour:

defmodule MyGame.Hooks do
  @behaviour GameServer.Hooks

  @impl true
  def after_register(user) do
    # Custom logic after user registration
    user
  end

  @impl true
  def rpc("give_coins", %{"amount" => amount}, caller) do
    # Handle RPC from game client
    {:ok, %{coins: amount}}
  end

  # ... implement other callbacks
end

Module APIs

The SDK modules provide the same API as the real GameServer:

# Get user by ID (returns nil if not found)
user = GameServer.Accounts.get_user(user_id)

# Update user metadata
{:ok, user} = GameServer.Accounts.update_user(user, %{metadata: %{level: 5}})

# Submit leaderboard score
{:ok, record} = GameServer.Leaderboards.submit_score(leaderboard_id, user_id, 1000)

# Get lobby members
members = GameServer.Lobbies.get_lobby_members(lobby)

Note

This SDK only provides type specifications and documentation for IDE support. The actual implementations run on the GameServer - these stubs will raise RuntimeError if called directly.