Here’s a complete example of integrating the Go SDK:
main.go
package mainimport ( "log" "time" "agones.dev/agones/sdks/go")func main() { // Initialize the SDK s, err := sdk.NewSDK() if err != nil { log.Fatalf("Could not connect to SDK: %v", err) } // Mark server as ready if err := s.Ready(); err != nil { log.Fatalf("Could not send Ready: %v", err) } log.Print("Server marked as Ready") // Start health checking go func() { tick := time.Tick(2 * time.Second) for range tick { if err := s.Health(); err != nil { log.Fatalf("Health check failed: %v", err) } } }() // Get current GameServer state gs, err := s.GameServer() if err != nil { log.Printf("Could not get GameServer: %v", err) } else { log.Printf("GameServer name: %s", gs.ObjectMeta.Name) } // Run your game server logic here // ... // Shutdown gracefully if err := s.Shutdown(); err != nil { log.Printf("Could not shutdown: %v", err) }}
// Connect a playererr := sdk.Alpha().PlayerConnect("player-1")// Disconnect a playererr := sdk.Alpha().PlayerDisconnect("player-1")// Check if player is connectedisConnected, err := sdk.Alpha().IsPlayerConnected("player-1")// Get connected playersplayers, err := sdk.Alpha().GetConnectedPlayers()// Get player countcount, err := sdk.Alpha().GetPlayerCount()// Get player capacitycapacity, err := sdk.Alpha().GetPlayerCapacity()// Set player capacityerr := sdk.Alpha().SetPlayerCapacity(100)