トップ » バックナンバー » Vol.14 » ゲームプログラマへの道

Accumu Vol.14

ゲームプログラマへの道

株式会社カプコン 「バイオハザード アウトブレイク」メインプログラマ 秋山 幸平さんに聞く

KCGからカプコンへ

秋山 幸平氏

―秋山さんはKCGの卒業生ですね在学中印象に残ったことを教えてください

僕は愛媛県の高校を卒業後1987年に京都コンピュータ学院情報工学科に入学しましたでも僕はあまり模範生じゃなかったんですけどね(笑)ちょうど僕の在学中は大型機からパソコンに移行する時代でした3年生の前期までは大型機を使った実習が中心でしたが後期からパソコンに関する実習が始まったと記憶しています特に印象に残っているのはゼミナールでパソコン製作を行ったことです製図から起こして基板の作成などを行いましたこれはとても面白かったですねハンダ付けなどあまり得意でなかったので本当にこれが動くのかと不安だったのですがすべて組み立て画面にプロンプトが出たときの感動は今でも覚えています当時の工具はいまだに使っています

それからKCG在学中にあるゲーム会社が開発していたロボットの開発委託を学院が受けたことがあってその作業を見てゲーム開発をしたいという思いを強くしました

―カプコン入社後の印象はいかがでしたか

会社の雰囲気がとても自由であることに驚きましたビジネス系のプログラマとして働いている友人の話を聞いてみると一般の企業とはかなり違うようですね上司部下というよりも先輩後輩といったもっと親密な関係でいろいろと教わることができました入社して実際に働いてみてプログラミングは奥が深いなあと思いました先輩たちと比べて技術的にも考え方の面でも自分はまだまだだと思い知らされましたね自分の組むものと先輩の組むものは同じプログラムという土俵で比較できないほど違っていました

僕が入社した当時はゲーム開発にアセンブリ言語を使用していましたKCGではC言語を中心にプログラミングを勉強していたのですがアセンブリ言語は入社してから本格的に学びました自分の場合はただゲームをつくるのが楽しかったので毎日夢中になってつくっていました残業や休日出勤などもありましたがゲームが完成したときの充実感は大きかったですね

―ゲームの世界では技術の変化が激しいですよね

ええ2Dから3Dへの転換期を経験し僕自身はカプコンでの3D分野のパイオニア的な研究をさせてもらいました製品名は「スターグラディエイター」です数学的な知識が必要になり高校時代の数学の教科書をひっぱり出してきて一から学び直しました行列についての知識などは必須ですマトリックスは最低限理解していないとまずいですね

またプログラミングにおいてオブジェクト指向の考え方が入ってきたりしてコーディングの方法が大きく変化しましたでもゲーム設計の基本的な考え方は変わっていないと思います先人が築き上げた考え方がよほどしっかりしたものだったのだと思いますね

バイオハザード アウトブレイク

―秋山さんは「バイオハザード アウトブレイク」のメインプログラマを務められたわけですがメインプログラマの仕事とはどのようなものですか

最近のゲーム開発は大人数チームで行いますプログラマが10名を超える人員で開発するビッグプロジェクトも多いわけですチームで作業をする場合マネジメントが必要になってきますメインプログラマは人員が不足している部分のフォローアップをしたりスケジュール管理をしたりしますチーム全員が何をしているのか作業の中身までわかっていることが必要ですねまた他部署との交渉も重要な仕事になります企画やグラフィックなどの部署からは難しいこと無理なことを求められることが多々ありますどこの部署もいいゲームをつくろうと真剣ですからね僕が担当しているプログラミングのセクションでは納期を守ることも重要です目標は決められた期限の中でいかに質の向上を図るかなんです

―アウトブレイクは企画から完成までにどのくらいの時間が掛かっていますか

企画から完成まで5年掛かっていますビジネス系のシステムでここまでの年数を掛けることは少ないかもしれません5年も掛けて取り組むのですからゲームに込めた思い入れはかなりのものです思い入れの厚みが違います

―5年ですかすごいですねアウトブレイクはバイオハザードシリーズで最初のネットゲームですね

ええネットワークゲームには同期型と非同期型がありますがアウトブレイクはカプコンにおける非同期通信のネットワークゲームの初めてのタイトルです非同期型の場合はいつどの瞬間にどこから他のプレイヤーが参加してくるのか全くわからないのが特徴です通常のゲームとは違うノウハウが要求されましたね

―具体的にはどのような点で苦労されましたか

通常のゲームの場合はプレイヤーから見えない箇所は極力データを省くようにしています画面の切り替わりの際にごまかしてしまったりもするそういう意味での割り切りがとても重要になっていますけれど非同期型のネットゲームの場合はいつどこからプレイヤーが参加してくるかわからないので割り切れないところが多々出てくるのですちょうど手品をやっているときに前からだけでなく上からも後ろからも全ての方向から見られているような感じですかね手を抜くことができないのです研究段階からいろんなバグが出たりして大変でした

―アウトブレイクの場合は単体でもネットでも遊べるように工夫されていますね

はいそうです特に単体で(ネットに繋がずに)プレイする場合の処理を工夫しましたアウトブレイクはネットワークで遊んだ場合接続した他人が互いに見えるのですが単体の場合その役割はNPC(Non-PlayerCharacter)が行いますこれはあたかも他の人間が操作しているように見せる必要があるためAI(人工知能)の思考部分には特に気を使いました

秋山 幸平氏

―ゲームの将来はどうなると思われますか

ネットゲーム自体もまだまだこれからですね現在でもまだコンシューマ機が主流です先日も東京ゲームショーを見てきたのですが最近のゲームにはいわゆる版権ものといわれるキャラクターの魅力を売りにしているものが多くありますしかしゲームとしてはあまり面白くなかったりしますあるいは映像の美しさで勝負しようとしているゲームも多くありますしかし映像面で差をつけようとするのはもはや困難だと思います映像の美しさによる驚きは薄れてきていますねやはりゲーム自体の面白さがもっと問われるようになるのではないかと思います

―最近ゲーム機の高性能化が進んでいますね

ええハードウェアの高性能化により以前できなかったことが可 能になってきています問題はそのハイスペックをどう活用するかですただ映像の美しさだけを追及するようなものでは駄目だと思いますね私たちはハイスペックをゲームの面白さにしっかりと転化したいと思っていますカプコンは古参のゲーム会社でゲームの中身で勝負しようとしていますゲーム屋としての誇りをもってみんな仕事をしています大切なのはゲームとしての面白さそこだけは譲らないぞそれを追求しゲームの中までしっかりと完成品をつくっていこうと考えています面白さを忘れたきれいなだけのゲームは絶対につくりたくないですね

ゲームプログラマになるために

―ゲーム開発には現在さまざまな人が関わっていますがゲームプログラマの役割というのはどのようなものでしょうか

ゲームプログラマの場合コーディングするだけが仕事ではありませんプランナーとともに企画にも携わることはよくありますプランナーが素材を集めてきたのをプログラマが一つのゲームにまとめあげていくようなイメージですねそのまとめあげていく過程でこのようにしたほうがいいのではないかと意見も言いますプログラマの意見でゲームの企画内容が変わることもあります少なくとも僕の場合プログラマがまさにゲームをつくっているのだという自負を持っています

―ゲームプログラミングの際に心がけるべきことは何かありますか

僕の場合部下や若い人たちにはいろんな人の書いたプログラムを見るように言っていますプログラムは一つではない自分の技術を過信していると若い人でも自分のプログラムに凝り固まってしまいますその人の成長を止めてしまう要因になるのです先輩の書いたプログラムなども見てそこから学ぶことがとても重要だと思いますねカプコンの場合は開発だけで数百人いますしそれなりに歴史もありますからお手本はそれこそいくらでもその辺に転がっているわけですし

プログラミング言語としてはゲーム開発の場合C言語C++を学ぶといいと思いますこれからの多人数による開発を考えるとやはりC++でしょう

―なるほどゲームプログラマに必要な姿勢は何かありますか

ガツガツと知らないことを貪欲に吸収する姿勢ですねハードのスペックが向上するのに伴って学ぶべき領域が広がります昔は3Dも学術的な研究の対象でしたが現在ではゲームに実用化できるようになりました常に発見していくことを繰り返さないといけない僕も日々新しいことを学んでいます

それからさまざまなジャンルのゲームを知って欲しいと思います自分はRPGのみしかわかりませんというのでは駄目ですそれでは新しいアイデアが出てこないあらゆるジャンルのゲームを知っておく必要があります

―そのほかにゲームプログラマに必要なスキルはありますか

秋山 幸平氏

いちばん重要なのはコミュニケーション能力ですゲームプログラマを目指すなら必須ですねゲーム開発の場合いくつものラインがあるので他のラインから情報を集めたりしながら物づくりをしていかなければならないあと他部署から無理な提案をされる場合も当然ありますそうした場合に断るだけではなくこういう方法もありますよと提案し直すことも必要です

―ゲームプログラマをしてきてよかったなと思うのはどういうときですか

例えば日本橋や秋葉原などに行って店頭で自分が関わったゲーム作品のデモ映像が流れているのを見たときです本当に見ていて涙が出てくるぐらい嬉しいですね

―最後にゲームプログラマを目指しているKCGの後輩にメッセージをお願いします

自分の可能性を信じて決してあきらめないことが大切だと思います一見するとゲーム開発と関係がないように思えることでも積極的に学んでください全部役に立ちますからそれからコミュニケーション能力を磨くためにも在学中にさまざまな人と触れ合って友人を多くつくってくださいそうしてぜひスーパープログラマを目指してください私たちは皆さんと一緒に働ける日を楽しみにしています


※同期型と非同期型ネットワークゲームは① 参加プレイヤー全員が同時に始まり同時に終わるゲーム(同期)と② いつ参加してもよくいつでもやめられるゲーム(非同期)に分類できる前者の例は通信対戦格闘ゲームや通信対戦レースゲームなど後者の例はバイオハザードアウトブレイクや多くのネットワークRPGなど