[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは

[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは
 2016年10月22日,福岡県・九州大学大橋キャンパスで「CEDEC+KYUSHU 2016」が開催された。九州で行われる大規模なゲーム開発者会議としては昨年に続くものだが,正式にCEDECの地方版として位置づけられたCEDEC+の初のイベントとなる。
 
 レベルファイブといえば九州屈指のゲーム開発会社だが,玩具やアニメなどのクロスメディア展開がとくに多いことでも有名であろう。開発本数自体も多い。しかし,レベルファイブのプログラマは決して多くないのだという。また,クロスメディア展開をしているタイトルは,通常のゲーム以上にさまざまな部分で納期が厳しく,一般的なゲーム以上にスケジュールがタイトになりがちだという。

[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは [CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは

赤坂泰洋氏
森 雄二氏
 そんなタイトなスケジュールの仕事が同時並行でたくさん走っているのだが,人材は限られる。では,そんな状況にレベルファイブはどうやって対応しているのか? というのが今回の講演の趣旨となる。
 講演を行ったのは,同社の専務取締役/CTO 開発統括部部長を務める赤坂泰洋氏とプログラムクリエイティブチームの森 雄二氏だ。

 レベルファイブで,限られた人材を最大限に活用するための方策として紹介されのが「シームレススタッフィング」という考え方だ。これは開発部隊全体を一個の大きなマルチコアCPUのように捉えて,CPU内部のタスク管理・リソース管理のようにマルチタスクをこなしていこうという考え方である。一つのプロジェクトにとらわれず,あらゆるプロジェクトにシームレスに対応させていく。
 CPU用語的には,マルチタスクというより処理ユニットを無駄なく使おうというスーパースカラの概念が適切な気もする。当然,同時マルチスレッド対応である。
 図を見ると分かりやすいだろう。

[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは [CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは

 ただ,見て「ちょっと待て」と思う人は多いはずだ。たとえば,スタッフAが同時に3つのプロジェクトに関わっていたりする時期がある。これで効率が上がるという考え方にはちょっと無理があるようにも思われるが,いったいどのようにしているのだろうか。
 単純なアジャイル系開発の場合,「小チーム開発」が謳われることが多いことからも分かるように,プロジェクトで1チームが基本になっている。たとえば,2週間のスプリントの仕事を1週間で終えてしまった人がいたらもったいない話だ。もちろん,1チーム内でタスクを回すというやり方もあるだろうが,社内の人のスキルというのは人それぞれだから必ずしも最適な配置ができるとは限らない。たとえば,5つのチームでそれぞれにUI担当を設けるより,社内でUIが得意な人に集中させたほうが効率もクオリティも上がる可能性がある。プロジェクトをまたいだ人員のアサインが柔軟にできる体制は,最適なタスクの選択肢を増やすことにつながる。開発状況を的確に把握していれば,無理することなく効率を上げることも不可能ではないだろう。


どうやって人的リソースを管理するのか


[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは
 こういった考え方はロジカルで分かりやすい。しかし,このシステムを円滑に動かすには,全体の負荷状況を把握し,デコーダやタスクスケジューラに相当する人の手腕が相当に問われることは難くないのだが,どうやって効率的にタスクを回していくのか,そこが問題になってくる。今回登壇したのはまさに管理側の2名であり,レベルファイブでどのような管理が行われているのかが語られた。
 全体でのミーティングと上長だけのミーティングの2種類が開かれているとのことだが,より重要なのは全体での進捗ミーティングだ。全員が自分の受け持ち部分での成果を発表するわけだが,なにをやったかだけではなく具体的にどういう実装を行ったのかまでがチェックされ,妥協した実装ではOKが出ないのだという。別名「恐怖の赤坂チェック会」(赤坂氏)と呼ばれているとかいないとか? ここでダメ出しが行われ,新たなアイデアが盛り込まれ,ゲームの細かな処理単位でブラッシュアップが図られていくわけだ。
 妖怪ウォッチの開発時に赤坂氏が「道端の空き缶蹴りたいよね」とポツリというと,妖怪ウォッチ2では最初から空き缶を蹴るミニゲーム風に仕上がっていたそうで,プログラマもプライドを持って言われた以上のモノに仕上げていく気風が生まれているという。これらが相乗効果でゲームのクオリティアップにつながっていくのだ。

 この進捗発表をもとに,問題箇所の洗い出しが行われ,必要に応じて仕様の見直しや人員の再配置も決められるのだが,進捗報告会の直後に行われることが重要だそうで,状況を把握したらただちに対策がとられる体制が出来上がっている。

[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは
[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは

 そういった人員を入れ替えたり,急な増援が成立するのは,前提として多人数開発がちゃんとできるインフラが整っているからであり,バージョン管理やアセット管理はもちろん,情報共有や進捗管理などの社内の開発環境は十分に整備されているからだ。
 また,省力化という点では自動化も進んでおり,パフォーマンス計測やユニットテストなどの機械的なテストは毎日夜間に自動的に行われるようになっており,結果はプロジェクトの各員に伝えられるという。

[CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは [CEDEC+]レベルファイブによる「10人で100人のパフォーマンスを出すプログラム開発体制」とは

 森氏が,赤坂チェックの紹介で,とあるゲームでの事例を挙げていた。とにかく開発中に,ボスモンスターの動きが悪かったのだそうだ。本来,そこはボスモンスター用のAIツールが作られていてデザイナーだけで作り込んでいける仕様になっているはずだったのだが,ツールのデキが悪くて,プログラマも動員しないと使えないようなものだったのだという。作業に手間がかかって作り込めなかったわけだ。そこで,赤坂氏からツールから作り直せという指示が飛び,余裕のないスケジュールの中で作り直しが決行されたとのこと。ただ,その後のボスモンスターの開発速度が飛躍的に上がり,結果的にはそこでツールを作り直していなかったらゲームは間に合わなかったのではないかというくらいの成果を挙げていたと,森氏は振り返っていた。
 状況に合わせてスタッフをアサインするという事例としては妖怪ウォッチのケースが紹介された。初期は数名(最初は森氏一人だったそうだ)で始まったプロジェクトは,ゲームの開発が進むにつれて,どうやっても間に合いそうにないと判断した赤坂氏が大量の人員増援を行って,なんとかようやく間に合わせたことがあったそうだ。途中で森氏から「まだちょっと危ないかもしれない」と聞くと,すぐさま数名の追加増員が行われてギリギリ間に合ったのだという。
 そのときの追加増援が本当に重要だったと森氏は語っていた。CTO(かつ専務取締役)の赤坂氏だからできる決断と采配だが,全体を統括する役目を赤坂氏が見事にこなしていることが分かる。すべてのプロジェクトの進行状況と社内リソースの状況を把握しているだけでもたいしたものだ。また,前述のように,こういった急な動員でもちゃんとスケーラブルに機能するシステムが作られていたということが非常に重要な意味を持つように思われる。

 今回紹介されたのはレベルファイブのスタッフ管理システムの概要だけだが,赤坂氏は,機会があれば詳細についても紹介したいと語っていた。来年のCEDEC+KYUSHUに期待したいところだ。

CEDEC+KYUSHU公式サイト

レベルファイブ公式サイト