GameServer SDK
View SourceSDK 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"}
]
endUsage
This SDK provides stub modules that match the GameServer API:
GameServer.Accounts- User account managementGameServer.Lobbies- Lobby managementGameServer.Leaderboards- Leaderboard operationsGameServer.Friends- Friend relationshipsGameServer.Hooks- Hook behaviour for custom game logic
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
endModule 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.