Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing SDK Functionality across languages/engines #927

Closed
12 of 17 tasks
markmandel opened this issue Jul 18, 2019 · 17 comments
Closed
12 of 17 tasks

Missing SDK Functionality across languages/engines #927

markmandel opened this issue Jul 18, 2019 · 17 comments
Assignees
Labels
area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc help wanted We would love help on these issues. Please come help us! kind/design Proposal discussing new features / fixes and how they should be implemented obsolete wontfix Sorry, but we're not going to do that.

Comments

@markmandel
Copy link
Collaborator

markmandel commented Jul 18, 2019

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++

  • Allocate()
  • Reserve(seconds)
  • Conformance tests

Node.js

  • Reserve(seconds)

Rust

  • Reserve(seconds)

Unity

  • GameServer()
  • Reserve(seconds)
  • WatchGameServer(callback)
  • Conformance tests

Unreal

  • Allocate()
  • GameServer()
  • Reserve(seconds)
  • SetAnnotation(key, value)
  • SetLabel(key, value)
  • WatchGameServer(callback)
  • Conformance tests
  • Simple example showing how to use the SDK
@markmandel markmandel added kind/design Proposal discussing new features / fixes and how they should be implemented area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc labels Jul 18, 2019
@markmandel markmandel added this to the 0.12.0 milestone Jul 18, 2019
@roberthbailey
Copy link
Member

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
Copy link
Member

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

@steven-supersolid
Copy link
Collaborator

I'll take a look at Node.js

@markmandel
Copy link
Collaborator Author

Updated C++ checklist, due to #948

@roberthbailey
Copy link
Member

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

@roberthbailey
Copy link
Member

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

@roberthbailey
Copy link
Member

Updated node.js checklist, due to #955.

@markmandel
Copy link
Collaborator Author

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
Copy link
Collaborator Author

Should we add a conformance test for REST api?

@aLekSer
Copy link
Collaborator

aLekSer commented Aug 29, 2019

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

@markmandel
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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

markmandel added a commit to markmandel/agones that referenced this issue Sep 3, 2019
Implements Reserved, as well as associated tests and examples
updated.

Completes Rust work on googleforgames#927
markmandel added a commit to markmandel/agones that referenced this issue Sep 3, 2019
Implements Reserved, as well as associated tests and examples
updated.

Completes Rust work on googleforgames#927
markmandel added a commit to markmandel/agones that referenced this issue Sep 9, 2019
Implements Reserved, as well as associated tests and examples
updated.

Completes Rust work on googleforgames#927
roberthbailey pushed a commit that referenced this issue Sep 9, 2019
Implements Reserved, as well as associated tests and examples
updated.

Completes Rust work on #927
@markmandel markmandel removed this from the 1.0.0 milestone Sep 10, 2019
markmandel added a commit to markmandel/agones that referenced this issue Dec 13, 2019
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on googleforgames#927
markmandel added a commit to markmandel/agones that referenced this issue Dec 13, 2019
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on googleforgames#927
markmandel added a commit to markmandel/agones that referenced this issue Dec 13, 2019
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on googleforgames#927
markmandel added a commit to markmandel/agones that referenced this issue Dec 18, 2019
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on googleforgames#927
markmandel added a commit to markmandel/agones that referenced this issue Dec 19, 2019
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on googleforgames#927
markmandel added a commit that referenced this issue Jan 7, 2020
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on #927
@markmandel markmandel modified the milestones: 1.3.0, 1.4.0 Jan 14, 2020
@markmandel markmandel modified the milestones: 1.4.0, 1.5.0 Feb 26, 2020
@markmandel markmandel modified the milestones: 1.5.0, 1.6.0 Apr 7, 2020
@markmandel markmandel removed this from the 1.6.0 milestone Apr 23, 2020
ilkercelikyilmaz pushed a commit to ilkercelikyilmaz/agones that referenced this issue Oct 23, 2020
- Refactored `SendRequestAsync` to return a `AsyncResult` which contains
  both a success bool, and the returned body text from the http call.
- Used the swagger.json to generate the basic structure of the
  `GameServer` object, and then hand modified as needed.
- Had to include third_party/MiniJSON because Unity doesn't natively
  support `Dictionary`, which means we can't get Label or Annotation
  data. Then had to manually import the MiniJSON data into GameServer
  and related model objects.
- Used a set of symlinks to share the Agones Unity SDK code with the
  unity-simple example. Couldn't think of a better way.
- Minor version update on the example project as that is the earliest
  version I could get in 2018.4.x
- Added `GameServer` command to the simple-unity example as well.

Work on googleforgames#927
ilkercelikyilmaz pushed a commit to ilkercelikyilmaz/agones that referenced this issue Oct 23, 2020
Useful async function to await when the sidecar sdk server
comes up, so as to not need to retry other SDK functionality.

Part of googleforgames#927
ilkercelikyilmaz pushed a commit to ilkercelikyilmaz/agones that referenced this issue Oct 23, 2020
Implementation of Reserve for the Unity Game Server SDK.

Work on googleforgames#927
ilkercelikyilmaz pushed a commit to ilkercelikyilmaz/agones that referenced this issue Oct 23, 2020
Able to use the `DownloadHandlerScript` to intercept streaming HTTP
data from the /watch/gameserver REST endpoint.

This finishes the feature work for Unity on googleforgames#927
@markmandel markmandel removed their assignment Jan 31, 2022
@github-actions
Copy link

github-actions bot commented May 1, 2023

'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 github-actions bot added the stale Pending closure unless there is a strong objection. label May 1, 2023
@github-actions
Copy link

github-actions bot commented Jun 1, 2023

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 github-actions bot added obsolete and removed stale Pending closure unless there is a strong objection. labels Jun 1, 2023
@github-actions github-actions bot added the wontfix Sorry, but we're not going to do that. label Jul 15, 2023
@github-actions
Copy link

@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 github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Jul 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc help wanted We would love help on these issues. Please come help us! kind/design Proposal discussing new features / fixes and how they should be implemented obsolete wontfix Sorry, but we're not going to do that.
Projects
None yet
Development

No branches or pull requests

4 participants