Rust and AWS GameLift Server SDK

0

Hi!

I have a quick question: is it possible somehow to use anything except C++ and C# as a language for the AWS GameLift Custom Server? I see ready SDKs only for C++ and C#, so I don't know, how can I choose other tech stacks. In my case, I want to use Rust instead. Should I reimplement from the scratch AWS GameLift Server SDK? Or just create C-bindings to C++ version of the SDK and then use these C bindings in my Rust project?

A little bit about my test project. Almost all stuff is the same with reference architecture from the following project: https://github.com/aws-samples/aws-gamelift-sample

The only difference is that I want to use Rust instead of C++/C# on the server-side and in my case, I need a custom server (real-time server is not suitable in my case).

Thanks in advance!

P.S. Rusoto, Rust SDK for AWS API, doesn't have any kind of AWS GameLift Server SDK APIs.

質問済み 3年前304ビュー
10回答
0

Gamelift does not vend server sdk in any other language apart from C++ or C#. Thus we currently have no server sdk support for rust.

Regarding using C-bindings within Rust project, Gamelift team has not tested this and confirmed it to work with gamelift. I would say it is worth a try if it reduces the effort significantly.

回答済み 3年前
0

Ok, got it.

There is another idea - just rewrite a piece of AWS GameLift Server SDK in Rust. Unfortunately, they use Google Protobuf for their API but don't provide original Protobuf files in their SDK - only already generated sources.

Is it possible to somehow ask AWS GameLift team to publish original Protobuf files? It will be much easier to implement with that own SDK in Rust.

回答済み 3年前
0
回答済み 3年前
0

EDITED: hmm, it's already generated file too. Maybe I need to ask the author of gomolift about providing the original sdk.proto file

回答済み 3年前
0

I see at least one completely the same request 3 years ago: https://forums.awsgametech.com/t/can-you-please-distribute-sdk-proto-instead-of-sdk-pb-h/2347

Still no any progress yet :(

回答済み 3年前
0

Hi. I'm author of gomelift, an unofficial GameLift ServerSDK for Go.

When I developed gomelift, I used this sdk.proto file. https://github.com/dplusic/GameLift-Server-Protobuf He also provides an unofficial GameLift ServerSDK for Node.js. https://github.com/dplusic/GameLift-Nodejs-ServerSDK

I am also hoping that AWS will provide the sdk.proto file officially. This is because even if we use the official SDK as it is, it will be difficult to upgrade the protocol buffers library.

Thanks! 😄

回答済み 3年前
0

https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-integrate-gameserver.html I haven't tried it, so I can't be sure, but by using GameLift FleetIQ instead of Managed GameLift, it may be possible to launch GameLift servers in all languages for which AWS SDKs are provided. FleetIQ requires you to manage the startup and scaling of EC2 instances to a certain extent, so it may take more time than Managed GameLift, but it seems to be more flexible.

The official AWS SDK for Rust has just been released and does not yet include support for GameLift. https://github.com/awslabs/aws-sdk-rust

On the other hand, rusoto, the unofficial AWS SDK for Rust, seems to have support for GameLift, including FleetIQ feature. https://docs.rs/rusoto_gamelift/0.46.0/rusoto_gamelift/

回答済み 3年前
0

Thanks for sharing this! I will try to use it.

Since yesterday was released an official AWS SDK for Rust, I will create there an issue about AWS GameLift Server SDK for Rust and publishing Protobuf files. Who knows, maybe this time they will see and do something :)

回答済み 3年前
0

If anyone is interested - my version of AWS GameLift Server SDK for Rust is here: https://github.com/ZaMaZaN4iK/aws-gamelift-server-sdk-rs

It's under active testing, but I already successfully tested it with GameLift Local and on the real GameLift fleet. Any suggestions and contributions are welcome!

Also you can be interested in Docker images for building Rust for GameLift: https://github.com/ZaMaZaN4iK/aws-gamelift-rust-buildimage

回答済み 3年前
0

Great and feel free to submit a PR to https://github.com/favoyang/awesome-gamelift

回答済み 3年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ