ゲームサーバー上でのマッチメイキングを想定したフレームワーク minimatch を開発した。 すでにこの分野ではOpen Matchというオープンな実装があり、活用例も世に出てきている。 そんな中でなぜ今新しく minimatch を作ったのか。
日記アプリとして Day One を使い始めた。 それ以前も汎用的なノートアプリであるEvernoteとBearで日記をつけていたが、日記は日記に特化したアプリに任せたほうが良さそうだと考え、Day Oneへの移行を決めた。 そこで、過去の日記をDay Oneに取り込みたくな…
Agonesではゲームセッションに利用するサーバーを事前に割り当て(Allocate)する必要がある。 小規模なサービスであれば欲しいときに割り当てをする、それだけで十分動くが大規模・高頻度な割り当ての実現には工夫が必要だ。
リアルタイムな通信を行う際に何かと活躍するプロトコル WebSocket。 .NETには System.Net.WebSockets として組み込まれており、簡単に使い始めることができる。 しかし、WebSocketにおいて「切断」という概念は取り扱いに注意が必要だ。 本記事ではSystem.N…
ここ最近で再び注目されている分散SNSのオープンな仕様として有名なのが ActivityPub だ。 ActivityPubのアカウントに対してもIncoming Webhookのような入口があれば、ActivityPubの仕様を知らなくても容易にBOTアカウントの運用ができて面白いのではないか…
Kubernetes の世界では HPA (Horizontal Pod Autoscaler) や Cluster Autoscaler によって負荷に応じて動的にリソースを増減できる。 では、 Agones においても同様に動的なリソース増減ができるのか?その方法と考慮事項を探っていく。
Kubernetes上でゲームサーバーをホストする Agones を用いた環境において、CPU負荷にばらつきがあるゲーム群を動かしたいという事例があった。そこで、それぞれのゲームに対する適切なCPU割り当てを決定するために独自の工夫を行ったので、その実装について…
Kubernetes v1.22 では結構多くのAPIが廃止1され、慎重なアップグレードが求められる。 その補助として、最近出たGKEの新機能 Deprecation Insights を使うと便利だ。 v1.21 等のGKE clusterで廃止予定のAPIが使われていないかチェックしてくれる。 あるGKE…
サーバーアプリケーションを開発していると、現在動いている環境がクラウドか、ローカルかで処理を分けたい場合がある。 自分はよくGCP (Google Cloud Platform) を利用しているが、今動いているのがGCP上なのか判定したい場面が何度かあった。 クラウドの場…
クラウド上でゲームを動かす場合、データ(ゲーム本体のデータ・セーブデータ)をどう管理するかは重要な課題のひとつだ。 そこで、自分が開発に携わっているOOParts のデータ管理を支える技術について紹介する。 ノベルゲームのセーブ事情 OOPartsで提供さ…
Kubernetes上でゲームサーバーを扱うframeworkのAgones は ゲームサーバーに直接(TCP or UDPで)接続する 機能を持つ。 ゲームサーバーの実体はPodだが、なぜPodへの直接接続が必要なのか、そしてAgonesがどのように直接接続の機能を提供しているかを読み解…
さいきん fly.io というサービスが面白くて触っている。 これはHerokuやCloud Runに近いPaas (CaaS?) で、Dockerfileとちょっとしたconfig fileを用意するとアプリをインターネット上にデプロイできるサービスだ。 個人的にすごい(面白い)と思った特徴とし…
Prometheus exporterの動作を検証したい場合など、ローカル環境のKubernetes(minikube)上にPrometheus + Grafanaを立てたい場合がある。Grafanaはデフォルトでユーザー認証が入っているが、ローカル環境では自分しか触らないので認証が邪魔なときがある。 …
オンラインゲーム開発などで独自プロトコルのデータを読み書きするTCPサーバーを作ることが時々あるが、 Rustのtokio を使うとそのようなTCPサーバーがとても簡潔に記述できる。 独自プロトコルといっても様々だが、TCPのようなストリーム指向の経路の場合あ…
大きさの異なる画像がギャラリーのように並んでいて、それぞれの画像がぴったり敷き詰められているレイアウトが実現したくてやり方を調べた。 FlickrのExploreページのようなイメージ。 https://www.flickr.com/explore 昔はこういったレイアウトの実現は複…