ホロアースのサーバーサイドの技術について
【執筆者紹介】 「 西根幸洋さん」 ポジション:メタバース事業本部エンジニア部マネージャー 入社時期:2023 年 10 月 業界歴:Web サービスやオンラインゲームの開発・運営に 11 年従事。主にサーバーサイド C# エンジニアとして活動し、個人として Microsoft MVP for Developer Technologies(2020-2022)を受賞。 |
はじめに
こんにちは、メタバース事業本部エンジニア部マネージャーの西根です。
ホロアースの開発の話といえば、Unity を使ったクライアント側の実装や、アバターやライブ演出などの話が注目されがちですが、今回はサーバーサイドで利用している技術の一部をご紹介させていただこうと思います。
ホロアースの開発の裏側を知りたい、開発に参加してみたいと思っている方の参考になれば幸いです。
開発に参加してみたいと思った方はこちらから是非ご応募ください!
目次 |
・使用しているプログラミング言語について |
使用しているプログラミング言語について
Go 言語を中心に、PHP、C#、TypeScript、Rust など、複数の言語を採用しています。
ホロアースのサーバーは単一のアプリケーションではなく、分割された複数のアプリケーションによって構成されており、アプリケーションごとに使用する言語が異なっています。
▼分割されたアプリケーションの種類
・サンドボックスゲーム
・エントランス・シティなどのコミュニケーションロビー
・アカウントや決済などを扱う基盤システム
・etc
ホロアースで最初に開発を開始したサンドボックスゲームのサーバーサイドは PHP を採用しています。
その後に開発を開始したコミュニケーションロビーや基盤システムでは Go 言語を採用しており、現在では Go 言語がサーバーサイドの開発の中心になっています。
その一方では今まで使用していなかったプログラミング言語を適材適所で採用することもあります。
たとえば現在開発中の新しいシステムでは、サーバーサイドでインゲームのロジックをリアルタイムに扱う必要がありましたが、そこではサーバーサイドにも C# を採用することで Unity を扱う C# エンジニアがクライアントとサーバーを一貫して開発可能な方針を選択しました。
その他の言語については TypeScript は Cloudflare 上のリソースと連携して動作する Cloudflare の FaaS(Cloudflare Workers)で利用したり、Rust は現在開発中の通信基盤で採用しています。
クラウド環境や各種利用サービスについて
ホロアースのクラウド環境は主に AWS を使用しています。AWS の主な利用サービスは EKS、ECS、EC2、Lambda、Aurora、DynamoDB、ElastiCache などです。
ストレージや CDN には S3 と CloudFront も利用していますが、それらの多くの部分は Cloudflare に移行することでコスト削減を果たしました。
モニタリングツールには Datadog、データ分析基盤には Snowflake を導入しています。
カバーは Web サービスやゲーム開発を専門とする会社ではありませんが、そういった業界の会社様と比べても見劣りがしない環境や開発体制の整備を進めています。
Cloudflare について
Cloudflare は CDN サービスとして以前から有名でしたが、最近は CDN 以外にも様々なサービスが提供されています。
ホロアースでは CDN を Cloudflare に移行したことをきっかけとして、Cloudflare を積極的に活用しようとしています。現在は CDN 以外にも Cloudflare Stream、Cloudflare Images、Cloudflare Workers などを利用しています。
この中でも Cloudflare Stream は特にヘビーに利用しています。年末年始や EXPO で行ったホロアース内の同時視聴イベントは Cloudflare Stream によって実現しています。
私は Cloudflare Stream はカバーに入社してから初めて触れたのですが、動画配信が非常に簡単かつ低コストに実現できるサービスで驚きました。
動画配信サービスの開発に興味がある方は一度触ってみていただくことを是非お勧めします。
エンジニア募集中です
今回は今まであまり表にでてきていなかった、ホロアースのサーバーサイドの技術スタックをご紹介させていただきました。
ホロアースではこうした環境でプロジェクトを一緒に進めてくれる仲間をまだまだ募集しています。
以前の記事で CTO の福田がメタバースの技術領域を「世界に関する技術の総合格闘技」と表現していましたが、これは本当にその通りで、ホロアースの開発は一筋縄ではいかないことも多くありますが、そのぶんエンジニアとしてのやりがいや楽しさも非常に大きなプロジェクトです。
サーバーサイドエンジニアだけでなく、Unity エンジニアやテクニカルアーティストも募集していますので、興味がある方は是非求人ページからご応募ください。
一緒にホロアースの開発に挑戦していきましょう!