バンダイナムコゲームスの第1スタジオ技術部アシスタントマネージャー菰田英展氏 |
「GPLが"出た"時点で製品の出荷を見合わせます」――バンダイナムコゲームスの第1スタジオ技術部アシスタントマネージャー菰田英展氏は、11月17日にオージス総研が開催した「オープンソース知財セミナー2010」でそう語った。
バンダイナムコゲームスは2008年9月から、製品出荷前に、自社製品にどのようなオープンソースソフトウェア(OSS)が使われたかをチェックする体制を敷いている。チェックによって、GPLが製品に使われていたことが分かった場合、即座に製品の出荷を見合わせるのだ。
ゲーム開発の規模拡大でOSSリスクも増加
「ゲーム開発の規模拡大にともなって、OSSの利用も増加し、外部委託による製品開発も広がりました。OSSは、利用にあたってさまざまなライセンス条件がありますが、中でもGPLは改変したソースコードの開示が求められます。そのまま出荷してしまうと、製品回収や訴訟など会社にとって大きなリスクになるため、原則として使用不可としているのです」(菰田氏)
大規模化したゲーム開発の現場では、開発効率を向上させるためにOSSの利用は欠かせなくなった。そのため同社は、OSSを適切に利用するためのルールづくりを進め、社内教育や外部委託先への指導を行ってきたという。だが、ゲーム開発で利用されるOSSは、画像、動画、通信に関連するライブラリやミドルウェアなど、数も量も膨大だ。管理も外部委託先に任されているため、安定した品質を保つよう指導し続けることは難しい。また、納品物のソースコードを人手で検査していたのでは、むしろ非効率になりかねない。
そこで同社は、2009年1月から、ソースコードの中にOSSが混入していないかどうかをチェックするツールの検討を開始。最終的に米国パラミーダが提供するOSSライセンス自動検出ツール「Palamida」を採用した。同ツールは、ソフトウェアのソースコードとバイナリファイルをスキャンし、OSSプロジェクトと比較分析したうえで、コードの流用部分や改変部分をレポートやアラートとして表示する製品。1~2行単位程度の流用でも検出できるなど、スキャン性能が高いことが特徴で、バンダイナムコゲームスの2週間の性能評価でも、それが決め手となって採用に至ったという(国内販売とサポートはオージス総研が手がける)。
「検査体制としては、検査員は2名、レビューアが2名。GPL以外のライセンスについては、開発プロジェクトごとにどのライセンスを利用するかを決めておき、そのポリシーに基づいてチェックします。現在は、開発プロジェクトからの依頼を受けての検査が基本になっていて、おおむねデバッグ開始前に検査します。検査結果は、開発プロジェクトにフィードバックし、品質向上につなげています」
OSS自動検出ツール導入の効果
ツールを利用する際は、ゲームで用いられるキーワードをできるだけ登録し、検出結果が多くなるようカスタマイズしている。「悪意を持ってOSSを混入させるような開発者はいない」(同氏)ことから、検出精度をギリギリまで上げても問題ないという。また、ツール導入から2年が経つが、これまでの検査でGPLの利用が発覚したこともない。
導入効果としては、自動化によって効率性が向上したこと、OSS利用状況を客観的に把握できるようになったこと、検査証跡による情報共有/結果の再利用ができるようになったことを挙げる。これらは、ツールによる自動化によってもたらされた効果だ。一方で、開発現場の意識に変化が現れたことも大きいという。
「当初社内には、OSSの利用そのものに慎重な意見もあったのですが、ツールによって適正な利用ができるようになったことで、意識が変わりました。実際、開始当初は検査依頼が少なかったのに、1度検査を受けたプロジェクトからは次のゲームタイトルの検査依頼や相談が必ず来るようになりました。それがプロジェクト間に波及することで、検査依頼は着実に増えていきました」
菰田氏は、ツール導入による一部試行から始めたことのメリットとして、全社展開までの道筋がつけやすくなることを挙げる。全社的なリスク管理プロセスを当初から構築しようとすると、社内に協力者を見つけることに苦労するが、ツール導入から始めると、検査を受けたプロジェクトが協力者となってくれるためだ。同時に、ツールがあることで、担当部署が明確になり、検査体制づくりが楽になったことも実感したという。
今後の展開としては、開発プロセスへの取り込みを挙げる。現状では検査依頼を受けての検査になっているが、開発プロセスに組み込むことで、さらなる検査の強化と品質向上につなげたい考えだ。Palamidaの機能強化という点では「ルールドリブン検出機能」に期待している。これは、利用しているOSSを特定するためのノウハウをデータベース化し、検査効率を向上させるものだという。