agones icon indicating copy to clipboard operation
agones copied to clipboard

Missing SDK Functionality across languages/engines

Open markmandel opened this issue 5 years ago • 14 comments

We have a variety of SDK functionality, but it isn't implemented across all languages and engines.

This is a work-list of SDK functionality that still needs to be implemented, so we can track it in a single place.

C++

  • [x] Allocate()
  • [x] Reserve(seconds)
  • [x] Conformance tests

Node.js

  • [x] Reserve(seconds)

Rust

  • [ ] Reserve(seconds)

Unity

  • [x] GameServer()
  • [x] Reserve(seconds)
  • [x] WatchGameServer(callback)
  • [ ] Conformance tests

Unreal

  • [x] Allocate()
  • [x] GameServer()
  • [x] Reserve(seconds)
  • [x] SetAnnotation(key, value)
  • [x] SetLabel(key, value)
  • [ ] WatchGameServer(callback)
  • [ ] Conformance tests
  • [ ] Simple example showing how to use the SDK

markmandel avatar Jul 18 '19 23:07 markmandel

Looking at https://github.com/googleforgames/agones/blob/master/build/includes/sdk.mk only node, go, and rust have conformance tests, so I've added a checkbox to each of the other SDKs to add them.

roberthbailey avatar Jul 25 '19 09:07 roberthbailey

I have a PR for the missing C++ functions.

roberthbailey avatar Jul 26 '19 21:07 roberthbailey

I'll take a look at Node.js

steven-supersolid avatar Jul 27 '19 10:07 steven-supersolid

Updated C++ checklist, due to #948

markmandel avatar Jul 29 '19 06:07 markmandel

@whisper0077 - do you have time to add the remaining functions to the Unity SDK?

roberthbailey avatar Jul 29 '19 18:07 roberthbailey

@YannickLange - do you have time to add the remaining functions to the Unreal SDK?

roberthbailey avatar Jul 29 '19 18:07 roberthbailey

Updated node.js checklist, due to #955.

roberthbailey avatar Jul 30 '19 09:07 roberthbailey

Came up in Slack - does Unity & Unreal need some kind of blocking Connect() function basically so they can also block to wait for the sidecar to come up?

We could do a polling operation on the /healthz endpoint, or even do what I did on the Rust SDK, and poll GameServer() until we get a valid response (since it's read only, and a cached value).

WDYT?

markmandel avatar Aug 07 '19 20:08 markmandel

Should we add a conformance test for REST api?

markmandel avatar Aug 15 '19 16:08 markmandel

If conformance tests for REST API is needed I can add the support for existent 3: Go, Rust and NodeJS.

aLekSer avatar Aug 29 '19 15:08 aLekSer

I don't think we need REST conformation for languages we don't support REST for. Still waiting on some kind of licence/legal review to see what is possible with Unity/Unreal.

markmandel avatar Aug 29 '19 18:08 markmandel

Doing Rust::Reserve, because then that is closed out. Also I get to write some more Rust, and that makes me happy.

markmandel avatar Aug 29 '19 21:08 markmandel

For SDK conformance tests:

  • [x] We need to run sdk server on distinct ports to run all SDK tests in parallel

this was mentioned in another thread leave it there as a checkbox

aLekSer avatar Oct 01 '19 11:10 aLekSer

Currently working on Unity, SDK.GameServer() -- I used swagger to generate the model and hand editing it, so that should hopefully save me some work.

/assign

markmandel avatar Oct 30 '19 01:10 markmandel

'This issue is marked as Stale due to inactivity for more than 30 days. To avoid being marked as 'stale' please add 'awaiting-maintainer' label or add a comment. Thank you for your contributions '

github-actions[bot] avatar May 01 '23 10:05 github-actions[bot]

This issue is marked as obsolete due to inactivity for last 60 days. To avoid issue getting closed in next 30 days, please add a comment or add 'awaiting-maintainer' label. Thank you for your contributions

github-actions[bot] avatar Jun 01 '23 02:06 github-actions[bot]

@author, We are closing this as there was no activity in this issue for last 90 days. Please reopen if you’d like to discuss anything further.

github-actions[bot] avatar Jul 15 '23 01:07 github-actions[bot]