Agones Adoption Getting Started
✍ Last Updated : September 22, 2022
🚪 Prequisite Knowledge (Optional)
Upload[Agones](Agones In Progressa9782a164f514f0e8541ce619fc49a5a.md)
[Dedicated Game Server Orchestration 101](Dedicated Game Server Orchestration 101 8894e7781b594083ae1a1a93405851a1.md) (Concepts)
❓ Key Question / Problem / Issue
Describe what question / Problem / Issue this knowledge should answer
How To Start Implementing Agones into your Game System Infrastructure
✅ Expected Output/Definition of Done
Define what information you really need and the definition of done
Guideline and Sample on what to do to setup Agones
🎁 Resulting Solution
Overview
To develop and test your headless build with agones support on your local computer, we prepared a sample project you can use template project below
You can download the project and place it anywhere on your disk
To further describe separation on working with Agones Dedicated Game Server Headless Management we separated several component of agones template to a group filled with multiple Agones adoption component describe in Glossary Below
Glossary
-
Headless - in this case, a build of your game with the sole purpose is to run as a multiplayer game server without any input from humans or any graphical output https://en.wikipedia.org/wiki/Headless_software
- in Unity Use case
Headless
is a Unity Game with build setting- headless build
- usually for linux standalone build
-
Headless
Application logic is a responsibility handled by game programmer. -
Headless
will need to implement Agones SDK - in addition
Headless
will also need to request aallocation
- in order to connect to a
Headless
Game Client will need to connect toAllocation
services
Here are 4 sample Of Unity Headless Game Server implementation to help explain on how Dedicated Game Server is Expected to work
Mirror Lobby
Fusion Lobby
Mirror Game Server
Fusion Game Server
- in Unity Use case
-
Docker Image or Image - Docker images are the basis of containers.
- An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime.
- An image typically contains a union of layered filesystems stacked on top of each other.
- An image does not have a state and it never changes.
-
Docker Container or Container - A container is a runtime instance of a docker image.
-
Fleet - a set of warm game servers that are available to be allocated from
-
Fleet
need to be specified in order to be orchestrated and managed by Agones -
Fleet
specification need to be defined by FE with discussion and assistance with devops team -
Fleet
specification depend- connection specification
- resource needed to run game server
- the behavior of game server session
- Read More on Agones
Fleet
Specification setup → [Agones Headless Game Server Fleet Deployment](Agones Headless Game Server Fleet Deployment 68acb867fbc24602a90d94e337c6d390.md) - below are sample on fleet specification required to configure agones
-
-
Allocation Service - since we have a fleet of warm game servers, we need a way to request one of them for usage, and mark that it has players accessing it (and therefore, it should not be deleted until they are finished with it).
-
Allocation Service
is commonly attached with matchmaking service or session director - it is a backend service that request and manage given headless session that is provided warm from agones
-
Allocation Service
will use Agones API to communicate with agones
-
Setting Up Agones in your Local Development Machine (Infrastructure Setups)
- Install Minikube ⇒ [Minikube Quick Start](Minikube Quick Start 872ac022c97f4d7480709dea8e5bb64b.md)
- Install Kubectl ⇒ [Kubectl Quick Start](Kubectl Quick Start 07b9e269f27742fbb799957e6f15020a.md)
- Install Helm ⇒ [Helm (Kubernetes Package Manager)](Helm (Kubernetes Package Manager)%20b59a71bc7bdf4ec28d83450058a82ea4.md)
- Install Agones ⇒ [Agones Installation](Agones Installation dc97a0baa4c3476895d16e7acadb5864.md)
Setting Up Your Game Dedicated Game Server
-
build [Building Unity Headless Docker Image](Building Unity Headless Docker Image 45ec56a4f4bb4e9a88414df175ae7885.md)
-
[Agones Headless Game Server Fleet Deployment](Agones Headless Game Server Fleet Deployment 68acb867fbc24602a90d94e337c6d390.md)
-
create backend API Services that uses agones api to use / manage headless session that provided by Agones System
[Agones Headless Allocation API](Agones Headless Allocation API f374edb3c5bc40a8a8e44688096a5a23.md)