大規模化、作業分担の進むゲーム開発環境において、ソフトウェア開発作業の効率化は必須要件です。
本セッションではCI(継続的インテグレーション)の紹介と、オープンソースソフトウェアとして提供されているHudsonというツールを使ったCI導入事例を紹介します。
CIとはビルド・テストプロセスを自動化し、頻繁にビルドを行い常にビルドが通る状態を保つ事で、ソフトウェアの品質を維持するという考え方です。
ビルド担当者が手元のバッチコマンドやスクリプトを叩く事に比べ、ビルド情報の共有、ビルド・テスト失敗の通知、成果物のバージョン管理等ができます。なにより、一度設定してしまえば時間だけがかかり生産性の無い確認作業に割り当てるコストとヒューマンエラーを限りなく減らす事ができます。
今回の事例ではアーケードゲーム開発向けライブラリのビルド、テスト、パッケージングからリリースまでの流れを自動化した例を紹介します。
本来は業務向けITシステム等の開発に用いられるツールをゲーム開発へ応用するために、プラグインによるツールの拡張や、AutoItというフリーのGUI操作自動化ツールの導入も行いました。
GUI画面チェックやメモリリークチェック方法、分散ビルド等のビルド手順や、バグトラッキングシステム、静的解析ツール、ユニットテストツール等の他の開発支援ツールとの連携、チームの開発フローに応じたツールのチューニング方法について、実際にデモを行いながら紹介する予定です。
CIツールを使った作業の自動化については昨年の同社の伊藤周のセッション「バグを限りなくゼロにする方法」での紹介を受けて導入されている方もおられるかもしれません。
Hudson等のツールを導入してみたはいいけど、ツールにチームメンバーが馴染まなくてうまく使いこなせていない、かゆいところに手が届かない、という感想を受けた方には今回紹介する手法が役に立つかもしれません。
今回はゲームライブラリでの実例の紹介ですが、ゲームアプリケーションでは、データのコンバートやゲームの実行テストにも活用できるでしょう。
ゲーム本体の開発以外にお金のかけにくいゲーム業界において、タダで手に入るツールをうまく活用して楽に品質の高いものを作りましょう。
講演者プロフィール
粉川 貴至
1981年奈良県生まれ。2008年立命館大学大学院博士後期過程単位取得退学。同年株式会社セガに入社。大学時代には(株)ソニーのエンターテイメントロボットAIBOをJavaから遠隔制御するフレームワーク「airlab.aibo JAVA パッケージ」を開発。同パッケージを使って人工知能を研究していたためゲームAIに興味を持ちつつも、現在はアーケードゲームを中心としたライブラリの開発と開発環境の整備に従事。
《講師からのメッセージ》
入社数年目の若輩者ですが、今のゲーム開発に一番貢献できる事を考えた結果が開発環境の改善・効率化でした。世の中の技術革新はとてつもなく速く高度に、しかし簡単に手に入るようになってきています。利用できるものはうまく利用して、世の中の速さに負けない開発スピードを手に入れましょう。