メタバース開発におけるバックエンドエンジニアの仕事

こんにちは!クラスター株式会社でソフトウェアエンジニアとして働いている @kaznishi です!

クラスターに入社するまではいわゆるWebサービスを作る会社に勤めていました。
その中で私は、分類するならばサーバーサイドやバックエンドのエンジニアとしてAPIを実装する仕事に主に携わっていました。

今回の記事では、メタバースプラットフォームを開発しているクラスター社で私が携わっている仕事の紹介を通して「メタバースの分野にチャレンジしたいが自分のスキルが通じるか不安だ」と感じている人達の背中を押すことができたらと思います。

クラスター社での幅広いソフトウェアエンジニアの仕事

クラスターの社内には多くの「ソフトウェアエンジニア」が在籍していますが、人によってやっていることは様々です。

サーバーサイドのシステムをつくっている人、iOSやAndroidなどのモバイルクライアントのアプリをつくっている人、Unityでclusterの空間が動く土台をつくっている人、clusterの空間に入るまでの導線であるWebクライアント部分をつくっている人etc...

専門で得意領域を担当している人もいますし、複数領域をまたがって担当している人もいます。
このように、クラスター社では「ソフトウェアエンジニア」と一言にいっても幅広い仕事があります。

私は現在、サーバーサイド領域のバックエンドAPIの実装を担当したり、開発プロジェクトの進行に責任を持つepic ownerを務めたりしています。
epic ownerの役割については下記の記事で解説しているのでそちらをご参照ください。
今回はサーバーサイド領域の仕事について紹介します。

tech-blog.cluster.mu

Webサービスの開発経験を活かせる「API serverをつくる仕事」

クラスター社のサーバーサイドの仕事は大きく2つに分類できます。
room serverをつくる仕事とAPI serverをつくる仕事です。

room serverとはcluster内で3Dで表現された空間を各クライアント間でリアルタイムに同期する体験の根幹を担うリアルタイム通信サーバーです。詳細については下記の記事で解説しているので、そちらを読んでいただければイメージが掴めるかと思います。

tech-blog.cluster.mu

この記事では私が携わっているAPI serverの仕事を紹介します。
私はこれまでワールドクラフトストアやアクセサリーストアといった機能の開発に携わってきました。
ワールドクラフトストア、アクセサリーストアはクリエイターが制作したアイテムを商品として出品できる機能です。
それぞれのストアの概要については下記の動画・記事をご覧ください。

youtu.be

note.com

note.com

ストア開発においては、例えば以下のようなAPIが必要となりました。

  • 商品を出品するクリエイター向け機能
    • 自分が作成した商品情報取得(一覧や詳細)API
    • 商品作成/編集API
  • 商品を事前確認する運営向け機能
    • 商品の事前確認情報取得API
    • 商品の事前確認ステータス操作API
  • 商品を購入するプレイヤー向け機能
    • 商品情報取得(一覧や詳細)API
    • 商品購入API

管理画面 API

この中で、クリエイター向け機能と運営向け機能はWebサービス上の管理画面として実装されており、このあたりはWebサービスの開発を行ったことがある人ならば仕事内容の想像がしやすいと思います。

クリエイター向け管理画面(cluster.mu上の商品管理機能)と運営向け管理画面(admin)は別サービスとして稼働しており、API serverも分かれています。API serverは互いに情報を通信しあっており、下記のような構成になっています。

public API serverは管理画面フロントエンドから直接コールされる外部公開サーバであり、internal API serverはcluster.muとadminが互いに通信し合うための非公開サーバです。
internal API serverは、クリエイター向け機能の商品作成/編集APIの処理の中でcluster.mu側からadmin側で商品情報を通知するのに使われたり、運営向け機能の商品事前確認ステータス操作APIの処理の中で事前確認結果をcluster.mu側に通知するのに使われたりします。

3D空間アプリ向け API

プレイヤー向け機能についてはルーム内を描画している3D空間アプリクライアントからコールされるAPIであり、想像しにくいと思いますので少し詳しく解説します。

プレイヤー向け機能として商品情報取得APIと商品購入APIを挙げました。
想像しやすくするためにアプリ内のどの画面でAPIがコールされているかをスクリーンショットしたものを掲載します。

商品情報取得APIがコールされている画面(ワールドクラフトストア(開発環境です))

商品購入APIがコールされている画面(ワールドクラフトストア(開発環境です))

商品情報取得APIと商品購入APIで登場するコンポーネントを下図に示します。

cluster.mu API serverは前のセクションで登場したcluster.muのpublic API serverと同一です。
商品情報取得APIは単純なAPIであり、DBにアクセスして情報を取得してクライアントに返すだけの処理を行っています。いわゆるWebサービスと何も処理に違いはありません。
商品購入APIについてはDB上で購入のレコード操作を行う、という処理のほか、購入により変化した所有権情報をroom serverに通知する処理が行われています。このroom serverへの通信が存在するのがWebサービスとは違う点です。

メタバースは技術の総合格闘技

メタバースと言われると3Dの空間やアバターが思い出されますが、その中身を見てみるとゲーム系の技術はもちろん、Webサービス系の技術まで様々な業界の技術が使われています。
前セクションではAPI serverをつくる仕事について、実際に私が関わってきたAPIの事例に触れながら紹介してきましたが、ほとんどWebサービスの開発と何も変わらないことが分かると思います。

私はWebサービス系開発の経験しかない状態でクラスターに入社しましたが、これまでのWeb開発の経験を活かして毎日楽しく開発を行っています。そう考えると、メタバースは様々な業界の技術を組み合わせた総合格闘技と言えるでしょう。

Web業界からメタバース開発に挑戦してみたいあなたの応募を待っています。

recruit.cluster.mu