ハル研ブログ BLOG

仕事内容
執筆者:田島 タグ: プログラマー

『星のカービィ Wii デラックス』の仕事 プログラムディレクター編

©HAL Laboratory, Inc. / Nintendo

こんにちは! プログラマーの田島です。
『星のカービィ Wii デラックス』が発売されましたね。
もう遊んだ、という方もいらっしゃるのではないでしょうか。

さて、私は本作のプログラムディレクターを務めました。
プログラムディレクターは、「キャラクター担当」「フィールド担当」のような具体的な単語が含まれる役割と比べると、どんな仕事をしているのかイメージしづらいかもしれませんね。
今回は、プログラムディレクターの仕事について紹介させていただきます。

プログラマー/プログラムディレクターの仕事

まずはプログラマーの仕事について、キャラクターの実装を例にとってお話しします。

キャラクターの挙動をプログラミングで実装し、ゲームデザイナーやアーティスト、サウンドクリエイターと連携しながら、遊びを作り上げていくのが、プログラマーの仕事です。
キャラクターを登場させるためには、キャラクターを生み出し、管理するシステムが必要になりますが、こうした仕組みの部分は、キャラクターの実装経験が豊富なプログラマーが中心となって作られることが多いです。

また、実際にゲームとして遊べるようにするには、キャラクターだけではなく、フィールド・UI・サウンド・地形判定・攻撃判定など、さまざまなシステムを組み合わせる必要がありますし、これらの仕組みを同時に動かすためには、「メモリをどのように配分するか」「それぞれの処理はどのような順序で行うのが適切なのか」など、各要素を俯瞰したプログラム設計が求められます。

ここまでの話はゲーム中の一場面を想定したものですが、ゲームの中にはタイトルやメニュー画面など、さまざまな場面があります。
これらの場面を繋げてゲームプレイの一連の流れを作ったり、各場面に共通するグラフィック等の仕組みを作り上げたりすることも必要になります。
そのほか、ゲームの外の話になりますが、開発環境を整えて各職種がそれぞれの作業を効率良く進められるようにするのも、プログラマーの仕事です。

プログラマーの仕事は多岐にわたり、専門性が求められる部分もあるため、1人だけの力ですべてを成し遂げることはできません。
やるべきことをプログラマー全員で分担し、担当範囲を決め、その中での判断を各自に委譲することで成り立っています。

プログラムディレクターの最も大きな役割は、こうしたプログラマーの仕事について担当範囲を割り振ることと、複数の範囲にまたがる要素について方針を決めることです。

具体的な要素として、メモリの管理を例に挙げます。
ゲーム機のメモリの総量は有限であり、全員が好きなだけ使えるものではありません。
どの用途にどれくらいの量を割くべきかについては、プログラムディレクターがゲーム全体を見て判断します。

メモリ以外にも、CPUの使い方、ファイルの取り扱い、コーディングルール、プログラマーの人的リソースの配分など、さまざまな場面でこうした判断が行われます。
全体の方針こそプログラムディレクターが決めますが、担当範囲内での詳細な方針は各プログラマーに決めてもらうことも多いです。
ですので、プログラマーは皆、プログラムディレクター的な側面を持っているとも言えます。

プログラムディレクターを務めるうえで大切なこと

プログラムの実装意図や、ある判断に至った根拠をきちんと言語化して他の人に伝えられるようにする能力は、さまざまな場面で役立つと思います。
プログラマー同士でコードの質や安全性について議論する場面、他職種のメンバーと一緒にキャラクターの挙動を見ながら改善案を検討する場面、新しく作ったシステムを誰かに使ってもらうために説明する場面など、言葉で誰かに意図を伝える機会は多いです。
ある意味では、プログラム言語を理解してコードを書くことよりも難しい部分かもしれませんが、チームで協力してひとつのゲームを作っていく上でとても大切なことです。

ゲームを構成するさまざまな要素に対する、プログラム面の基礎知識も必要になります。
普段の実装はそれぞれのプログラマーに任せて進めていきますが、プログラムディレクターとしての大きな判断が必要になった場合は、現状を理解し、担当プログラマーと相談しながら解決を目指す必要があります。
知らない分野について適切な判断を下すのは非常に難しいので、日頃からさまざまな分野に興味を持って、知識の引き出しを増やしておきたいと考えています。

とはいえ知識だけでは解決しにくい、決まった正解がないような問題に向き合う機会も数多くあります。
さきほど例として挙げたメモリのような有限のリソースをどう配分するか、ある要素と別の要素が矛盾してしまいそうな場合にどのような落としどころを見付けるかなど、難しい判断を求められることはたびたびあります。
悩むことは多々ありますが、最終的に判断基準となるのは「どうすればプレイヤーのゲーム体験を良くすることに繋がるか」という点だと思います。
これを考え続けられる気持ち、それがどんな知識やスキルよりも大切なことかもしれません。

「プログラムディレクターを務めるうえで」と前置きしましたが、ここで挙げた項目はプログラマー全般に当てはまると思いますし、これからプログラマーを目指す人にとっても役立つ部分があると思います。
もし活かせそうな場面がありましたら、ぜひ思い出してみてください。

©HAL Laboratory, Inc. / Nintendo

最後に

ゲームの魅力は、プレイヤーの操作によって画面の中にさまざまな出来事が起きる、そのインタラクティブ性にあると思います。
プログラマーの仕事は、ただプログラミングをするというだけではなく「プレイヤーの操作を、楽しさに変換すること」と言えるかもしれません。
楽しさというのは人の気持ち・感情に関わるものですから、決まった正解がなく、難しいと感じることもあります。
それだけに、実際にゲームが完成し、プレイヤーのみなさんに遊んでいただいて、楽しんでいる様子が見られたときの喜びは大きいです。

今回の『星のカービィ Wii デラックス』では、プログラムディレクターとしてゲームのさまざまな部分を見守ってきましたので、これまでで一番思い入れのあるタイトルになりました。
みなさんに遊んでいただけるのが、とても楽しみです!