Skip to content

Commit

Permalink
TOC for the SDK integration and tooling
Browse files Browse the repository at this point in the history
I did this because I thought the local tooling wasn't getting
noticed, so a TOC would help bring that to attention, and also
make the documentation easier to navigate.

Also found some semantic issues with header depth that I also
fixed.
  • Loading branch information
markmandel committed Oct 22, 2018
1 parent 8669cf4 commit 3038778
Showing 1 changed file with 26 additions and 4 deletions.
30 changes: 26 additions & 4 deletions sdks/README.md
@@ -1,5 +1,27 @@
# Agones Game Server Client SDKs


Table of Contents
=================

* [Overview](#overview)
* [Function Reference](#function-reference)
* [Ready()](#ready)
* [Health()](#health)
* [Shutdown()](#shutdown)
* [SetLabel(key, value)](#setlabelkey-value)
* [SetAnnotation(key, value)](#setannotationkey-value)
* [GameServer()](#gameserver)
* [WatchGameServer(function(gameserver){...})](#watchgameserverfunctiongameserver)
* [Local Development](#local-development)
* [Providing your own GameServer configuration for local development](#providing-your-own-gameserver-configuration-for-local-development)
* [Writing your own SDK](#writing-your-own-sdk)
* [gRPC Client Generation](#grpc-client-generation)
* [REST API Implementation](#rest-api-implementation)
* [Building the Local Tools](#building-the-local-tools)

## Overview

The SDKs are integration points for game servers with Agones itself.

They are required for a game server to work with Agones.
Expand Down Expand Up @@ -148,25 +170,25 @@ $ ./sdk-server.linux.amd64 --local -f ../../../examples/simple-udp/gameserver.ya
{"level":"info","msg":"Starting SDKServer grpc-gateway...","source":"main","time":"2018-08-25T17:56:39-07:00"}
```

### Writing your own SDK
## Writing your own SDK

If there isn't a SDK for the language and platform you are looking for, you have several options:

#### gRPC Client Generation
### gRPC Client Generation

If client generation is well supported by [gRPC](https://grpc.io/docs/), then generate a client from the
[sdk.proto](../sdk.proto), and look at the current [sdks](.) to see how the wrappers are implemented to make interaction
with the SDK server simpler for the user.

#### REST API Implementation
### REST API Implementation

If client generation is not well supported by gRPC, or if there are other complicating factors, implement the SDK through
the [REST](../docs/sdk_rest_api.md) HTTP+JSON interface. This could be written by hand, or potentially generated from
the [Swagger/OpenAPI Spec](../sdk.swagger.json).

Finally, if you build something that would be usable by the community, please submit a pull request!

### Building the Local Tools
## Building the Local Tools

If you wish to build the binaries for local development from source
the `make` target `build-agones-sdk-binary` will compile the necessary binaries
Expand Down

0 comments on commit 3038778

Please sign in to comment.