CEDEC 2017、Cygamesに関するスマホアプリ&ソーシャルゲームセミナー記事

Custom Search
企業データベース
業界求人情報
TOP > 記事 > 【CEDEC2017】Cygamesが開発中のゲームエンジン...

【CEDEC2017】Cygamesが開発中のゲームエンジン「Cyllista Game Engine」を紹介…ゲーム開発者が最高のパフォーマンスを出せるエンジンに

リスト
このエントリーをはてなブックマークに追加
  • 企業データ


8月30日から9月1日にかけて、パシフィコ横浜で開催された「CEDEC2017」。本稿では、8月30日に行われた講演「Cygamesにおける次世代ハイエンドコンソール向けゲームエンジンの開発 ~最高のコンテンツを支えるゲームエンジン~」の内容をお届けする。

本講演に登壇したのは、Cygamesの内製ゲームエンジン「Cyllista Game Engine」統括マネージャーである多胡順司氏が登壇。次世代ハイエンドコンソール向けゲームエンジンにおける開発環境の整備、テスト駆動開発の実例を紹介した。

 
 
■「Cyllista Game Engine」最大の目標はイテレーションの高速化

「Cyllista Game Engine」とは、Cygamesが開発している次世代ハイエンドコンソール向けのゲームエンジンだ。現在のところWindowsとPS4に対応しているこのエンジンについて多胡氏は「最高のゲームエンジンにする」と目標を掲げる。

「最高のゲームエンジン」には2つの意味があり、ひとつはハードウェアが最高のパフォーマンスを出せること、そしてもうひとつはゲーム開発者が最高のパフォーマンスを出せることだ。特にゲーム開発者にとって良い環境であることを強く意識しており、イテレーション、つまり開発サイクルを速く回せることが最終的な目標であると語る。
 
  

イテレーション高速化のために打てる施策はさまざまだが、今回多胡氏が取り上げたのはテスト駆動開発(TDD)だ。一般的なTDDといえば、テストコードを書く、テストが失敗するように実装する、テストが通る最小限の実装を記述する、の工程をひたすら繰り返すことだ。これによりコードが安定、さらには安心感を与えられるメリットがある。その一方で導入するのが面倒というデメリットも。

そこで「Cyllista Game Engine」では、「テスト駆動開発以外の開発方法を提供しない」という驚きの手法を取り入れている。そのぶんエンジン開発ツールを導入することで、TDDの手間を省いている。それもコマンドプロトコルに「cybuild」と打つだけという非常にシンプルな仕様だ。

コマンドにはほかにも、ソースコード・ツール・アセットを更新する「cybuild update」、モジュールをテストする「cybuild test<module>」などがある。この「cybuild」にはモジュールのテストやドキュメント生成、エディタ起動、中間ファイルの削除、ファイルの変更状態の表示といった機能も備わっているのだ。
 
 

続いてプログラミング言語だが、C++とPythonの2種類に統一されている。Pythonの利点としては、モジュールの充実、ツールの配布が簡単、コードの共有化が容易といった点が挙げられた。またC++、Pythonともにソースコードの自動整形にも対応している。コードの自動整形の利点はなんといっても読むときにも、書くときにもコードの中身に集中できることだ。

ユーザーコードに関してはC++が利用されているが、詳細な最適化が可能である代わりにコンパイルや読み込みの観点からイテレーションが遅いという欠点も抱えている。そこで「Runtime Compiled C++(RCC)」を実装した。これにより、ゲームの実行中にコードを更新できる。つまりゲーム内の変化をリアルタイムで感じることができるようになったのだ。RCCには利点と欠点の両方が存在するが、天秤にかけた結果、イテレーションが大きいと考え採用に至ったという。
 
 

エンジニアのイテレーション速度に直結する要素といえば、ビルド時間も欠かせない。多胡氏によると、有効行数40万行のフルビルドだと30秒、アプリケーション側のコード修正は5秒、実行時コンパイルは2秒で行うとのこと。ビルド時間短縮のため不要なヘッダはインクルードせず、templateの利用は最小限にとどめている。CIは常に監視し、変わったコードを見つけることも重要だという。加えて多胡氏はビルド時間短縮のため、「速いCPUを持ったPCを用意してください」と聴衆者に話し、笑いを誘う場面もあった。

最後にゲームコンテンツ開発者向けの要素として、アセットシステムに関する話題にも触れた。ゲーム開発者であれば「任意のバージョンのアセットを高速に取得したい」という思いを抱くはずだ。しかしアセットのバージョン管理にはファイルサイズの大きさ、膨大なファイル数といった問題をクリアしなければならない。一部のアセットのみが必要で、ファイル読み込みリクエストがあったときにはじめてファイルを用意するケースも多いだろう。

そのためメタファイルを用意して、アセットの関係性の情報を保持。単一ディレクトリ以下にまとめる方法を取っている。中間ファイルとメタファイルのみバージョン管理を行い、実機用ファイルとアーカイブファイルが中間ファイルから生成する仕組みだ。メタファイルの導入によって任意のバージョンを高速に取得できるようになり、ローカル/サーバーキャッシュを用意することで目的のファイルも高速取得が可能になった。
 
 

そのほか、DCCツールから実機へのプレビューの高速化、中間ファイルにはプレビュー専用のモードを用意するなどの工夫も取り込まれている。多胡氏は今後もこれにとどまらず、ゲーム開発者が最高のパフォーマンスを発揮できることを徹底的に追求していくことをアピールし、講演は幕を閉じた。

 
(取材 ユマ)
リスト
このエントリーをはてなブックマークに追加

あわせて読みたい( CEDEC 2017Cygames

企業情報(株式会社Cygames)

会社名 株式会社Cygames
URL http://cygames.co.jp/
設立 2011年5月
代表者 渡邊 耕一
決算期 9月
直近業績
上場区分 非上場
証券コード

株式会社Cygamesの求人情報

シナリオライター

ゲームの世界観をテキストで表現する業務です。 クエストストーリー、イベントストーリーや、ゲームに出てくるキャラクターのシナリオ、フレーバーテキストの作成、各種発注・調整業務をして頂きます。

ゲーム開発エンジニア(サーバーサイド)

・ソーシャルゲームの設計/開発/テスト/運用 ・開発環境の構築(サーバ・DB構築、モックアップ作成、プログラミング、単体テスト、バージョン管理) ・運用時の負荷軽減などによるプログラムの高速化 ・WEB技術のスキルアップ、ノウハウ共有 ・お客様からのお問い合わせについての調査対応

3DCGアーティスト

キャラクターのモデル作成 背景モデルの作成 キャラクターモデルのモーション作成 エフェクトの作成 3Dグラフィックのアートディレクション

イラストレーター

・弊社にて開発・運用中のタイトルのキャラクターから背景まで一枚のイラスト ・ゲーム内に登場するキャラクターやアイテムの原画・彩色を担当 ・ゲーム内アニメーション用キャラクター制作 ・新規ゲーム用のコンセプトアート

ゲームプランナー

ゲームの仕様を各部署と検討し、仕様やシナリオの作成をしていきます。 また、リリース後にはKPIを分析しながらユーザの動向をみてコンテンツ内のイベントなどの企画、運用を実施して頂きます。

株式会社CygamesのSPECIAL記事

Facebook

スマートフォンゲーム最新情報をシェア中

Twitter

毎日つぶやき!スマートフォンゲーム最前線!

はてブ

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

毎日配信!スマートフォンゲーム最前線!

RSS

毎日更新中。スマートフォンゲーム最新情報

新着記事