インディーズゼロは,ニンテンドーDS(任天堂)などの携帯ゲーム機用のゲームソフトを中心に開発を行っている,ゲームソフト開発会社です。オフィスは,緑の豊富な井の頭公園や,オシャレなお店でにぎわう吉祥寺にあり,スタッフ数は現在22名。「千年家族」や「しゃべる!DSお料理ナビ」といった一風変わったタイプのゲームソフトの開発を得意としています。
 連載第2回のテーマは,「ゲーム開発の仕事って?」です。プログラマの仕事の実態を,私たちの会社の2人のプログラマがお話します。

◆プログラマに聞く“仕事”の実体

プログラマ「DRAGON」の自己紹介

──入社何年目?
 中途採用で,現在9カ月です。

──プログラミングを始めたのはいつごろ?
 中学生のときにVisualBasicを勉強し,簡単なツールソフトを作っていました。本格的にプログラミングの勉強を始めたのは,高校卒業後,専門学校に入学してからです。入学前に多少の知識があったおかげで,授業以上のことを学ぶことができたと思います。

──自分はどんなプログラマ?
 効率重視のプログラマです。完成度を上げるために,もちろん作り込みはしたいのですが,なるべく作業を楽にしたいので,開発しやすい環境を作ることに気を使っています。

──プログラミングで心がけていること
 開発の容易さ,速度を維持するために,プログラムの使いまわしや修正が容易に行えるように気をつけています。主に,テンプレート化やコンポーネント化,後の修正でなるべくソースを読み直さなくても良いように,設計やコメントの量や書き方などにも注意しています。

 開発速度が速いと,テスト・プログラムでの検証結果を早く返すことができる,担当部分を作り込むことができる,そして何より早く家に帰れることが利点です(作業が増える場合があるという副作用もあります)。

──仕事に関して,今まででいちばん嬉しかったこと
 開発に携わったソフトをお客さんが買っているのを見かけたとき。思わずにやけてしまいます。

──仕事に関して,今まででいちばん辛かったこと
 現在の会社の話ではないのですが,ソフトの完成形が見えてこず,スケジュールも組めず,終わりが見えないまま開発をしなくてはならなくなったときは辛かったです。

──最近開発に携わったソフト
 「しゃべる!DSお料理ナビ」では,ゲームウォッチ・CHEFや伝言メモ,映像解説などの,ナビ本編以外の部分を担当しました。

 完成度を磨き上げていくものではなく,個々の完成度を上げながら,素早く数をこなさなければならなかったため,それまでじっくり考えながらプログラムを組むタイプだった私には挑戦でした。

 クッキング・ナビゲーションという,商品としても珍しいソフトですが,開発側から見ても,音声や手書きの認識など,今までのゲームではあまり使われなかった技術を使えた,面白いソフトでした。

ゲーム開発って意外に…

──ゲーム会社に実際に入社してみて,入社前の想像と違ったところはどんなところでしょうか?

 想像していたより,会社での泊り込みがないことと,職人のようなところがありながら,サラリーマンでもあったところです。業界にまつわるマイナスイメージも,会社や場合によってかなり違っていることも感じました。

──ゲーム・プログラマの仕事内容の一例として,今日行った作業内容を教えてください

 新しい画面の追加作業をしていました。共通の部分が多く,今後機能が追加される予定があるため,使用する機能を指定して画面を構成できるような仕組みを作成していました。  その後,進ちょく会議とプログラマ会議でスケジュールの調整をし,プログラム作業の続きをしました。

──プログラマの仕事はゲーム業界以外にもいろいろありますが,ゲーム会社のプログラマならではの良いところ,好きなところはどこですか?

 好きなことを仕事にできるのが一番の良いところです。仕事が楽しいです。

──では,ゲーム会社のプログラマならではの悪いところは?

 有名IT系企業のような,他業種のプログラマ職と比べると,やはり少し給料が少ないところでしょうか。ですが仕事の満足度でカバーできています。

──開発機材はどのようなものですか?

 PCに接続できる特殊なゲーム機を使用しています。

──ゲーム開発というと,仕様書はあるにはあるけど,仕様書の通りに作っても「やっぱり面白くないから作り直し」なんていうことがある世界。いったん作ったものが“ボツ”になったり,やり直しになったりすることがあると思います。そういうので,ムカついたりすることなどはありませんか?

 全く気にならない…と言えば嘘になりますが,面白くなったほうが良いので仕方がないと思います。むしろ,ボツになってしまうと時間のロスが発生しますので,企画時の研究とテスト用のプログラムでの検証でそのような危険を回避します。プランナとの連携が重要なシーンです。

──会社に泊まりこんだことはありますか? それはどんなときでしょうか?

 私は家が遠いので,開発の終盤で緊急の作業が増えた場合などに泊まることがあります。開発中は泊まりっぱなしということはありません。

──ゲーム・プログラマから見て,ゲーム会社のデザイナ職ってどんな人たちですか?

 絵を描くだけではなく,インタフェースのデザインや画像のデータ化作業,さらに3Dになるとマップや埋め込みデータなどまで作る,マルチな人たち。皆さんのイメージ以上に忙しいはずです。ソフトの顔の部分なので変更もかなり入りますし,頭が下がります。

──では,同じ視点で,ゲーム会社のプランナ(企画職)ってどんな人たちですか?

 誰よりも先行して仕事をしなければならない苦労者です。彼らがいるので安心して働けます。

──超大作ソフトになると,数十人から100人以上が開発に携わることもあるのがゲーム開発。ゲーム・プログラマの仕事も分業や専門化が進んでいる,またはこれから進んでいくのでしょうか?

 ゲーム業界全体としては,分業や専業化は進む方向に行くと思います。ただ,私の会社の場合,比較的少人数で開発しますので,一人で複数の分野の担当個所を持ちます。そのぶん様々な技術を身に付け,使う機会があるのは楽しいです。  また,ミドルウエアをうまく活用するという手段もありますし,これからは大作以外のゲームにも日が当たってくるのではないでしょうか。

プログラマ「Dr.K」の自己紹介

──入社何年目?
 10年目。会社創業メンバーの1人です。

──プログラミングを始めたのはいつごろ?
 高校時代に部活でプログラミングを学んだのが最初ですが,本格的にゲーム・プログラミングを学んだのは大学時代です。

──自分はどんなプログラマ?
 できるだけ効率良く開発したいと考えているタイプですので,最初の設計での試行錯誤が一番楽しい時間と言えます。  ですが,ゲーム製作では最初の仕様が最終仕様であることはまず無いので,柔軟に対応できる設計を考えていると,いつも時間との戦いになって追われてしまいます。  究極の夢は,プログラマがプログラミングをしなくともゲーム製作ができる時代が来ることです。

──プログラミングで心がけていること
 危険なかおりのするコーディングをなるべく避けるようにしています。例えば,C言語での記述上の省略形や階層の深いネスト,一行に詰め込むコーディングなどです。  コピー&ペーストはよく使いますが,実は一番危険な操作だと思っているので細心の注意を払って作業をしています。

──仕事に関して,今まででいちばん嬉しかったこと
 自分たちで設立した会社が,10年も続いた事です!

──仕事に関して,今まででいちばん辛かったこと
 人との意思の疎通です。同じ物を見ているはずの相手に自分と違う映像が見えていたらそれをどうやって伝えるか,ということです。  例えば,円錐を横から見ていれば三角形に見えますが,下から見たら丸に見える。物理的なものであれば見ることによってすぐに解決しますが,思考の場合は実体が無いのですごく難しいです。  いったん気がつけば「あ,そういう事ね」という簡単なことが,なかなか伝えられないときのジレンマは辛いです。

──最近開発に携わったソフト
 弊社で制作したソフトには,メインか,技術監修という形で,多かれ少なかれすべてのソフトにかかわっています。  近年の主なものとしては「エレクトロプランクトン」や「オシャレ魔女ラブandベリー DSコレクション」のメイン・プログラムを担当しました。

ゲーム開発って意外に…

──ゲーム会社に実際に入社してみて,入社前の想像と違ったところはどんなところでしょうか?

 業界に入る前はあくまでもユーザーとしてゲームを見ていたので,あまり業界としては気にしていませんでした。そんな中,業界に入ることになり,周りの人たちの会話を聞いていると…。

 ゲーム業界と関係ないはずの普通の人たちまでが,皆が事情通!?と思うような知識量でビックリしました。

 例えば「~というゲームは誰々が作った」とか「~を作った誰々が~というソフトハウスを作った」など,あらゆる雑誌の記事に書いてあることを全部暗記してるのか!?と思うほどでした(笑)。

──ゲーム・プログラマの仕事内容の一例として,今日行った作業内容を教えてください

 クライアントからの要望で,イベントで使用するバージョンのROMを作成しました。ゲームの流れが少し変わるので,流れを制御する関数の新たなバリエーションをコピー&ペーストを中心に作成しました。

 その流れを制御する関数自体を,#ifdefで場合分けして,makeから選択できるようにしました。流れの制御だけであれば,if文やswitch case文を使うのが一番素直ですが,もともとバグ出しも含めて完成している場所なので,そこのコードはなるべくそのままにすることを選択して新たなバリエーションを作成しました。

 完成している場所にはなるべく手をつけない…というのもバグを減らす,あるいは局所化するためのお約束です。

──プログラマの仕事はゲーム業界以外にもいろいろありますが,ゲーム会社のプログラマならではの良いところ,好きなところはどこですか?

 やはり目立つ形で一般ユーザーにお披露目できることですね。システム系では,コンビニで売っている雑誌に販売本数が載ったりしないと思いますから。

 自分が作ったゲームの発売日に,店頭で購入していく人を見るのがうれしいですね。また,プログラマに限った話ではないですが,比較的,朝が遅くても済むのが好きです(笑)。朝の満員電車に乗らないだけでもありがたいです。

──では,ゲーム会社のプログラマならではの悪いところは?

 好きなところと裏表ですが,割と時間にルーズな点ですね。一般的にゲーム業界は夜が遅いので,それに合わせていると自然と夜型になってしまいます。その結果,朝が起きられなくなるわけです…と他人のせいにしていますが(笑)。

 もう一つは,システム系からの視点で見ると,製作手法が遅れていることです。プログラマは,家の建築に例えると,現場で働く大工です。デザイナは内装のエキスパートで,プランナはクライアント(お客さん)から依頼されて,どんな家にしたいのかを想像して提案する人(いわゆる住宅会社の営業)です。

 ここまでは見えやすいスキルですが,実際にはこの他にクライアントからの提案を設計図に起こす人が必要になります。クライアントの要望を最大限に取り入れながら,耐震強度や法律に違反していないかを考慮しつつ,設計図に起こす作業です。

 この仕事はシステム系ではSEと呼ばれる職業ですが,ゲーム・プログラムの世界ではプログラマとして一括されてしまいます。

 一応,メイン・プログラマと呼ばれる人間がそれを担うわけですが,大工がいきなりすべてを考慮した設計図を書けるわけがありません。海外ではそういったゲーム・プログラムとしての学術的な研究が進んでいますが,まだまだ現場にはほど遠いのが現状だと思います。

 そういう視点からも,ゲーム・プログラマにはSEという分野が欠けているかな…と思います。

──開発機材はどのようなものですか?

 専用機材をWindowsマシンに接続して開発しています。昔はいろいろありましたが,最近は環境も整っているので,Windowsでプログラミングするのと大差は無くなっていますね。

──ゲーム開発というと,仕様書はあるにはあるけど,仕様書の通りに作っても「やっぱり面白くないから作り直し」なんていうことがある世界。いったん作ったものが“ボツ”になったり,やり直しになったりすることがあると思います。そういうので,ムカついたりすることなどはありませんか?

 表現としてムカつくという言葉が適切かどうかはわかりませんが,確かにムッ…っと思うことはあります(笑)。

 今のところ,幸いなことに理不尽なやり直しは少ないので,納得できる範ちゅうではあります。最初から無計画とノリだけで作成されていったものは,勢いとノリでひっくり返される恐れもあります。しかし,最初から理由があって作られているものであれば,それを修正するときも必ず理由が存在するので,納得しやすいです。

 逆に言えば,すべての仕様にきちんとした理由があれば,それと同等かそれ以上の理由が無い限りは,ひっくり返される心配はないということです。

 ただ,そんなゲームの上だけでの理由とは別に,諸所の都合や判断(例えば,発売時期にかかわる問題とか)もあるので,一筋縄ではいかないのが難しいところでもあります。

──会社に泊まりこんだことは,ありますか? それはどんなときでしょうか?

 もちろん,あります。でも,泊まるということは,寝ずに作業をするという意味なので,結局,次の日の作業効率が非常に悪いです。そんな理由から『次の日を考えずに済む日=締め切り前夜』に徹夜という場合が多いです。

 締め切りではないときは,トータルで見れば泊まらずに早め出社で遅帰りのほうが全体効率が上がると思います。

 また,健康管理も仕事のうちなので,忙しいときほど遅寝早起きでも規則正しい生活を送るようにしています。そうすると慣れてくる自分にも驚きますが,気が抜けると元に戻ってしまうのも驚きます(笑)。

 何にしても,泊まらないにこしたことはありません。

──ゲーム・プログラマから見て,ゲーム会社のデザイナ職ってどんな人たちですか?

 そのままですが,イメージを見た目に変換する人たちです。

 モニターを介している以上,ユーザーの目に入るのはすべてデザイナが描いたグラフィックになるので,作り手のイメージが見た目に変換されていることは非常に重要だと思います。

 また,単体のグラフィックだけでなく,画面レイアウトやゲームを通しての共通のイメージ・グラフィックなど,動きや計算以外の目に入るものすべてを作成するので,実は“絵を描ければいい”というだけではないのが大変だなぁ…と他人事に思っています(笑)。

──では,同じ視点で,ゲーム会社のプランナ(企画職)ってどんな人たちですか?

 プログラムとグラフィック,サウンド以外の何でも屋です(笑)。

 最初は,企画として豊富な知識でゲーム性などを考慮して仕様を考えていますが,いったん,ひとまずの形が決まってしまうと,あとはスクリプトを書いたり(私たちの会社では,プランナがスクリプトを書くところまで受け持ちます),ゲーム内で使うあらゆるデータを打ち込んだり…といった作業が多くなります。

 想定していていなかった,後々のやむを得ない仕様変更においても,その都度,他の仕様と整合性を保つように考えていかないといけないので,頭はいつもフル回転,という感じです。

 プランナは,ストーリーやシナリオを書く人ではないので,プランナを目指す人はゲームの構造や遊び,面白さの定義,人が自分の考えた面白さをどう感じるかなど,もっとゲームという対象を様々な視点で切って見てみることが必要だと思います。

──超大作ソフトになると,数十人から100人以上が開発に携わることもあるのがゲーム開発。ゲーム・プログラマの仕事も分業や専門化が進んでいる,またはこれから進んでいくのでしょうか?

 一般的な視点からすると,分業や専門化は進んでいくと思います。ユーザーの目が肥えてきている昨今,たとえ小規模であってもそれなりの内容が求められます。その内容も年々複雑化してきていて,すべてを一人でこなすには無理が出てきています。

 専門職としては,主にツールや通信,3Dグラフィックなどが代表的なもので,これらはゲームの種類に関係なく,共用化できる部分も少なくないので,専門職に特化しやすいのだと思います。逆に,これらのどれかをマスターすれば,どこに行っても通用すると言えるのかもしれません。

 とはいえ,それぞれが即戦力で使えるレベルになるには独学では難しく,ゲーム製作に特化した知識も必要になってくるので,結局は現場で覚えていくしかないと思います。

 私たちの会社では,各個人ごとの将来的なことも想定して,スケジュールとスキルを考慮しつつも,プロジェクトごとに,少しでも新しいことに挑戦できる環境を作っています。知っているだけなのと,実際にプロジェクトの中で経験しているのとでは,作業見積もりや作業負担を想定したりする際に,想定できる深さも変わってきますので。

 もちろん,得意分野や専門性は大事ですが,それと同時に,皆が,メインで全体像を想定したり,工数を読みながらプログラム作成ができるようなスキルを,プロジェクトでの経験を通して身に付けていってほしいと願っています。