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

Docs: Prerequisite Knowledge section #1821

Merged
merged 3 commits into from
Oct 14, 2020

Conversation

markmandel
Copy link
Member

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:

/kind breaking
/kind bug
/kind cleanup

/kind documentation

/kind feature
/kind hotfix

What this PR does / Why we need it:

Guide for learning the foundational knowledge of Agones, in case our users have some knowledge gaps they want/need to fill before digging into Agones itself.

Which issue(s) this PR fixes:

Closes #1759

Special notes for your reviewer:

I expect this will be a living doc that will evolve over time.

Closes #1759

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 6a752c71-f64a-4ff9-8314-dadc67d83f39

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

Copy link
Collaborator

@aLekSer aLekSer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, please fix 3 small nits.


* [Unity](https://unity.com/)
* [Unreal](https://www.unrealengine.com/)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a note here that we have a toy example game engine if you want to experiment with agones without having to build (or retrofit) a full game first.

In particular, most of our guides use the udp-server (now the simple-game-server) so saying here that you have to build using unity/unreal isn't aligned with working through the rest of our docs / guides.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't quite sure whether to link to engines here as well -- is that being an advocate of them over other engines?

But at the same time, if you've never used some kind of game engine they are probably the best place to learn about building a game in an engine.

We could link to the toy game engine/simple-game-server -- but does that let people learn about game engines? Probably not (which is kind of the point of this section).

..then I also wondered if we should point to multiplayer networking in a game engine (Unity might be more complicate than Unreal since most people I know doing production multiplayer Unity aren't using anything from Unity - they are using OSS or commerical tools).

So.... what do you think of that?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't quite sure whether to link to engines here as well -- is that being an advocate of them over other engines?

I think it's OK to link to these engines, since they are the ones that we have SDKs for. If we accrue SDKs for other engines, we should also add them to this list, since that means that they are popular enough that there is demand for a specific SDK.

We could link to the toy game engine/simple-game-server -- but does that let people learn about game engines? Probably not (which is kind of the point of this section).

I was thinking more along the lines of someone like myself. I've never really used unity or unreal, and I only have a surface level understanding of how they work. But I can use the simple game server to experiment with Agones (and develop it) without needing to first understand a complex game engine. If you are going to actually build and deploy a game then it makes sense to learn about game engines, but if you are just trying to kick the tires on Agones then understanding these isn't necessary.

We could link to the toy game engine/simple-game-server -- but does that let people learn about game engines? Probably not (which is kind of the point of this section).

It let's them learn about agones in isolation from a game engine, which is a lower bar. Even a game developer might want to start there - to make sure that agones is a good fit before investing the time in building any sort of game in a real engine.

..then I also wondered if we should point to multiplayer networking in a game engine (Unity might be more complicate than Unreal since most people I know doing production multiplayer Unity aren't using anything from Unity - they are using OSS or commercial tools).

Again, to me this is necessary to run a real game on agones, but not necessary to run something on agones. If we are talking about pre-reqs, then understanding dedicated game servers and why they exist seems a lot more important than game engines. You can get through all of the getting started guides without knowing anything about how an actual game engine works.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you wanted to be impartial about game engines you could always link to something like https://en.wikipedia.org/wiki/List_of_game_engines.
I think it is beneficial to know which engines are tried and tested though.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You know - this makes me question whether we should have engines here at all.

@roberthbailey your point makes a lot of sense. You don't actually NEED to know how an engine works to use Agones. There's no point in learning how to do animations in Unity for example if you're only ever going to be working server side moving RPCs around.

Maybe this is an optional section? Or maybe even drop it at all?

Or maybe this should lean us more into fleshing out the "Dedicated Game Servers" section, and see what guides we can find for supported engines with SDKs?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be enough to change "If you are building a multiplayer game, having some knowledge of a game engine is a requirement" to "If you are building a multiplayer game, you will eventually need to understand how your game engine will integrate with Agones" (leaving the rest of the section alone) and also moving this section below "Dedicated Game Servers" which I think is more important. It wouldn't hurt to flush out the "Dedicated Game Servers" section more as well, but you already have some helpful links there so I don't think that should block this PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it. Done.

I also moved it below dedicated game servers, since it seemed to me that we should have the required stuff before we covered the more "nice to have eventually".

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 48c64d6b-9148-434f-a89a-752d7bb4e80d

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:

  • git fetch https://github.com/googleforgames/agones.git pull/1821/head:pr_1821 && git checkout pr_1821
  • helm install ./install/helm/agones --namespace agones-system --name agones --set agones.image.tag=1.9.0-83247d7

@@ -13,8 +13,11 @@ Release version: {{< release-version >}}

These pages show you how to get up and running as quickly as possible in Agones.

If you are new to Agones, start with [Installation]({{< relref "./Installation/_index.md" >}}), to get Agones
up and running.
If you are new to Agones, start with [Overview]({{< relref "./Overview/_index.md" >}}), to get familiar with Agones'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Extraneous comma after the overview link.

If you are new to Agones, start with [Overview]({{< relref "./Overview/_index.md" >}}), to get familiar with Agones'
features and services.

The [Installation]({{< relref "./Installation/_index.md" >}}) guide, will take you through creating a Kubernetes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Extraneous comma after guide

## What Next?
- Review our [Prerequisite Knowledge]({{% ref "/docs/Prerequisite Knowledge/_index.md" %}}). Especially if the above
sounds fantastic, but you aren't yet familiar with technology like Kubernetes, or terms such as "Game Servers".
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Extraneous comma after Kubernetes


### Resources

* [You should totally read this comic, and interactive tutorial](https://cloud.google.com/kubernetes-engine/kubernetes-comic/)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Extraneous comma after comic


* [Unity](https://unity.com/)
* [Unreal](https://www.unrealengine.com/)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't quite sure whether to link to engines here as well -- is that being an advocate of them over other engines?

I think it's OK to link to these engines, since they are the ones that we have SDKs for. If we accrue SDKs for other engines, we should also add them to this list, since that means that they are popular enough that there is demand for a specific SDK.

We could link to the toy game engine/simple-game-server -- but does that let people learn about game engines? Probably not (which is kind of the point of this section).

I was thinking more along the lines of someone like myself. I've never really used unity or unreal, and I only have a surface level understanding of how they work. But I can use the simple game server to experiment with Agones (and develop it) without needing to first understand a complex game engine. If you are going to actually build and deploy a game then it makes sense to learn about game engines, but if you are just trying to kick the tires on Agones then understanding these isn't necessary.

We could link to the toy game engine/simple-game-server -- but does that let people learn about game engines? Probably not (which is kind of the point of this section).

It let's them learn about agones in isolation from a game engine, which is a lower bar. Even a game developer might want to start there - to make sure that agones is a good fit before investing the time in building any sort of game in a real engine.

..then I also wondered if we should point to multiplayer networking in a game engine (Unity might be more complicate than Unreal since most people I know doing production multiplayer Unity aren't using anything from Unity - they are using OSS or commercial tools).

Again, to me this is necessary to run a real game on agones, but not necessary to run something on agones. If we are talking about pre-reqs, then understanding dedicated game servers and why they exist seems a lot more important than game engines. You can get through all of the getting started guides without knowing anything about how an actual game engine works.

Guide for learning the foundational knowledge of Agones, in case our
users have some knowledge gaps they want/need to fill before digging
into Agones itself.

I expect this will be a living doc that will evolve over time.

Closes googleforgames#1759
@markmandel
Copy link
Member Author

Updated!

Looking forward to having this live - I think it's going to be useful 👍

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 0a036166-7fed-4f29-b4ab-484496957e23

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 70055f78-69dc-4b75-9a29-5a3168b47415

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:

  • git fetch https://github.com/googleforgames/agones.git pull/1821/head:pr_1821 && git checkout pr_1821
  • helm install ./install/helm/agones --namespace agones-system --name agones --set agones.image.tag=1.10.0-f08335e

@domgreen domgreen mentioned this pull request Oct 14, 2020
@google-oss-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: aLekSer, markmandel, roberthbailey

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [aLekSer,markmandel,roberthbailey]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@roberthbailey roberthbailey merged commit be1e6f5 into googleforgames:master Oct 14, 2020
@markmandel markmandel added this to the 1.10.0 milestone Oct 14, 2020
@markmandel markmandel deleted the docs/prequisite branch October 14, 2020 15:00
ilkercelikyilmaz pushed a commit to ilkercelikyilmaz/agones that referenced this pull request Oct 23, 2020
* Docs: Prerequisite Knowledge section

Guide for learning the foundational knowledge of Agones, in case our
users have some knowledge gaps they want/need to fill before digging
into Agones itself.

I expect this will be a living doc that will evolve over time.

Closes googleforgames#1759
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Documented assumed prerequisite knowledge for the project
7 participants