Skip to main content

Agones Adoption Getting Started

✍ Last Updated : September 22, 2022

🚪 Prequisite Knowledge (Optional)

[Agones](Agones a9782a164f514f0e8541ce619fc49a5a.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

Sign in

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

Sign in

Glossary

  1. 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

    1. in Unity Use case Headless is a Unity Game with build setting
      1. headless build
      2. usually for linux standalone build
    2. Headless Application logic is a responsibility handled by game programmer.
    3. Headless will need to implement Agones SDK
    4. in addition Headless will also need to request a allocation
    5. in order to connect to a Headless Game Client will need to connect to Allocation services

    Here are 4 sample Of Unity Headless Game Server implementation to help explain on how Dedicated Game Server is Expected to work

    Sign in

    Mirror Lobby

    Sign in

    Fusion Lobby

    Sign in

    Mirror Game Server

    Sign in

    Fusion Game Server

  2. Docker Image or Image - Docker images are the basis of containers.

    1. An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime.
    2. An image typically contains a union of layered filesystems stacked on top of each other.
    3. An image does not have a state and it never changes.
  3. Docker Container or Container - A container is a runtime instance of a docker image.

  4. Fleet - a set of warm game servers that are available to be allocated from

    1. Fleet need to be specified in order to be orchestrated and managed by Agones
    2. Fleet specification need to be defined by FE with discussion and assistance with devops team
    3. Fleet specification depend
      1. connection specification
      2. resource needed to run game server
      3. the behavior of game server session
    4. Read More on Agones Fleet Specification setup → [Agones Headless Game Server Fleet Deployment](Agones Headless Game Server Fleet Deployment 68acb867fbc24602a90d94e337c6d390.md)
    5. below are sample on fleet specification required to configure agones

    Sign in

  5. 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).

    1. Allocation Service is commonly attached with matchmaking service or session director
    2. it is a backend service that request and manage given headless session that is provided warm from agones
    3. Allocation Service will use Agones API to communicate with agones

    Sign in

Setting Up Agones in your Local Development Machine (Infrastructure Setups)

  1. Install Minikube ⇒ [Minikube Quick Start](Minikube Quick Start 872ac022c97f4d7480709dea8e5bb64b.md)
  2. Install Kubectl ⇒ [Kubectl Quick Start](Kubectl Quick Start 07b9e269f27742fbb799957e6f15020a.md)
  3. Install Helm ⇒ [Helm (Kubernetes Package Manager)](Helm (Kubernetes Package Manager)%20b59a71bc7bdf4ec28d83450058a82ea4.md)
  4. Install Agones ⇒ [Agones Installation](Agones Installation dc97a0baa4c3476895d16e7acadb5864.md)

Setting Up Your Game Dedicated Game Server

  1. build [Building Unity Headless Docker Image](Building Unity Headless Docker Image 45ec56a4f4bb4e9a88414df175ae7885.md)

  2. [Agones Headless Game Server Fleet Deployment](Agones Headless Game Server Fleet Deployment 68acb867fbc24602a90d94e337c6d390.md)

  3. 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)