API Reference
SDK methods dan backend endpoints.
Multiplayer (static class)
using Mabar.Multiplayer.Core;
Initialize()
voidInisialisasi SDK dengan settings asset. Wajib dipanggil pertama sebelum method lain.
Multiplayer.Initialize(MultiplayerSettings settings);LoginGuest()
Task<AuthResponse>Login anonymous. Dapat playerId + token yang dipakai untuk semua operasi berikutnya.
var auth = await Multiplayer.LoginGuest();
// auth.PlayerId → "player_abc123..."
// auth.Token → session token (auto-disimpan SDK)
// auth.ExpiresAt → Unix timestamp expiryRefreshToken()
Task<AuthResponse>Perpanjang session tanpa harus login ulang. Panggil sebelum TokenExpiry tercapai.
// Panggil sebelum token expired (cek Multiplayer.TokenExpiry)
var auth = await Multiplayer.RefreshToken();CreateRoom()
Task<RoomRecord>Buat room baru. Pembuat otomatis jadi host dan giliran pertama.
var room = await Multiplayer.CreateRoom(
name: "Chess Match",
maxPlayers: 2, // 2-16
isPrivate: false
);
// room.Id → roomId untuk dibagikan ke lawan
// room.CurrentTurn → playerId yang giliran sekarangJoinRoom()
Task<RoomRecord>Join room yang sudah ada. Room private butuh invite code dari host.
// Public room:
var room = await Multiplayer.JoinRoom(roomId);
// Private room (butuh invite code):
var room = await Multiplayer.JoinRoom(roomId, inviteCode: "AB12CD");GetRoom()
Task<RoomRecord>Ambil state room terkini. Gunakan ini untuk polling — cek apakah giliran kamu atau cek state game terbaru.
// Poll state room — panggil tiap 1-2 detik untuk cek giliran lawan
var room = await Multiplayer.GetRoom(roomId);
if (room.CurrentTurn == Multiplayer.PlayerId)
Debug.Log("Giliran kamu!");SubmitTurn()
Task<RoomRecord>Submit giliran kamu. Server validasi bahwa ini memang giliranmu (403 jika bukan). State tersimpan di server dan bisa diambil semua player via GetRoom().
var state = new Dictionary<string, object> {
{ "board", "rnbqkbnr/pppp..." },
{ "lastMove", "e2-e4" },
};
// Auto-advance giliran ke player berikutnya (round-robin):
var room = await Multiplayer.SubmitTurn(roomId, state);
// Atau tentukan siapa yang giliran berikutnya:
var room = await Multiplayer.SubmitTurn(roomId, state, nextTurn: specificPlayerId);LeaveRoom()
Task<RoomRecord>Keluar dari room. Room dihapus otomatis jika player terakhir keluar.
await Multiplayer.LeaveRoom(roomId);
// Kalau kamu host, host otomatis pindah ke player berikutnya
// Kalau player terakhir, room dihapus otomatis