「Cyllista Game Engine」開発レポート テクニカルディレクターが開発の進捗や設計のこだわりを語る

サイゲームスが2016年より自社開発を行っているハイエンドコンソール向けゲームエンジン「Cyllista Game Engine」。よりクオリティーの高いゲーム開発を実現するために、日々着々と進化を遂げています。今回はテクニカルディレクターに現在の状況や開発への想いについて聞きました。

「Cyllista Game Engine」テクニカルディレクタージュンジ
gutenberg-examples
大手ゲーム開発会社でテクニカルディレクターとしてゲーム開発やゲームエンジン開発などに携わった後、2016年よりサイゲームスに合流。現在は「Cyllista Game Engine」のテクニカルディレクターを務める。

エンジン開発の集大成
「Cyllista Game Engine」に込めた想いとは

最初に、経歴や現在の担当業務などについて聞かせてください。

私はゲーム業界に入って20年になります。サイゲームスは2社目で、現在は「Cyllista Game Engine」開発のテクニカルディレクターを務めています。前職でもずっと内製のゲームエンジンの開発に携わってきました。その後、サイゲームスで内製ゲームエンジンによるコンシューマーゲーム開発をスタートする話を聞き、とても興味があったので参加しました。入社後は前任者とともに一から開発を開始しました。

「Cyllista Game Engine」開発の経緯を教えてください。

サイゲームスでは「最高のコンテンツを作る会社」というビジョンを掲げているので、コンテンツを作るためのツールも最高でなければならないと考えています。汎用のゲームエンジンではどうしても越えられない壁があり、そのタイトルに合わせて作られたゲームエンジンだからこそ到達できる領域があるので、内製にこだわっています。

「Cyllista Game Engine」開発のマイルストーンはどのようになっているのでしょうか?

エンジンの開発は2016年からスタートしました。前身となるエンジンやフレームワークはなく、本当に何もない状態からのスタートでした。最初の3年間は、ゲームを作れるレベルまでエンジンのフレームワーク開発に専念し、それ以降はエンジンの開発とゲームタイトルの開発とを並行して進めています。

現在はどのぐらいまで開発が進んでいますか?

現在、「Cyllista Game Engine」はゲームタイトルを作れるレベルまで到達し、洗練されてきています。ただ、より良くするためにまだまだできること、やりたいことがたくさんありますので、今はそれらに取り組んでいる状況です。

「Cyllista Game Engine」の設計思想や詳細についてお聞きします。どのようなコンセプトで設計をしたのでしょうか?

はい、まず基本的な目標として、開発者が最高のパフォーマンスを出せることと、ゲームコンソール(※)が最高のパフォーマンスを出せることを目指しています。つまり、「Cyllista Game Engine」によって、制作者が高いパフォーマンスを発揮すると同時にエンジンの実行効率も高くなることが大切だと考えています。汎用エンジンを使ってゲームタイトルを開発していると、どうしてもエンジンの設計思想と合わないギャップが生じます。そのギャップを無理矢理にでも埋めるか、ゲームタイトルの仕様で妥協しなければなりません。「Cyllista Game Engine」を内製することにより、ゲームタイトルの要求する仕様と制作者の希望に沿った開発を実現できるのが最大のメリットだと思います。

※ ゲームコンソール……家庭用ゲーム機やPCなど、主にビデオゲームをプレイするための装置の総称

そういった設計思想には、過去の経験などが踏まえられているのでしょうか?

そうですね。過去の反省を踏まえ、成功した点はより良く、悪かった点は改善するように作っています。例えば、過去にイテレーションの効率に対する配慮が足りておらず、ゲーム開発の最終段階にまで影響が及ぶ場面があったんです。そうした経験を踏まえて、プログラム実行中にC++のコードを更新可能にする「Runtime Compiled C++」を取り入れてイテレーション効率を上げるなどの機能を整備していきました。

※ イテレーション……「設計」「開発」「テスト」「改善」などの一連のサイクルを回すこと

経験を踏まえた設計思想だったんですね。特定の工程や作業に向けて組み込んだ「Cyllista Game Engine」ならではの設計があれば教えてください。

例えば、「Cyllista Game Engine」はオープンワールドに対応しており、広大なマップを効率良く作るために様々な工夫をしています。もちろん重要な要素はアーティストが作りますが、それ以外の部分には手間をかけず、アーティストが決めたルールでプロシージャル(※)に生成することができるようにしています。

※ プロシージャル……数式や処理を組み合わせて、自動で画像の生成やアニメの制御などの操作を行うこと

▲「Cyllista Game Engine」でのオープンワールド編集(1)プロシージャルに植物モデルを生成することができる
▲「Cyllista Game Engine」でのオープンワールド編集(2)道の移動に合わせて木や地面のマテリアルが自動的に調整される
▲「Cyllista Game Engine」でのオープンワールド編集(3)時刻に合わせてライティングも変化する

なるほど。アセット管理や組み込み関連のツールについてはどうでしょうか?

サイゲームスでは、DCCツール(3DCGを制作するための基本ツール)としてMayaを使っていて、Mayaからボタン一つでエンジンにインポートできようになっています。また、ゲーム実行中でも編集した結果を即座に反映できます。さらに、アセットの更新をチームメンバーに素早く共有する仕組みも実装しました。例えば、あるアーティストがアセットを更新すると、共有用のリンクが発行されます。そして、別の開発者がそのリンクをクリックすると、「Cyllista Game Engine」のアセットシステムの機能により更新状態を即座に反映できるようになっています。また、コードの共有についても、アセットの同期やエンジンのビルドを高速化することで気軽に更新できるようにしました。

このような「作成したものを開発者間で素早く共有する仕組み」については、特に力を入れて開発しました。エンジンのアップデートも頻繁に行っていますが、エンジンのコードを修正したときにはまずサーバー上でテストが実行され、問題がなかった場合は安定版ビルドとして全開発者が取得可能になります。

ゲームタイトルの開発中もエンジンはガンガン更新しているんですね!

もうガンガンですね!(笑)一般的には1か月に1回程度の頻度でエンジンを更新する考え方もあると思いますが、「Cyllista Game Engine」の場合はゲームタイトルと一緒に開発し続けています。エンジンを更新して、数分後にはゲームタイトルの開発者が利用できるので、1日に何回もエンジンが更新されています。

アセットのファイルフォーマットについてはFBXなどの汎用フォーマットではなく、独自のものを使っているとのことですが、その意図はなんでしょうか?

独自フォーマットを使用することでDCCツールからのアセットのエクスポートを高速化することを意図しています。ちなみに「Cyllista Game Engine」は汎用フォーマットにも対応していまして、たとえばジオメトリキャッシュ(※)を使う場合など、用途に応じてフォーマットを使い分けられるようにしています。

※ ジオメトリキャッシュ……Houdini などのDCC ツールで生成した複雑なメッシュの変形の過程を、メッシュのリストとして扱うこと。

サイゲームスのDCCツールはMayaがメインとのことですが、HoudiniやSubstance 3D Painterといった他のDCCツールとの連携もしているのでしょうか?

色々検証しましたが、オープンワールド制作を Houdini上で試行錯誤してエンジンにエクスポートするというのはイテレーション効率が悪いという結果になりました。ですので、地形の素材となるデータを Houdiniで作って「Cyllista Game Engine」で試行錯誤ができるように実装しています。Substance 3D Painterについてはアーティストが頻繁に使うので、Substance 3D Painterの中で「Cyllista Game Engine」のシェーダー(陰影処理を行うプログラム)のプレビューができるようにしています。

コミュニケーションや情報発信を大切に
心理的安全性を高めるチームづくり

「Cyllista Game Engine」の開発チーム(以下、Cyllistaチーム)はどのぐらいの人数で、どういった体制になっているのでしょうか?

現在はエンジニアが約40名います。エンジンのモジュールごとに、基底となる低レイヤー部分を担当するコアをはじめ、グラフィックス、アニメーション、フィジックス、サウンド、ネットワーク、エディタ、ツールといった班が作られています。

エンジンの開発方針はどのような体制で決めているのでしょうか?

開発の大きな方針についてはチームと話し合いながらも私が決めています。グラフィックスなどの班の方針については各班で話し合ってもらい、班のリーダーが決めている感じです。やはり専任のスタッフの方がその分野を熟知しているので、私としては基本的に細かいことには口を挟まないようにしていますね。

週1回のペースでCyllistaチーム全体のミーティングを行っており、そこで今取り組んでいることやこれからの計画を共有しています。このミーティングは班のリーダーが出席しますが、参加したいチームメンバーは自由に参加できますし、議事録も全員に共有しています。開発に関することはすべてオープンにしていますし、知らないことがいつの間にか決められている、といったことはありません。

チームメンバーの専門性と自主性を尊重しているんですね。ちなみに、ミーティングや普段の業務は対面なのでしょうか?

今は普段の業務も含めてオンラインが多いですね。Cyllistaチームのルールとして、オンライン業務中でもいつでも、誰に対しても事前に断りを入れずに通話して良いし、立て込んでいれば無視しても構わないとしています。コミュニケーションを取るための最初のハードルを下げたいと思っていまして。コロナ禍もあり一度も直接会ったことがないスタッフもいますが、オンラインの活用で問題なく一緒に仕事ができています。大阪スタジオとのコミュニケーションもスムーズです。

それは自由で良いですね。他に業務で工夫していることはありますか?

コミュニケーションのインフラとしてはSlackを使っていますが、全員が参加していて、困ったときに相談ができるチャンネルを1つ用意しています。そのチャンネルのハドルには必ずエンジン開発のスタッフが常駐しており、困ったらいつでもすぐに話しかけられる環境になっていますね。

※ ハドル……Slackのチャンネルから1クリックで通話を始めることができ、同じチャンネル内のメンバーならば誰でも自由に会話に参加できる仕組み

相談を受けたときには、その場にいるスタッフが問題を解決したり、他のスタッフを呼び出して一緒に解決したりしています。

通話もそうですが、コミュニケーションを円滑にすることを大事にしているのですね。ところで、Cyllistaチームには新卒のスタッフも配属されていますが、アサインについて配慮していることがあれば教えてください。

新卒スタッフは最初に2か月ほどコンシューマー向けの研修でプログラミングの基本を学び、チームでの働き方について体験してもらいます。その後、チームに配属されてからOJTやチームごとの個別研修に進みます。新卒スタッフは比較的ゲームタイトルに関わりたい方が多いですが、「ゲームエンジン開発がしたい!」と入社してくるスタッフもいますので、そういった方々がCyllistaチームに配属されています。

スタッフのスキルアップの取り組みについて、勉強会などはあるのでしょうか?

Cyllistaチームのスタッフには各自の専門分野だけでなく、幅広い分野の知識やスキルを身に付けてもらえたらと考えています。そこで週に1回、約1時間の「Cyllista発表会」という会合で、各自の成果や共有したいことを発表できる場が用意されています。以前は対面でやっていましたが、今はオンラインです。この発表会はCyllistaチーム向けなのですが、全社にオンラインセッションのURLが共有されていて、誰でも参加できるようになっています。実際、色々な部署の人が参加しています。

▲「Cyllista発表会」の様子

「Cyllista Game Engine」は社内にはオープンにしていますし、発表会の資料や録画も全スタッフが閲覧できるようにしています。
また、グラフィックス関連についてはとくに高度な技術の勉強が必要だということもあり、グラフィックス班独自の勉強会も不定期に開催しています。

▲社内で共有されている「Cyllista Game Engine」のユーザーガイド

どちらも面白そうですね!発表者は持ち回りで決めるのでしょうか?

いえ、そのタイミングで発表するものがあるスタッフがやる、といった感じです。だいたい進捗ミーティングのときに各班の様子を見て、「Cyllista発表会」で誰がどういう発表をするかを決めています。忙しい班には無理をさせないように心掛けています。

最高のエンジンで最高のゲームを

「Cyllista Game Engine」のさらなる発展に向けて、将来的な計画を教えてください。

やりたいと考えていることはたくさんあります!
ただ、エンジンはあくまでゲームを作るための手段ですので、「Cyllista Game Engine」で面白いゲームタイトルを次々とリリースしていくことが目標です。ですから、今後もゲームタイトルの目標に合わせつつ、最高のゲームエンジンを整備していくつもりです。

Cyllistaチームをさらに拡充するために、どんな方に来てほしいですか?

そうですね、ゲームが好きで、特に特定の技術分野へのこだわりを持っている方にはぜひCyllistaチームに加わっていただき、一緒に仕事をしたいと考えています。現状、具体的には、開発環境をより良くしていくビルドエンジニアやツール開発が得意なエンジニアの方からのご応募があれば非常にうれしいですが、他のセクションも大歓迎です。
ゲームが好きであれば、他業種出身の方も大歓迎です。年齢的にも幅広く求めています。そういった方々がやりたいことを追求できる最高の環境をご用意できます。


以上、「Cyllista Game Engine」についてのご紹介でした。
サイゲ―ムスでは現在一緒に働く仲間を募集しています。ご興味を持たれた方はぜひご応募ください。

Cyllistaチーム採用