2019 13 Feb

【プロトタイプ開発の裏側】独自フレームワーク「Chimera」の利点と今後の展望、そして"ものづくり"に対するスタンスをエンジニアが語る

【プロトタイプ開発の裏側】独自フレームワーク「Chimera」の利点と今後の展望、そして”ものづくり”に対するスタンスをエンジニアが語る

  • このエントリーをはてなブックマークに追加

2019.02.13

  • Facebookでシェアする!
  • Twitterでツイートする!
  • はてなブックマークでブクマする!

大型メジャーゲームタイトル開発を担うDeNAの「ゲームコンテンツ事業部 第二開発部」は、プレイヤーの期待値を大きく超える、高品質で魅力にあふれたゲームを生み出すことをミッションとしています。

そのプロトタイプ開発のベースを支える基盤 「Chimera(キメラ)フレームワーク」 を独自で構築した、エンジニアの宇塚貴紀と大久保新樹に、機能や特徴、導入する利点などについて聞いてきました。

宇塚貴紀
ゲームコンテンツ事業部第二開発部企画開発グループ

2014年新卒入社。プロトタイプ向けのゲーム開発、大規模なシミュレーションRPGや3Dマルチプレイアクションゲームの開発を経て、現在はリードエンジニアとして新規タイトルの開発に従事。

大久保新樹
ゲームコンテンツ事業部第二開発部技術第二グループ

2015年にDeNAに入社。20年ほど前から家庭用ゲーム機向けのゲーム開発に携わっており、現在はアプリや基盤の開発を担当。

丁寧な設計よりもシンプルかつスピーディーなプロトタイプ開発

――まずは、お二人が所属されている第二開発部のミッションについて教えてください。

宇塚貴紀(以下、宇塚):第二開発部は、メジャータイトルを手がけるプロフェッショナル集団として、プレイヤーが求める期待を真っ向から超えられるよう、魅力的で品質も高い大規模タイトルを内製で開発する、というのが主なミッションです。

大久保新樹(以下、大久保):そのようなタイトルは大規模になるので、数打つわけではなく、1つ1つ注力して開発しています。

――その中でお二人の役割は?

宇塚私はコアロジックからUIや演出などまで、フロント全般を開発しています。いかにプレイヤーが気持ち良くゲームに触れるか、リードエンジニアとしてチームのデザイナー、プランナーと相談しながら、私達が目指すおもしろさやカッコ良さを実現させていくことが、主な仕事になります。

大久保:最近は主にゲーム開発のベースとなる部分の開発をしていることが多いです。後ほど紹介するDeNA独自のフレームワーク「Chimera(キメラ)」(以下、「Chimera」)も、プロトタイプを早く組み上げるためのフレームワークです。

――ゲームのプロトタイプ開発で心がけていることを教えてください。

宇塚長期的に利用する機能や運用ツールは、機能を足したくなったときのために拡張性を作っておこうという、先を見据えた準備が必要だと思っています。

そこができていないと、開発メンバーが使いにくかったり、時代の流れに合わせた付加価値を出すことができなくなり、修正コストも大きくなって、自分以外のメンバーに迷惑をかけてしまいます。

私自身、1~2年以上開発した大規模なプロジェクトや個人でゲームを開発してきた経験の中で、先を見据えた拡張性が本当に問題だと感じています。プロトタイプ開発の場合でも、以前は先を見越して丁寧に作ることを良しとしてきました。

ですが、プロトタイプ開発って「こういう風に切り替えたほうが面白いよね」とか「この機能作ったけど全部必要なかった」といった想定外の変更が頻繁に入るんです。

あるメンバーのアイデアを試した結果、またそれにより全く新しい別のアイデアが生まれるということもよくありました。そういう場合、1つ目のアイデアを実装するときに組み立てた設計やクラス構造通りでは、2つ目のアイデアを実現しにくい、というケースも頻繁にありました。


でも、そうなった時にエンジニア側が勝手に考えたレールによって、良いアイデアを捨ててしまうのはもったいないことです。
だからプロトタイプ開発では、あまり先のことを想定しすぎず、現時点で作った部分が不必要になったときにすっきり消せるようにして、大きな変更があったときに置き換えしやすいようにすることを心がけています。

そうは言いつつ、大久保さんからは「ここ作り過ぎじゃない?」と言われたこともあります(笑)。

大久保:結構みんなプロトタイプ開発なのに、本格的に作るクセが付いている気がしています。
プロトタイプ開発では、シンプルに作って試してみてダメだったら消して、良かったら後から丁寧に作り直すほうが良いんです。おもしろさを試すという意味では、やり過ぎなくらいシンプルに作ったほうがスピードも上がりますから。

独自フレームワーク「Chimera」がプロト開発にもたらす利点

――そのような背景もあり、DeNA独自のフレームワーク「Chimera」が生まれたのですね。

大久保はい、「Chimera」はゲームのプロトタイプをすばやく作るための、アクション性のあるゲームを主な対象としたフレームワークです。


――改めて、なぜ「Chimera」を作ることになったのでしょうか?

大久保:「Chimera」が生まれたのは、新しいゲームのプロトタイプをすばやく作り、アイデアをたくさん試せるようにためです。プロトタイプを作り始めるときに、ゲームとして本当に基本となるような機能だけを作るとしても、一定の開発工数が必要になります。

ただ、それぞれのプロトタイプチームが別々に基本機能を作った際に、似た機能の開発に時間を割くのはもったいないので、どんなタイプのゲームであっても基礎部分として使えるフレームワークを用意し、アイデアを試す部分により時間を使えることを目指して、僕がイチから作りました。

――「Chimera」の主な機能や特徴は?

大久保主な機能や特徴ですが、ゲームを開発する上で必要そうな細かい機能(下記参照)がまとまっています。

「Chimera」の主な機能
・当たり判定とそれに伴う汎用ダメージ処理
・エンティティ管理
・エンティティ間のメッセージのやり取り
・キャラクターの行動制御
・キャラクターのAnimation制御
・キャラクターのステータス変化の制御
・カメラ制御
・開発確認やDebugをしやすくするコンポーネント
・その他便利なコンポーネント

また、別パッケージでは「Photon Unity Networking をChimera上で使う仕組み」「Photon Bolt をChimera上で使う仕組み」「シンプルなUI要素」などがあります。

――実際に「Chimera」を使ってみていかがでしたか?

宇塚「Chimera」のコードはシンプルで使いやすく、流れがパッとわかるんです。ゲーム開発の歴史のいろいろなものが積み上がった知識が詰まっているので、理解しやすく自由度も高くて、どんなプロトタイプ開発でも使いやすいと感じました。

もちろん、始めて使ったときは今までの作り方とのクセの違いに少し苦労しましたが、そこを乗り越えてからは開発スピードはものすごく上がりました。自分がプロト開発をゼロから始めたら、基本的な機能を整えるのにずっと長い時間が必要だっただろう、と感じています。



――その他、「Chimera」の利点などはありますか?

宇塚ゲームで実現したいアイデアや機能って、実は他チームのゲームと似通っていることも多いんです。

例えば「キャラクターが走ってジャンプしてアイテムを取る」というようなゲームでよくある機能を作るとき、「Chimera」を使っているタイトル同士であれば、当たり判定やキャラクターの動作の処理が類似しているので、他のタイトルで実装済みの処理を利用することができます。

基盤や設計思想が違う場合は、考え方を参考にする程度でほとんどの処理を自分のタイトルに合わせて書き直さなければならないですが、共通の基盤に乗っているとその無駄を省くことができます。

また、自分自身で複数のプロトタイプを作るときも、1作目で使ったダメージ数値を表示する機能を、2作目を作るときにそのまま引用できましたし、ミニマップのUIや、キャラのHP・MPと当たり判定をつなぐ部分なども使い回せました。

1回作った機能は後でまた使いたいときにスムーズに導入できるので、「Chimera」を使っての開発は進めば進むほど、次の開発スピードが上がっていく感覚があります。

「Chimera」が広いゲームジャンルで使えることにより、多くのプロトタイプで機能の再利用ができることも利点だと思っています。

――結果的にプロト開発のスピードは上がったと。ちなみにどれだけ生産性が上がったのでしょうか?

宇塚成果を言葉や数字にするのは難しいですが、仮に多くのゲームで実装するような当たり判定を、本やネットのコードだけ参考にしてゼロから作るとすると、バグ取りも含めて1~2週間はかかると思います。

「Chimera」を使えば、拡張しやすい当たり判定をスルッと再利用できるので、10営業日くらいのコストダウンにはなります。当たり判定以外にもよく使う基本的な要素を整った形で導入できることを考えると、慣れている人がやらなければいけないタスクの数ヶ月分がスッと手に入るイメージでしょうか。

大久保その分、初めて使うときの学習コストが2週間程度かかりますが、結果的にコストを縮めることでより多くのアイデアを試す時間に使えて、ゲームをさらに改良できると思います。

宇塚どのゲームでも同じように動けばOKという部分は絶対にあるので、同じ機能をわざわざ毎回作るという無駄なコストをかけなくて良いのはありがたいですね

――実際に使っている宇塚さんは「Chimera」に対して何か要望はありますか?

宇塚「Chimera」はUnityでの開発に利用できるフレームワークです。Unityはグラフィカルなインターフェースを使ってさまざまな設定ができること、またそのエディタを拡張しやすいことが強みだと感じています。

一方で、特に初期の「Chimera」はGUIを使わずにコード上であらゆるものを設定する思想になっていたため、作り方は大きく隔たっていましたGUI上での設定をよく利用していた私からすると、全てをコードで定義しなければならないのは辛いな、と思った部分はありました。

ただ、慣れてくると全てがコード上に残っているので、コントロールはしやすいことがわかりましたし、グラフィカルにする部分も自分で作ろうと思えば作れるので、解決はできました。

今後の展望としては、例えばデザイナーと一緒に開発する運用期にGUI的なツールと「Chimera」が組み合わせやすくなっていると、初めて触る人でもあまり困らないかなと思っています。

――「Chimera」の改善点や今後の展望はありますか?

大久保「Chimera」自体はプロトタイプ開発での使用を想定したものなので、開発効率を優先していて、CPUコストやメモリ使用率などは気を使って作られていません。

そのため、製品に出す場合は「Chimera」はクオリティ的に使えないので、今後はプロトタイプ開発でも製品版でも使える「Chimera2」を開発中です。

宇塚いま「Chimera」でプロジェクトを動かしていますが、大規模で多くのキャラクターを出す場合に、パフォーマンスより拡張性を重視した仕様が起点となって負荷が高まってしまったり、開発していて「Chimera」側で調整してくれたら助かるということが、少しずつ出てきています。

その部分を改善した「Chimera2」のようなバージョンを、大久保さんが作ってくれています

――社内のプロト開発全体に好影響をもたらす「Chimera」がエンジニアにもたらしたことを改めて教えてください。

宇塚新規プロジェクト始動時メンバーがゼロからスタートして、バラバラに部品を作ることによる再発明の多さや工数の無駄遣い、クオリティのバラつきをなくすという意味で共通的なものが生まれて、エンジニアとしては非常に助かっています。社内でさらに有効に使える人が増えていくと良いなと思っています。

大久保Chimera」がゲーム開発の参考になっていると思います。

宇塚:あと、「Chimera」のコード自体は全社公開されているので、社内でゲームの基礎部分を開発しようとする人には、とても参考になっていると思います。

――現状、DeNAのエンジニアはみんな「Chimera」を活用しているんですか?

大久保社内全体で使われているわけではなく、以前からあるプロトタイプチームと、今僕と宇塚さんでやっている新しいゲームの開発で主に使用しています。

「Chimera」を使った開発の現状についても、当たり判定やキャラの基本的な行動制御などは、過去のゲーム開発で積み上げた知見を活かして、すばやく実現することができましたし、それによって、ゲーム特有のロジックやネットワーク制御といった機能に集中して開発を進められています。

宇塚:プロトタイプを作るいくつかの部署で使われており、「Chimera」を利用する中でどんどん大きくなっているプロジェクトもあるので、効果は出ていると感じています。

DeNAエンジニアの”ものづくり”に対する姿勢

――お二人が所属する第二開発部にはどのようなタイプのエンジニアが多いですか?

宇塚DeNAは会社全体としてロジカルな考え方をしながら、ゲーム開発に対して情熱的な思いを持つタイプのエンジニアが多い気がします。

大久保確かにそうですね。ロジカルでパッションを持ったエンジニアというイメージが強いと思います。

宇塚:以前、私が担当していたアクションゲームの開発チームメンバーに若手が多かったこともあり、自分たちが作ったものに対して「良いよね!」「これすごいじゃないですか」と自画自賛するエンジニアもいたりと、ゲーム開発という”ものづくり”において情熱的なメンバーが揃っていると思います。

――お二人のエンジニアとしての”ものづくり”に対するスタンスは?

大久保自分自身がものを作っているのが好きで、楽しみながらゲーム開発のエンジニアをやっています。なので、自分が楽しんで作ったものを他の人たちも楽しんでくれる、お互いにハッピーになれたら良いというスタンスでものを作っています。

宇塚驚くようなおもしろさや、心を動かすようなものがゲームの世界なら作ることができると思っています。

自分でもゲームをプレイしていて、ビックリするくらいハマっちゃうこともあります。そういう人の心を揺り動かしたり、泣いたり喜んだりする感情を、自分たちが作るゲームで周りの人にも体験してもらいたいと考えています。「最高だよね!」という感動をみんなと共有して、本当にすごいものを作ったと言いたいです。

ゲームは今やれることがどんどん増えていて、今後20年、30年と時代が進んだときに、「ゲームなんて子どもの遊びでしょ」と言っていた人たちでさえ、「感服しました、ゲーム最高です!」と思わせてしまうようなすごい体験を提供できるんじゃないかと思っています。

今の段階でも、それにどんどん近づけるくらい、おもしろいものはできていると感じていますし、そこを目指して日々楽しみながらものづくりに取り組んでいます。

※本記事は2019年2月時点での情報です。

GeNOM(ゲノム)とは

DeNAのゲームクリエイターを様々な切り口で紹介するメディア(運営:株式会社ディー・エヌ・エー)です。ゲーム開発の現場で生まれる様々なエピソードや、クリエイター紹介、イベント紹介などを通して、DeNAで働くメンバーの”ありのまま”をお伝えしていきます。

GeNOMの最新情報は、公式Twitter アカウントやFacebookページにて確認いただけます。ぜひフォローをお願いします!