-
Notifications
You must be signed in to change notification settings - Fork 819
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
Unreal Engine 4 Plugin #647
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here (e.g. What to do if you already signed the CLAIndividual signers
Corporate signers
ℹ️ Googlers: Go here for more info. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥 Awwwwweeeeeesome 🔥
Some thoughts:
- Should the folder be "Unreal" rather than "UEAgones" ?
- We'll definitely want some docs for this.
I also need to find someone who knows Unreal to review 😄
Build Succeeded 👏 Build Id: 907b9c80-4fe2-4640-bbe6-c73c80f4b1a0 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
|
I'm very interested in trying out this plugin, but I'm not much used to install new plugins into Unreal. Is there some docs I can read/follow to know how to do it right? |
I'll write docs later, but it comes down to the general steps. I assume you already have done/been able to do 1, 3, 4 and 6. Only 2 and 4 are related to the plugin. No coding required 😃
Hope that helps for now! |
Code looks ok. I don't think that we need to follow google codestyle for that, because UE has its own. Maybe I can build and test a bit later. |
I've been wondering how we might approach a Unity SDK so now following this PR with some interest. Has any thought been given to using gRPC instead of using the REST API? |
I've tried it (on Linux) and others here have done it on Windows. Integration of gRpc in Unreal Engine is quite an hell at the moment, basically for incompatibility between gRpc compiler settings/base libraries and Unreal's. |
What do you think about using agones-cpp-sdk as a shared library as a base for UE plugin instead of direct implementation of SDK? Shared library will include all necessary gRPC stuff, so there should be no compiler/linker issues. |
As I said, I'm far from being an expert, all I know is that I've wasted several weeks trying to build UE4 with gRpc and I ended giving up and resorting to the REST interface. Having said that, using the shared library should solve compiler/linker issues, but my fear is that you could end up finding those same issues between agones-cpp-sdk and Unreal. Unfortunately the Unreal build process is very cumbersome and poor documented: it's very picky on compiler version and flags, I digged through a lot of different problems and errors one after another so I cannot really feel confident on what to say about your question. I would say Agones is becoming quickly such an important and notable project that someone at Epic could decide to put some effort in helping this integration (at least documenting what's needed). EDIT: I've found an older thread about this: #138 that ended with this work: https://github.com/iniside/ue-grpc |
I worked at Epic and I don't see them integrating Agones at all. They might add a grpc plugin, which would be nice. In addition to that, a plugin is way better for the Agones community, so the community has more control over it. |
|
Awesome work Yannick! Is there a reason that GameServer, WatchGameServer, SetAnnotation and SetLabel aren't implemented? |
Just haven't had time for that. |
Just a gentle bump - our release candidate is hitting tomorrow, at which point we hit feature freeze for a week. Be great to get the outstanding items in this PR done so we can have this in this upcoming release. |
@YannickLange I suggest to use existing cpp sdk instead of making manual http requests. Now it is possible to build cpp sdk as a dynamic library for all platforms (with CMake and AGONES_BUILD_SHARED=ON), so there will be no direct gRPC dependency (so it is not necessary to build gRPC with UE build system). If you have any questions related to building cpp sdk, feel free to contact me. |
- Changed copyright to 2019 - Removed unused REAMDE.md
Build Failed 😱 Build Id: cf9d42b1-956e-40e0-89f4-f36c621abcc3 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Co-Authored-By: YannickLange <YannickLange@users.noreply.github.com>
Build Failed 😱 Build Id: a6acdceb-d0a7-4e1f-bd65-b3151c9ec14b To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Succeeded 👏 Build Id: dc6f059b-0b6b-421f-b4b1-390fd993a45e The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Wh00t! We have a working build! So - final, final things.
Really looking forward to having this in the repository finally though!!! |
Signed it! Let's go !!!! |
CLAs look good, thanks! ℹ️ Googlers: Go here for more info. |
^ sorry, still got one more step. Almost there! |
Gentle bump 😄 just need this squashed, and its good to go. |
Build Succeeded 👏 Build Id: 6e81bf37-0ca4-47d2-b5b9-f75be7082172 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤩
Initial Unreal Engine 4 Plugin for Agones.
The problem with having the plugin within this repository is that people will have to copy the directory in to the Plugins folder of each Unreal Engine project that uses Agones. They would also have to do this when there is a new version of the plugin. In addition to that it might be less clean regarding branching and binaries for different Unreal Engine versions. I made a seperate repository for just the plugin (https://github.com/YannickLange/UEAgones). So people can just clone that. It might be an idea to do "active" development there and then pull the changes to the agones repo?
Anyway. Try it out, would love to hear feedback!