元記事はこちら
今回は、CreateTeamのエンジニアである桐山さんにお話を伺いました!
プロフィール
Ryuichi Kiriyama/桐山 竜一電気通信大学在学中にゲーム会社のビサイドにてプログラマーのアルバイトとして参加。大学卒業後、フロム・ソフトウェア、ガンホー・オンライン・エンターテイメントにて複数の家庭用ゲーム開発プロジェクトのサーバ関係の業務に携わった後、2021年7月、クラスターに入社。趣味はゲームで、なかでも音ゲーや2Dアクションゲームが好き。ゲームは遊ぶだけでなく個人で作るのも好きだが、ゲーム作りよりゲーム作りのための土台開発に熱中してしまうのが悩みどころ。
―まずは、クラスターに入社されたきっかけから教えてください。
前職はガンホー・オンライン・エンターテイメントで、大規模なゲーム開発プロジェクトを担当していました。多くの人に作品を届けられる反面、世にでるまでに数年かかるのが当たり前で…。次第に“いいものをもっと早くユーザーに届けたい”という葛藤を抱くようになり、新しい道を模索するようになりました。
転職活動では働く業界を変えることも視野にいれつつ動いていたのですが、とはいえ今まで10年間ゲーム業界で働いており、文化が極端に異なると馴染みにくいかも…と思っていました。
そんな時にふと、ネット上での知り合いが働いていた「クラスター」を思い出したんです。
元々、Oculus Rift DK1を個人輸入するなどVRに興味を持っていたこと、当時コロナ禍で外出がままならない状態でVRSNS上のコミュニケーションにあたたかみを感じたこと、clusterはCreator Kitを提供したりゲームジャムを主催するなどクリエイターへ向けたサービスという側面があること、などから、「クラスター」はまるで自分の興味・関心が一つにまとまった会社のように感じました。
―選考過程でとくに印象に残っていることは?
それはやっぱり、2日間の体験入社です。これは選考の一環として実際に2日間会社で働いてみるという機会で、自分の時はリモートで実施されました。コーディングは軽いリファクタリング程度だったのですが、その後行われたディスカッションでは現状のclusterの課題とそれを今後どう改善していくかを様々な観点から議論でき、とても充実した時間でした。
それ以外にも様々な職種の方と雑談タイムに交流したり、最後に成果発表をcluster上で行うことで社風やメンバーの雰囲気も伝わりましたし、なによりクラスターで働く自分を容易に想像できました。
ここだけの話、体験入社中に推しが卒業を発表するという大変ショックな出来事があったのですが、そういう感情を素直に共有したところ、みんなにやさしく受け止めてもらえたということがあり、ここならありのままの自分で働けるなと感じました。
(注: 現在体験入社は一部職種に限定して実施しています)。
クラスターの選考って、一方的に質問されて答えるのではなく<相互理解>なんですよ。
人事をはじめ、役員やメンバーも私に興味を持って“対話”をしてくれたというか。そこも入社を決めた理由のひとつです。
―現在の仕事内容を簡単に教えてください。
Platform事業本部CreateTeamでエンジニアをしています。入社後に携わったのは、AvatarMakerのバックエンドやリアルタイム通信の改善など。現在はユーザが通信環境によらず快適にclusterを利用できるようにするための開発ルール作りやモニタリングなどの取り組みを担当しています。主に使用しているプログラミング言語は、Go(server)とC#(Unity Client)です。
―プロジェクトの進め方を教えてください。
基本的には、
(1)PM-EM間でタスクbacklogから優先度が設定される(2)アサインが決まったら設計(design doc)を書いて レビューしてもらったり、関係者を集めてキックオフMTGを実施する(3)開発〜バグバッシュ(4) QA〜リリース(5)結果分析〜振り返り
という流れで案件を進めていきます。進行中は実装方針から細かいtipsまで、SlackやDocsを活用して議論を重ねます。基本はみなリモートですが、物理的な距離を感じないほど進行はスムーズです。
社員の同士の仲はかなりいいと思いますよ。エンジニアはもちろん、職種や部署問わずワイワイやっている印象です。Slackでは仕事以外の雑談で盛り上がることも多いですし、夜な夜なDiscordで語り合うことも。“クラスターをどうしたい”や“自分がどうなりたい”なんて話を照れずにできるのも、クラスターならではです。
―働くうえで苦労したこと、悩んだ経験があれば教えてください。
そうですね…一番苦労したことは、リアルタイム通信に関するデバッグでしょうか。「cluster」では3D空間上のアイテムや状態を各クライアントに同期しており、このためには複数のクライアントとサーバが協調して動作する必要があります。ある時、アイテムのOwnershipに関するとあるバグを修正することになったのですが、原因がクライアントとサーバどちらにあるのか、どういう操作が発生条件となっているのか、といった調査にかなり苦労した覚えがあります。結局、その時はなんとか発生条件を絞り込めたため、そこから原因を特定して修正することができました。今後同様の問題があった時に速やかに調査を行えるようにするため、たとえばサーバのメモリ内にある状態を可視化するなど、デバッグをしやすくする取り組みを検討しています。
―個人としてのミッションをお聞かせください。
「いかにリリース速度を上げられるか」に重きを置いています。ゲーム開発では納得いくところまで作り込んでドーンと出す、という傾向が強かったですが、いま求められているのは、“まず出して徐々にブラッシュアップ”するスタイル。どちらもユーザーファーストな点に変わりはないですが、個人的には現在のスタイルのほうがモチベーションに繋がっています。よりスピード感を持ってユーザーに届けるためにはどの機能を残し、どこを絞ればいいのか……を試行錯誤する日々です。
―入社して気付いた、クラスターならではの強みや魅力とは?
圧倒的に、開発スピードが早いことですね。リアルタイム通信を司る処理をroom serverとして社内で実装するなど、コアとなる技術を自社でおさえているところや、ドキュメント文化、プロダクトだけでなくワークフローに対しても改善のイテレーションをガンガン回している点も大きな強みだと思います。“サーバエンジニアがUnityやC#も書く”といったようにチャレンジを称賛してもらえる文化も魅力的ですね。
―今後、どのような方と一緒に働きたいですか?
epicのオーナーをする機会など、クラスターでは主体性を求められる場面も多いです。“言われたからやる”ではなく、前向きに行動できる方のほうが向いていると思います。また、自分なりの考えを育みつつさまざまな価値観を許容できる、ある種の“素直さ”も必要でしょうか。プロジェクトを進行する際、周囲と密にコミュニケーションをとりながら合意形成をとる必要がありますが、そこを自分の思いだけで押し切ってしまうと摩擦が生まれやすいですし、結果的にチームで良いものを作れません。互いにリスペクトし合いながら、組織もプロダクトも高め合っていける関係が理想ですね。
※epicについてはこちらの記事で詳しく説明しています。
技術的な観点でいうと、今までゲーム開発で培ってきたスキルはそのまま活かせていますし、同僚にはゲーム、WEB、VRなど様々なバックグラウンドを持つ方が集まっています。UGCメタバースプラットフォーム開発という技術の総合格闘技で自分の得意を存分に発揮したい!という方に是非来ていただきたいです。
ー最後にクラスターで働く醍醐味、やりがいがあれば教えてください!
「cluster」の特徴として、対応プラットフォームが幅広い点、ワールドやアバターなどのコンテンツをユーザが作成・アップロードできる点があります。また、各種プラットフォームで多種多様なコンテンツに対応するためには解決しないといけない技術的な課題もたくさんあります。ですが、それらを解決できたときには、とても達成感や充実感のようなものを感じることができると思っています。ユーザーの方の反響や作られたコンテンツは、いつも励みになっていますし、我々の想定の上をいくような使い方をされると「おお、まさかそう使うとは!」とチーム内で盛り上がっています。