ハル研ブログ BLOG

仕事内容
執筆者:フクナガ タグ: プログラマー

【プログラマーの仕事】多くのゲームに貢献できる開発環境を作る

こんにちは。入社10年目のプログラマーのフクナガです。

先日、プログラマーの石村が記事で紹介したように、ハル研究所にはゲーム開発以外にもプログラマーの仕事があります。
その中で私が担当しているのは、ゲーム向けの開発環境の開発です。

ゲーム向けの開発環境といっても、ゲームフレームワークやスクリプト言語、ライブラリ・ツール群など、様々なものがありますが、私が担当しているのは、任天堂と共同開発しているゲームソフト開発用ミドルウェアにおけるサウンドに関するライブラリの開発になります。

ゲーム機本体システムの開発と同様に、開発環境の仕事も表に出てくる機会が少ないですが、良い開発環境を用意することができれば多くのゲーム開発者に使ってもらえるようになり、その結果、多くのゲームで使用されることにもなるという、大変やりがいのある仕事です。今回は私が担当しているサウンドのライブラリ開発を通して、開発環境の仕事の内容や魅力について紹介したいと思います。

まず、そもそもライブラリとは何かについて説明したいと思います。
例えば、ゲーム機でサウンドを鳴らすには、サウンドのデータファイルだけでなく、そもそもゲーム機で音を鳴らすための仕組みが必要です。
また、サウンドを鳴らすと一言で言っても、実はいろんな鳴らし方があります。

1. 波形そのものをメモリにのせてそのまま再生する方法
2. 楽器の情報やそれをどのようにどのタイミングで鳴らすかの情報をデータ化しておき、それに従い再生する方法
3. 波形そのもののサイズが大きく一度にメモリにのせたくないようなもの(BGMなど)を、少しずつストリーミングしながら再生する方法

これらの方法はよく知られたものではありますが、実装するためにはそれなりのコストがかかります。
特に 2. と 3. については、実現するのは結構大変なのですが、ゲーム開発においてはよく使われるものなので、何らかの形で用意する必要があります。このように、毎回ゲームに必要とされることが分かっているような仕組みをあらかじめ作っておくというものがライブラリ開発になります。

もちろん実際のライブラリにはサウンドを鳴らすためのプログラム以外にも、フィルタをかけたり、サウンドエフェクトを追加したり、ゲーム中でパラメータ変更をできるようにするような開発支援用のプログラムなども含まれています。開発環境の仕事においては、このようにゲーム開発者にとって使いやすいライブラリを開発するというものが大きな作業の柱となります。

次に、私たちの仕事のもう一つの大きな柱である、ゲーム開発者のサポートについて説明します。
ゲーム開発ではより魅力的なゲームを作るために、ライブラリをそのまま使うだけではなく、少し凝った使い方をすることで、ゲームの表現力をあげていくことがあります。
例えば、サウンドでは、ゲームをプレイする人の操作やゲームの状態に合わせて変化するようなサウンドの表現をしたい、といったような場合などがその例になります。
このようなことは、ゲーム開発をしているプログラマーだけでももちろん実現できますが、ハル研究所社内では、普段からサウンドのライブラリ開発をしている私たちがサポートすることで、よりスムーズに実装を進めていくことができます。

他にも、社内のゲーム開発者からの要望を聞いたり、現行の技術をチェックしたりしながら、必要とされている機能を追加していくことも随時行っていきます。
また当然ながら、不具合が発覚した場合には、すぐにその対応を行います。その不具合が、開発を止めてしまうようなものの場合には、個別にパッチを提供することも必要になります。

まとめると、
– よく使う機能をあらかじめ提供する
– ゲーム開発のサポートを行う
– 必要な機能を追加する
– 不具合が発生してしまった場合には適切な対応を行う
といったことが、開発環境の主な仕事ということになります。

では、開発環境の仕事の魅力とは何でしょうか?
私は以下のようなものだと考えています。

– ゲーム機の仕様について詳しくなることができる
– 多くのゲームに貢献できる可能性がある

まず、「ゲーム機の仕様について詳しくなることができる」について。
ライブラリを開発していたら、当然そのゲーム機について詳しくなるというのは自明なのですが、ハル研究所では、ミドルウェアの開発に関わっていることもあり、より深い部分を理解することができます。

そしてもう一つの、「多くのゲームに貢献できる可能性がある」についてですが、使いやすいライブラリを用意できれば、多くのゲーム開発者に使ってもらうことができます。
特にハル研究所が開発に携わっているミドルウェアは、任天堂から多くの会社に提供されているため、多くのゲームで使用してもらえる可能性があり、幅広くゲーム開発に貢献することができます。

その反面、多くのゲーム開発者に使ってもらえるということは、多くのゲーム開発者に迷惑をかけてしまう可能性もあるということにもつながります。ライブラリに問題があった場合には、利用してくれているゲーム開発者全員に影響が及んでしまいますので、常に安定性やパフォーマンスには気を付けて仕事をする必要があります。

また、開発中のゲームプロジェクトが、新しくリリースしたライブラリに乗り換える際、なるべくビルドが通らなくなる、サウンドが鳴らなくなるといった状態にならないよう、そのまま使える状態を維持したうえで、機能追加をしていくといった、互換性の問題にも気を遣う必要があります。

大変な面もたくさんあるものの、自分たちが作ったライブラリを使って問題なくゲーム開発が進み、無事製品としてリリースされていくのを見届けることができた時には、ゲーム開発とはまた違ったやりがいや達成感を感じています。

以上が、開発環境の仕事と魅力のご紹介となりますが、いかがだったでしょうか?
興味を持っていただけたなら……さらには「自分もやってみたい!」と思っていただけたなら、とてもうれしいです。