Haskellによる商用ゲーム'Nikki and the Robots'の紹介

この文章はHaskell Advent Calendarの21日目の記事として作成したものです。

概要

Nikki and the Robotsは、joyride LaboratoriesHaskellで開発した80's 90'sを彷彿とさせる2Dゲームです。
プロモーションビデオが公開されていますので、この動画と公式ページのイントロダクションを見ていただければどのようなゲームかが解ると思います。

Nikki and the Robots - Concept Trailer from Joyride Laboratories on Vimeo.

特徴

今回このゲームを紹介しようと思った理由として、以下の特徴があります。

  • 商用目的で開発されたゲーム
  • オープンソース
  • 公式サイトに日本語ページが用意されている
商用目的で開発されたゲーム

Nikki and the Robotsは商用目的で開発されています。公式ページによると、本体とそれなりに遊べる量のステージは無料、追加ステージが有料という形で提供する予定とのことです。また、公式サイトよりゲームのキャラクタをプリントしたTシャツが販売されています。

Haskellで作成されたゲームはいくつかあり、hackageのgame categoryで確認することができます。また、id:tanakhさんがhackageに登録されているゲームをレビューしています。しかし、登録されているゲームの大部分は非常にシンプルなものであり、現状ではHaskellを使うことでゲーム開発にどのようなメリットがあるか模索している段階だと思います。そのようななか、今回のゲームは商用目的で開発されており、level editorを備えるなど公開されている他のHaskell製ゲームと比べてきちんと作成されているようです。

今回このゲームはHaskell_in_industryでとりあげられている会社を片っ端から見ていたときに知ったのですが、他にHaskell製の商用ゲームは見当りませんでした。nikkiのように商用でHaskellを使用して作成されたゲームは他に無いのではないでしょうか。(他にご存知の方はおしえていただけるとありがたいです。)

オープンソース

前述の通りこのゲームは商用を目的として作成されていますが、ソースコードは公開されています。ソースコードのライセンスはLGPL、画像はcc-by-saのライセンスで公開されています。nikkiはこの記事を作成している時点で11600行ほどの.hsコードから構成されており、Haskellでのゲーム開発において貴重なサンプルです。darcs(Haskell製の分散型バージョン管理システム)のリポジトリが公開されていますので、コードの取得にはdarcsを用意する必要があります。

必要なリソースは全て公開されているため、Ubuntu上でコンパイルして動作を確認しようとしました。いくつかのエラーを修正してコンパイルには成功したものの、残念ながら画面が正常に描画されず、動作を確認することができませんでした。少なくともGHC7には対応しておらず、GHC6.12.3なら簡単な修正でコンパイルが通ることは確認できましたので、興味のある方は試してみてください。

公式サイトに日本語ページが用意されている

公式サイトには日本語のページまで用意されており、ブログとcodeのページを除く全てのページが日本語で公開されています。
nikkiの正式な公開は2011中になるため大きなプロモーション活動をしていないからかもしれませんが、折角日本語のページまで用意されているのに日本の方が知る機会が少ないように感じたので、この記事で少しでも興味を持つかたが増えたらいいなと思います。

さいごに

少し残念なことに、'2010/11 TBA'とトップページには書かれているもののblogには2011年中のリリースになると書かれていることや、公開されているコードの動作確認ができなかかったことがあります。しかし、Haskell製のゲームで公開されているゲームの中では珍しい10000行を超えるソースコードでできており、マルチプラットフォームでの動作、level editorの搭載、物理エンジンの使用など興味深い作りになっています。また、コードは全て公開されているため、使用されているテクニックを観察することができます。monadiusのコードを見て挫折した方、副作用まみれのゲームプログラミングをHaskellでどう扱っているのか興味のあるかたは、ひとまずdarcs getすると良いと思います。