ツールプログラマーの幸福論
著者: 遠藤 義輝ゲーム開発というものは多くの場合チームで行うものです。
さまざまな特技を持った人たちが集まり役割分担をしてプロジェクトを進めていきます。
ざっくり言うと、まずゲームデザイナー・プランナーが企画を考え、大まかな仕様書を作成します。次に企画者はプログラマーと仕様に書かれた実装が可能なのか検討し、見直しを進めながら具体的な仕様書に落とし込んでいきます。そして決まった仕様に基づきプログラマーが実装をはじめ、デザイナーは必要な素材を作り始めます。
この過程で多くの場合さまざまな問題が発生します。
例えば、
- アプリに使える容量が足りないからデータサイズを減らすか、もっと圧縮して!
- きちんと再生されないアニメーションがあるのだけど事前に調べられない?
- スクリプトに記述ミスがあるようなのだけど簡単に洗い出せない?
など、問題は開発対象のプラットフォームや、利用しているゲームエンジン、フレームワークによって多種多様であり、細かいものを挙げればキリがありません。
これらの問題は、よりおもしろいゲームを作ることとは関係がなく、できれば起こらないでほしいものですが、ここでこの問題の解決を「何とかするぞ!」と思うか、「あー面倒臭い! 今それどころじゃないから誰かどうにかしてくれ」と思うかが、ツールプログラマーとゲームプログラマー、どちらへ向かうべきかの分かれ道になっているのかもしれません。
ゲームプログラマーとしての資質を備えているのは後者のタイプで、企画の内容をどうにかして実現してやるかと情熱を燃やし、また自発的にアイデアをプラスアルファしてゲームのクオリティを上げることに強いモチベーション感じる人だと思います。またそのための手段にはあまりこだわらず柔軟な視点を持っていると感じます。
一方、私の話をすれば、プログラマーとしては明らかに前者であり、瑣末で面倒な問題を解決することにモチベーションを感じ、手段にもわりとこだわるタイプでした。
ここでは自分は前者寄りかも? と感じておられるプログラマーの方に向けたメッセージを書こうと思います。
まず、現状に疑問を抱くことは大事です。不満に思うことは悪いことではありません。作業の中で面倒を感じるのはよくあることです。そんなとき、そういうものだ、と諦めずに「ダメだこれじゃ! どうにかしないと!」と奮起することが効率化への第一歩です。自分でちょっとしたツールやコンバータを作っても、他人は使わないよなーと思うかもしれませんが、それを周囲と共有すれば意外と喜ばれると思います。これが結構嬉しいものなのです。
逆に人の口、不満を聞くことも大事です。
10 年ほど前になりますが、とあるアニメーションツールにバグがあり、たまに妙なデータが混じることがあったものの、どのタイミングで混じるのか特定が難しく、また実機上で表示させるまで問題箇所を確認できなかったため、そのための修正にそこそこの手間がかかっていました。この問題を解消するためにコンバータ側で問題箇所を特定し、変換時に報告する機能を入れたところ、デザイナーさんに予想以上に感謝されたのですが、そんなに苦労していたならもっと早く教えてくれれば! と思ったものです。プログラマー1 人のほんの15 分程度の作業でデザイナー数人の日々の残業時間を減らせることもあるのですから意義は十分にあります。
ゲーム開発現場で手助けするのか、私のようにツール開発専門の会社に所属し、外からサポートするのか、そういった違いはあるにせよ、ゲーム開発において発生する諸々の面倒な作業を効率化することで、ゲームをよりおもしろくするための作業に時間を使ってもらえるわけです。結果としてユーザーの満足度にもつながるわけですから、縁の下プログラマーの仕事1 つ1 つは地味に見えても、責任もあり、やり甲斐のある仕事だと思います。
ゲーム業界に興味を持つ方の多くは、ゲームのクリエイターをめざすことが多いと思います。しかしこういったクリエイターのお手伝いという立場にも別の喜びがあります。ふと気づくと、あのタイトルにも、このタイトルにも自分のツールが使われている状況で、ひそかに嬉しさをかみしてたりしています。ちょっと視野を広く持って、ツールの仕事にも目を向けてみてはいかがでしょうか。