Skip to content

Reorganize third-party content documentation and add content#4388

Merged
markmandel merged 4 commits intoagones-dev:mainfrom
markmandel:site/add-videos
Dec 18, 2025
Merged

Reorganize third-party content documentation and add content#4388
markmandel merged 4 commits intoagones-dev:mainfrom
markmandel:site/add-videos

Conversation

@markmandel
Copy link
Copy Markdown
Collaborator

What type of PR is this?

Uncomment only one /kind <> line, press 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
/kind release

What this PR does / Why we need it:

There's so many case studies and tutorials on Agones, that can be hard to find -- let's consolidate this!

  • Create new articles.md to organize case studies and blog posts by year
  • Add case studies from Bandai Namco, Sonic Rumble, Nintendo, and Gaijin Ent.
  • Add blog posts from AWS and Google Cloud spanning 2018-2025
  • Add podcasts from Level Design Podcast (2021) and FLOSS Weekly (2020)
  • Add case study videos from PlayStation, Ubisoft, PUBG, and others
  • Add tutorial presentations and screencasts for Agones
  • Reorganize podcasts.md by year and fix markdown link formatting
  • Adjust navigation weights for examples and libraries-tools sections

Which issue(s) this PR fixes:

N/A

Special notes for your reviewer:

N/A

@agones-bot
Copy link
Copy Markdown
Collaborator

Build Failed 😭

Build Id: 36cb8986-bd1b-4c31-a7bc-51200b534bc7

Status: FAILURE

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


### (Paywall) 'Monster Hunter Wilds' Network Architecture Supporting Over 1 Million Concurrent Users (Presented by AWS) (Devcom, 2025)

[![devcom-mhw-thumb.png](/images/devcom-mhw-thumb.png)](https://bizcommunity.gamescom.global/event/devcom-developer-conference-2025/planning/UGxhbm5pbmdfMjc0ODE4MQ==)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Seems that it needs the relative path

Suggested change
[![devcom-mhw-thumb.png](/images/devcom-mhw-thumb.png)](https://bizcommunity.gamescom.global/event/devcom-developer-conference-2025/planning/UGxhbm5pbmdfMjc0ODE4MQ==)
[![devcom-mhw-thumb.png](../../../images/devcom-mhw-thumb.png)](https://bizcommunity.gamescom.global/event/devcom-developer-conference-2025/planning/UGxhbm5pbmdfMjc0ODE4MQ==)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Oh, don't apply my changes from the suggestion, I didn't fix my github account, it's using the wrong email and will fails the pipeline because this email doesn't have signed the CLA 😄

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Hah, no worries - good catch!

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

As you were mentioning on Slack about permission on this video, should we add a comment to let people know that they might not have access ?

Copy link
Copy Markdown
Collaborator

@lacroixthomas lacroixthomas left a comment

Choose a reason for hiding this comment

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

I had no idea there were that many videos about Agones, it seems to be used by way more people / companies that I thought, that's Amazing !
Even happier to be part of Agones 😄 🎉

(Also, got quite some to watch, pretty interested to know how they all uses it)

@markmandel
Copy link
Copy Markdown
Collaborator Author

I had a pretty good idea (working at Google helped 😁 ) but I definitely also found some gems I wasn't aware of when hunting.

The challenge once this is merged, is to have people find articles and videos I missed!

@agones-bot
Copy link
Copy Markdown
Collaborator

Build Succeeded 🥳

Build Id: 2c0e2fb3-2d7d-4db5-b5e3-8b8045470306

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/4388/head:pr_4388 && git checkout pr_4388
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.55.0-dev-3ad86e9

Copy link
Copy Markdown
Collaborator

@lacroixthomas lacroixthomas left a comment

Choose a reason for hiding this comment

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

Just left a tiny suggestion about adding a small message for people trying to reach the video that might not be available, otherwise LGTM (I'm fine with it as it is though)

@markmandel
Copy link
Copy Markdown
Collaborator Author

Just left a tiny suggestion about adding a small message for people trying to reach the video that might not be available, otherwise LGTM (I'm fine with it as it is though)

Did you submit the comment - I don't see it. It is a good idea though, I'll do it.

@lacroixthomas
Copy link
Copy Markdown
Collaborator

Just left a tiny suggestion about adding a small message for people trying to reach the video that might not be available, otherwise LGTM (I'm fine with it as it is though)

Did you submit the comment - I don't see it. It is a good idea though, I'll do it.

I added it on the same thread as the image path, I could have created another one 😄
#4388 (comment)

@markmandel
Copy link
Copy Markdown
Collaborator Author

Ah thanks, missed it!

- Create new articles.md to organize case studies and blog posts by year
- Add case studies from Bandai Namco, Sonic Rumble, Nintendo, and Gaijin Ent.
- Add blog posts from AWS and Google Cloud spanning 2018-2025
- Add podcasts from Level Design Podcast (2021) and FLOSS Weekly (2020)
- Add case study videos from PlayStation, Ubisoft, PUBG, and others
- Add tutorial presentations and screencasts for Agones
- Reorganize podcasts.md by year and fix markdown link formatting
- Adjust navigation weights for examples and libraries-tools sections
@agones-bot
Copy link
Copy Markdown
Collaborator

Build Failed 😭

Build Id: 85a6bfe3-348f-4e63-8a88-b91009c3a4e0

Status: FAILURE

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

@lacroixthomas
Copy link
Copy Markdown
Collaborator

/gcbrun

Same issue that has been opened today

@agones-bot
Copy link
Copy Markdown
Collaborator

Build Failed 😭

Build Id: 4215f885-e5c9-4d1f-80a6-926a4fd1d1c5

Status: FAILURE

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

@markmandel
Copy link
Copy Markdown
Collaborator Author

Another flake - I reckon this is because of the upgraded Go version is causing some kind of difference in behaviour we weren't seeing before.

--- FAIL: TestControllerGameServersNodeState (0.10s)
    controller_test.go:88: 
        	Error Trace:	/go/src/agones.dev/agones/pkg/metrics/controller_test.go:88
        	            				/go/src/agones.dev/agones/pkg/metrics/controller_test.go:605
        	Error:      	Not equal: 
        	            	expected: &metricdata.Distribution{Count:3, Sum:3, SumOfSquaredDeviation:2, BucketOptions:(*metricdata.BucketOptions)(0xc000d869a8), Buckets:[]metricdata.Bucket{metricdata.Bucket{Count:1, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:1, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:1, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}}}
        	            	actual  : &metricdata.Distribution{Count:1, Sum:1, SumOfSquaredDeviation:0, BucketOptions:(*metricdata.BucketOptions)(0xc000d868e8), Buckets:[]metricdata.Bucket{metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:1, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}, metricdata.Bucket{Count:0, Exemplar:(*metricdata.Exemplar)(nil)}}}
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1,5 +1,5 @@
        	            	 (*metricdata.Distribution)({
        	            	- Count: (int64) 3,
        	            	- Sum: (float64) 3,
        	            	- SumOfSquaredDeviation: (float64) 2,
        	            	+ Count: (int64) 1,
        	            	+ Sum: (float64) 1,
        	            	+ SumOfSquaredDeviation: (float64) 0,
        	            	  BucketOptions: (*metricdata.BucketOptions)({
        	            	@@ -37,7 +37,3 @@
        	            	   (metricdata.Bucket) {
        	            	-   Count: (int64) 1,
        	            	-   Exemplar: (*metricdata.Exemplar)(<nil>)
        	            	-  },
        	            	-  (metricdata.Bucket) {
        	            	-   Count: (int64) 1,
        	            	+   Count: (int64) 0,
        	            	    Exemplar: (*metricdata.Exemplar)(<nil>)
        	            	@@ -147,2 +143,6 @@
        	            	    Exemplar: (*metricdata.Exemplar)(<nil>)
        	            	+  },
        	            	+  (metricdata.Bucket) {
        	            	+   Count: (int64) 0,
        	            	+   Exemplar: (*metricdata.Exemplar)(<nil>)
        	            	   }
        	Test:       	TestControllerGameServersNodeState
        	Messages:   	metric: gameservers_node_count, tags: [], values don't match; got: &{1 1 0 0xc000d868e8 [{0 <nil>} {1 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>}]}, want: &{3 3 2 0xc000d869a8 [{1 <nil>} {1 <nil>} {1 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>} {0 <nil>}]}
{"message":"Wait for cache sync","severity":"info","time":"2025-12-18T02:35:08.006298316Z"}
{"message":"unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"agones.dev\", Version:\"v1\", Resource:\"gameserversets\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}, ListOptions:v1.ListOptions{TypeMeta:v1.TypeMeta{Kind:\"\", APIVersion:\"\"}, LabelSelector:\"\", FieldSelector:\"\", Watch:true, AllowWatchBookmarks:true, ResourceVersion:\"\", ResourceVersionMatch:\"\", TimeoutSeconds:(*int64)(0xc0006c50f8), Limit:0, Continue:\"\", SendInitialEvents:(*bool)(nil)}}","severity":"error","time":"2025-12-18T02:35:08.007016927Z"}
{"message":"unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"agones.dev\", Version:\"v1\", Resource:\"gameserversets\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}, ListOptions:v1.ListOptions{TypeMeta:v1.TypeMeta{Kind:\"\", APIVersion:\"\"}, LabelSelector:\"\", FieldSelector:\"\", Watch:true, AllowWatchBookmarks:true, ResourceVersion:\"\", ResourceVersionMatch:\"\", TimeoutSeconds:(*int64)(0xc000a03968), Limit:0, Continue:\"\", SendInitialEvents:(*bool)(nil)}}","severity":"error","time":"2025-12-18T02:35:09.595846674Z"}
{"message":"unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"agones.dev\", Version:\"v1\", Resource:\"gameserversets\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}, ListOptions:v1.ListOptions{TypeMeta:v1.TypeMeta{Kind:\"\", APIVersion:\"\"}, LabelSelector:\"\", FieldSelector:\"\", Watch:true, AllowWatchBookmarks:true, ResourceVersion:\"\", ResourceVersionMatch:\"\", TimeoutSeconds:(*int64)(0xc000f98198), Limit:0, Continue:\"\", SendInitialEvents:(*bool)(nil)}}","severity":"error","time":"2025-12-18T02:35:11.240893779Z"}
{"message":"Wait for cache sync","severity":"info","time":"2025-12-18T02:35:13.117241643Z"}
{"message":"unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"agones.dev\", Version:\"v1\", Resource:\"gameserversets\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}, ListOptions:v1.ListOptions{TypeMeta:v1.TypeMeta{Kind:\"\", APIVersion:\"\"}, LabelSelector:\"\", FieldSelector:\"\", Watch:true, AllowWatchBookmarks:true, ResourceVersion:\"\", ResourceVersionMatch:\"\", TimeoutSeconds:(*int64)(0xc000012a38), Limit:0, Continue:\"\", SendInitialEvents:(*bool)(nil)}}","severity":"error","time":"2025-12-18T02:35:13.117728213Z"}
{"message":"Starting http server...","severity":"info","test":"TestMetrics_Endpoint_ExposesAllMetrics","time":"2025-12-18T02:35:14.221317353Z"}
{"message":"unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"agones.dev\", Version:\"v1\", Resource:\"gameserversets\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}, ListOptions:v1.ListOptions{TypeMeta:v1.TypeMeta{Kind:\"\", APIVersion:\"\"}, LabelSelector:\"\", FieldSelector:\"\", Watch:true, AllowWatchBookmarks:true, ResourceVersion:\"\", ResourceVersionMatch:\"\", TimeoutSeconds:(*int64)(0xc0008efe48), Limit:0, Continue:\"\", SendInitialEvents:(*bool)(nil)}}","severity":"error","time":"2025-12-18T02:35:14.423247844Z"}
{"error":"http: Server closed","message":"http server closed","severity":"info","test":"TestMetrics_Endpoint_ExposesAllMetrics","time":"2025-12-18T02:35:14.545124258Z"}
FAIL

@agones-bot
Copy link
Copy Markdown
Collaborator

Build Failed 😭

Build Id: 3175dd5b-a90c-42c0-8e46-650407db7255

Status: FAILURE

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

@markmandel
Copy link
Copy Markdown
Collaborator Author

/gcbrun

@agones-bot
Copy link
Copy Markdown
Collaborator

Build Succeeded 🥳

Build Id: d7a78a43-555b-4d96-8c87-fc5730e7d53d

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/4388/head:pr_4388 && git checkout pr_4388
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.55.0-dev-b0f4b49

@markmandel markmandel merged commit a1ec8a5 into agones-dev:main Dec 18, 2025
4 checks passed
@markmandel markmandel deleted the site/add-videos branch December 18, 2025 06:30
mnthe pushed a commit to mnthe/agones that referenced this pull request Mar 23, 2026
…dev#4388)

* Reorganize third-party content documentation and add content

- Create new articles.md to organize case studies and blog posts by year
- Add case studies from Bandai Namco, Sonic Rumble, Nintendo, and Gaijin Ent.
- Add blog posts from AWS and Google Cloud spanning 2018-2025
- Add podcasts from Level Design Podcast (2021) and FLOSS Weekly (2020)
- Add case study videos from PlayStation, Ubisoft, PUBG, and others
- Add tutorial presentations and screencasts for Agones
- Reorganize podcasts.md by year and fix markdown link formatting
- Adjust navigation weights for examples and libraries-tools sections

* Review updates.

* Warning on devcom video
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/documentation Documentation for Agones size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants