{"id":68583,"date":"2024-11-15T19:49:29","date_gmt":"2024-11-15T14:19:29","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=68583"},"modified":"2024-11-18T07:06:06","modified_gmt":"2024-11-18T01:36:06","slug":"harnessing-gcp-for-gaming-deploying-xonotic-with-agones-on-gke","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/harnessing-gcp-for-gaming-deploying-xonotic-with-agones-on-gke\/","title":{"rendered":"Harnessing GCP for Gaming: Deploying Xonotic with Agones on GKE"},"content":{"rendered":"<h2>GCP Gaming eco-system<\/h2>\n<p>While Google Cloud Platform (GCP) doesn\u2019t offer a dedicated gaming service, it provides a comprehensive set of tools for building a scalable gaming infrastructure. With components like Google Kubernetes Engine (GKE) for container orchestration, Compute Engine for virtual machines, and Cloud Storage for asset management, developers can create a powerful backend. Services like Cloud SQL manage player data, Cloud CDN speeds up asset delivery, and Load Balancing ensures smooth multiplayer experiences. Together, these GCP tools enable developers to create a scalable, reliable gaming ecosystem.<\/p>\n<h2>What is Agones<\/h2>\n<p>Agones is an open-source tool specifically built for managing game servers on Kubernetes. It offers a framework that streamlines the deployment, scaling, and overall management of multiplayer game servers, which is crucial given the unique challenges that come with gaming environments.<\/p>\n<h2>Key Features of Agones<\/h2>\n<ul>\n<li><strong>Game Server Management<\/strong> &#8211; Agones provides custom Kubernetes resources, such as GameServer and Fleet, tailored for game server deployment and management.<\/li>\n<li><strong>Fleet Management<\/strong> &#8211; We can create fleets of game servers, allowing for efficient scaling and management. This means you can run multiple instances of the same game server and easily manage their lifecycle.<\/li>\n<li><strong>Automatic Scaling<\/strong> &#8211; Agones support autoscaling based on player demand. As players join or leave, Agones can automatically spin up or down game servers to meet the needs of your player base.<\/li>\n<li><strong>Health checks and Recovery<\/strong> &#8211; Agones include health checks to monitor the status of game servers. If a server becomes unhealthy, Agones can automatically restart it to ensure a smooth gaming experience.<\/li>\n<li><strong>Session Management<\/strong> &#8211; The platform allows for session management, enabling you to track player sessions, matchmaking, and connections more effectively.<\/li>\n<\/ul>\n<h3>Read more: <a href=\"https:\/\/www.tothenew.com\/blog\/building-the-future-of-multiplayer-games-with-aws-gamelift-key-strategies-for-success\/\">Building the Future of Multiplayer Games with AWS GameLift: Key Strategies for Success<\/a><\/h3>\n<h2>Create Kubernetes Cluster and Setup Agones<\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68585 size-large\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-1024x477.png\" alt=\"architecture\" width=\"625\" height=\"291\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-1024x477.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-300x140.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-768x358.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-1536x715.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-2048x954.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.32.02\u202fAM-624x291.png 624w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/p>\n<p><strong>Note &#8211; <\/strong>We will set up a Kubernetes cluster on Google Cloud Platform (GCP) and install the Agones components to manage game servers. Once the setup is complete, we&#8217;ll deploy a Xonotic game server on the cluster and connect to it using the Xonotic client.<strong><br \/>\n<\/strong><\/p>\n<p><strong>Step 1<\/strong> &#8211; Open Cloud Shell<\/p>\n<div id=\"attachment_68581\" style=\"width: 1262px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-68581\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-68581 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.26\u202fAM.png\" alt=\"Shell Fig No. 1\" width=\"1252\" height=\"374\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.26\u202fAM.png 1252w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.26\u202fAM-300x90.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.26\u202fAM-1024x306.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.26\u202fAM-768x229.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.26\u202fAM-624x186.png 624w\" sizes=\"(max-width: 1252px) 100vw, 1252px\" \/><p id=\"caption-attachment-68581\" class=\"wp-caption-text\">Shell Fig No. 1<\/p><\/div>\n<p><strong>Step 2<\/strong> &#8211; Export CLUSTER_NAME<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 24px;\">\n<tbody>\n<tr style=\"height: 24px;\">\n<td style=\"width: 100%; height: 24px;\">$export CLUSTER_NAME=game-server<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68580 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.36\u202fAM.png\" alt=\"\" width=\"1252\" height=\"136\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.36\u202fAM.png 1252w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.36\u202fAM-300x33.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.36\u202fAM-1024x111.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.36\u202fAM-768x83.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.00.36\u202fAM-624x68.png 624w\" sizes=\"(max-width: 1252px) 100vw, 1252px\" \/><\/p>\n<p><strong>Step 3<\/strong> &#8211; Now create Kubernetes cluster by using below command<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$gcloud container clusters create $CLUSTER_NAME &#8211;no-enable-legacy-authorization &#8211;tags=game-server &#8211;scopes=gke-default &#8211;num-nodes=3 &#8211;machine-type=n1-standard-2 &#8211;region=us-central1-a<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68579 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.01\u202fAM.png\" alt=\"\" width=\"1252\" height=\"208\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.01\u202fAM.png 1252w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.01\u202fAM-300x50.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.01\u202fAM-1024x170.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.01\u202fAM-768x128.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.01\u202fAM-624x104.png 624w\" sizes=\"(max-width: 1252px) 100vw, 1252px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 4<\/strong> &#8211; Create Firewall Rule<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em><span style=\"color: #000000;\">$gcloud compute firewall-rules create game-server-firewall &#8211;allow udp:7000-8000 &#8211;target-tags game-server &#8211;description \u2018Firewall to allow game server udp traffic\u2019<\/span><\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68578 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.11\u202fAM.png\" alt=\"\" width=\"1250\" height=\"130\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.11\u202fAM.png 1250w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.11\u202fAM-300x31.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.11\u202fAM-1024x106.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.11\u202fAM-768x80.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.11\u202fAM-624x65.png 624w\" sizes=\"(max-width: 1250px) 100vw, 1250px\" \/><\/p>\n<p><strong>Step 5<\/strong> &#8211; Connect to Cluster<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$gcloud config set container\/cluster $CLUSTER_NAME<br \/>\n$gcloud container clusters get-credentials &#8211;region=us-central1-a $CLUSTER_NAME<br \/>\n$kubectl cluster-info<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68577 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.29\u202fAM.png\" alt=\"\" width=\"1248\" height=\"292\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.29\u202fAM.png 1248w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.29\u202fAM-300x70.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.29\u202fAM-1024x240.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.29\u202fAM-768x180.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.29\u202fAM-624x146.png 624w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><\/p>\n<p><strong>Now, we will install Agnoes<\/strong><\/p>\n<p><strong>Step 6<\/strong> &#8211; Create agones-system Name Space<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 24px;\">\n<tbody>\n<tr style=\"height: 24px;\">\n<td style=\"width: 100%; height: 24px;\">$kubectl create namespace agones-system<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68576 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.51\u202fAM.png\" alt=\"\" width=\"1250\" height=\"300\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.51\u202fAM.png 1250w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.51\u202fAM-300x72.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.51\u202fAM-1024x246.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.51\u202fAM-768x184.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.01.51\u202fAM-624x150.png 624w\" sizes=\"(max-width: 1250px) 100vw, 1250px\" \/><\/p>\n<p><strong>Step 7<\/strong> &#8211; Add agones repo<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$helm repo add agones https:\/\/agones.dev\/chart\/stable<br \/>\n$helm repo update<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68575 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.03\u202fAM.png\" alt=\"\" width=\"1250\" height=\"158\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.03\u202fAM.png 1250w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.03\u202fAM-300x38.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.03\u202fAM-1024x129.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.03\u202fAM-768x97.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.03\u202fAM-624x79.png 624w\" sizes=\"(max-width: 1250px) 100vw, 1250px\" \/><\/p>\n<p><strong>Step 8<\/strong> &#8211;\u00a0 Install agones<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$helm install agones &#8211;namespace agones-system agones\/agones<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68573 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.42\u202fAM.png\" alt=\"\" width=\"1242\" height=\"356\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.42\u202fAM.png 1242w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.42\u202fAM-300x86.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.42\u202fAM-1024x294.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.42\u202fAM-768x220.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.02.42\u202fAM-624x179.png 624w\" sizes=\"(max-width: 1242px) 100vw, 1242px\" \/><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$kubectl &#8211;namespace agones-system get pods -o wide<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68613 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-1.41.43\u202fPM.png\" alt=\"t\" width=\"1254\" height=\"178\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-1.41.43\u202fPM.png 1254w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-1.41.43\u202fPM-300x43.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-1.41.43\u202fPM-1024x145.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-1.41.43\u202fPM-768x109.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-1.41.43\u202fPM-624x89.png 624w\" sizes=\"(max-width: 1254px) 100vw, 1254px\" \/><\/p>\n<p><strong>Here, We can see all agones components are up and running.<\/strong><\/p>\n<p><strong>Step 9<\/strong> &#8211; Create Fleet<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$kubectl apply -f https:\/\/raw.githubusercontent.com\/googleforgames\/agones\/release-1.44.0\/examples\/xonotic\/fleet.yaml<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68571 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.17\u202fAM.png\" alt=\"\" width=\"1252\" height=\"68\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.17\u202fAM.png 1252w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.17\u202fAM-300x16.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.17\u202fAM-1024x56.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.17\u202fAM-768x42.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.17\u202fAM-624x34.png 624w\" sizes=\"(max-width: 1252px) 100vw, 1252px\" \/><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$kubectl get fleet<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68570 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.26\u202fAM.png\" alt=\"\" width=\"1252\" height=\"90\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.26\u202fAM.png 1252w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.26\u202fAM-300x22.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.26\u202fAM-1024x74.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.26\u202fAM-768x55.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.26\u202fAM-624x45.png 624w\" sizes=\"(max-width: 1252px) 100vw, 1252px\" \/><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">$kubectl get gameservers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68569 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.35\u202fAM.png\" alt=\"\" width=\"1250\" height=\"118\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.35\u202fAM.png 1250w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.35\u202fAM-300x28.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.35\u202fAM-1024x97.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.35\u202fAM-768x72.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-11.04.35\u202fAM-624x59.png 624w\" sizes=\"(max-width: 1250px) 100vw, 1250px\" \/><\/p>\n<h2>Install Xonotic Client on Linux Machine<\/h2>\n<p><strong>Step 1<\/strong> &#8211; Download Xonotic game binary &amp; extract it.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 48px;\">\n<tbody>\n<tr style=\"height: 48px;\">\n<td style=\"width: 100%; height: 48px;\">$get http:\/\/dl.xonotic.org\/xonotic-0.8.5.zip<br \/>\n$unzip xonotic*<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68603 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.47\u202fPM.png\" alt=\"\" width=\"1248\" height=\"158\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.47\u202fPM.png 1248w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.47\u202fPM-300x38.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.47\u202fPM-1024x130.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.47\u202fPM-768x97.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.47\u202fPM-624x79.png 624w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><br \/>\n<strong>Step 2 &#8211;<\/strong> Go to xonotic folder and execute the below file.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 26px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 100%; height: 26px;\">$cd xonotic<br \/>\n$bash xonotic-linux-glx.sh<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68602 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.58\u202fPM.png\" alt=\"\" width=\"1248\" height=\"90\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.58\u202fPM.png 1248w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.58\u202fPM-300x22.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.58\u202fPM-1024x74.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.58\u202fPM-768x55.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.20.58\u202fPM-624x45.png 624w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><\/h2>\n<p>Now, Xonotic client has been started<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68601 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.12\u202fPM.png\" alt=\"\" width=\"1248\" height=\"340\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.12\u202fPM.png 1248w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.12\u202fPM-300x82.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.12\u202fPM-1024x279.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.12\u202fPM-768x209.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.12\u202fPM-624x170.png 624w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><\/p>\n<p><strong>Step 3 &#8211;<\/strong> Click on Multiplayer &gt; Servers<\/p>\n<p>Get gameserver IP and port using this command (kubectl get gameservers)<\/p>\n<p>Add paste here.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68600 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.25\u202fPM.png\" alt=\"\" width=\"1250\" height=\"696\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.25\u202fPM.png 1250w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.25\u202fPM-300x167.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.25\u202fPM-1024x570.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.25\u202fPM-768x428.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.21.25\u202fPM-624x347.png 624w\" sizes=\"(max-width: 1250px) 100vw, 1250px\" \/><br \/>\nClick on Join, Here we go\u2026<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-68605 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.27.54\u202fPM.png\" alt=\"final\" width=\"1250\" height=\"600\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.27.54\u202fPM.png 1250w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.27.54\u202fPM-300x144.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.27.54\u202fPM-1024x492.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.27.54\u202fPM-768x369.png 768w, \/blog\/wp-ttn-blog\/uploads\/2024\/11\/Screenshot-2024-11-05-at-12.27.54\u202fPM-624x300.png 624w\" sizes=\"(max-width: 1250px) 100vw, 1250px\" \/><\/p>\n<h2>Conclusion<\/h2>\n<p>Integrating Google Cloud Platform (GCP) with Agones provides a scalable and efficient solution for managing multiplayer game servers. With GCP\u2019s robust infrastructure and Agones&#8217; specialized tools, developers can easily build seamless, responsive gaming experiences. Whether supporting a small community or millions of players, this combination offers the flexibility to scale as needed. As the gaming industry evolves, GCP and Agones give developers the edge to deliver high-quality, immersive gameplay at scale.<\/p>\n<p>If you want to know more about the possibilities for your projects, do not hesitate to<a href=\"https:\/\/www.tothenew.com\/contact-us\"> contact us<\/a>. Our AWS Certified Architects and <a href=\"https:\/\/www.tothenew.com\/cloud-devops\/cloud-services\/devops-automation\">DevOps<\/a> Engineers are committed to saving you time and resources while improving business efficiency and reliability.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GCP Gaming eco-system While Google Cloud Platform (GCP) doesn\u2019t offer a dedicated gaming service, it provides a comprehensive set of tools for building a scalable gaming infrastructure. With components like Google Kubernetes Engine (GKE) for container orchestration, Compute Engine for virtual machines, and Cloud Storage for asset management, developers can create a powerful backend. Services [&hellip;]<\/p>\n","protected":false},"author":1473,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":69},"categories":[2348],"tags":[1892],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/68583"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1473"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=68583"}],"version-history":[{"count":24,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/68583\/revisions"}],"predecessor-version":[{"id":68705,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/68583\/revisions\/68705"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=68583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=68583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=68583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}