ゲームのベータ版を発売するまでに7年を費やすには何をすればいいか?新作『MoonQuest』開発者が自虐的に7年間の“迷走記録”を共有
個人開発者Ben Porter氏は7月14日、Steamにて『MoonQuest』の早期アクセス販売を開始した。価格は1220円。『MoonQuest』は自動生成される世界を探索する2Dアクションアドベンチャーゲームだ。シングルプレイヤー向け作品として開発されている。プレイヤーは危険な洞窟や森林などで金鉱や資源を掘り当て、クラフトを進め、装備品などを作り出す。開発者は本作を『マインクラフト』とローグライクゲームを組み合わせたものであると表現している。見かけやゲームコンセプトこそは『テラリア』であるが、操作感は異なっているほか、「Moon Man」といったオリジナルキャラクターが存在していたりと、オリジナリティが散りばめられている。
早期アクセス販売が始まったばかりの『MoonQuest』であるが、実はPorter氏は7年も開発を続けてきたという。長期開発タイトルというと、『Owlboy』や『Iconoclast』といったタイトルの開発者がさまざまな苦労をしながら7年や8年といった歳月をかけてゲームを開発してきたが、Ben Porter氏はいろんな寄り道をしたがゆえに7年をかけてしまったと暴露している。当時大学院生であったPorter氏は、7年前、インディーゲームが活気づいていることを感じ、のちに『MoonQuest』となる『MoonMan』の開発を決意し、制作への取り組みを始めた。しかし、開発をする上では迷走を極めたようだ。氏は自身のブログにて「ベータ版を発売するために7年をかける方法」という自虐的なタイトルで、その開発遅延エピソードを共有している。同氏に翻訳の許可を得たので、かいつまんで内容を翻訳し紹介しよう。
自分でゲームエンジンを作ろう
自分でエンジンを作るというのは、非常にパートだ。ゲームのそれぞれの部分を把握しておきたいなら、なおさらだ。結果的には、開発開始時に使用した既成品は、基本的なウィンドウ管理APIのSFML(原始人が使うよりは洗練されている、程度の道具)だけ。物理演算エンジンは途中で挫折してBox2Dを導入。ほかにも、シーンマネージャーやGUIコーダーといったゲーム各部分を作る仕組みを自分で作ることで調整していった。
7年の間に自分の使っている開発言語がアップデートされて更に遅れた。言語仕様のアップデートで(挙動に支障はないと思われる範囲で)、コードのつなぎが乱れても、リファクタリングで挙動の変わらないコード整理を頑張った。エンジンが自作できたら、ツールも作らなければいけないよ。本当にやりたいことができるスプライトエディターなんて存在しないからね。
はっきりしないゲームのアイデアを持とう
ゲーム開発前からしっかりと曖昧なゲームのアイデアを持っていたおかげで、ゲームエンジンの開発にもゲームデザインにも長く時間をかけることができた。
たとえば、ゲーム世界の“端”に到達しないような無限に歩き続けられるゲームを作りたいな―と思ったら、それを実現するためにいろんな機能を作り込む必要があるので頑張った。でも、実はそれがつくりたいゲームじゃないと数年後に気付いた。そこまでに作ったデータ構造やアルゴリズムは、全部ゴミ箱行き。3か月もかけて作ったプログラムも、もっとシンプルなもので代用できた。
イメージがしっかり固まっていないまま制作を始めると、かならずイメージが霧散する。そのおかげで思う存分時間を無駄にできる。たとえば、開発中に発売された類似作品を見て、かぶらないように自作ゲームのオリジナリティを高めようとか。サンドボックスものが流行ったら、アンチサンドボックスの方向性を探したりとか。Mod対応が流行ったら、Mod対応なんて考えを捨てて、ユニークなコンテンツをこっちで用意してあげることに専念するとか。そんなこんなで、イメージがはっきり固まっていないおかげで市場に振り回されて、自分でもどんなゲームなのかちっとも説明できないような作品ができたりする。
クラウドファンディングしよう
個人開発だといずれ資金が尽きるので、開発を早めるためにはクラウドファンディングで資金を募るといいと思う。
いい準備をするために3か月。トレーラー制作とマーケティングは大事なのだ。反応は上々。こっちのやる気も出てくる。これで開発も早まって、普通はこれでお金が使えるようになり開発が早まるはずだけど、必ずしもそうとは限らない。僕のように開発に7年間費やしたければ、開発を早めるのではなくゲームをよくするためにお金を使うべきなんだ。資金提供の御礼の品(Tシャツとか)づくりも大変。お礼の品の品質にももちろん妥協しなかったよ。クリエイター次第だけど、妥協せずやるべきだね。
ブログにしょっちゅう投稿しよう
ゲームづくりは孤独な作業だから、TIGsourceみたいなところで友達を作って励まし合ったり、フィードバックしあうのはとてもいい。有限な時間を、開発ではなく交流にどんどん費やしていこう。ゲームを開発せずに、頻繁にゲームのアイデアを懇切丁寧に解説した投稿をブログにしていたら、賞までもらう始末。いつの間にかもっともよく読まれる開発者ブログになった。これもまた、開発者にとっての目標だよね。
全部自分でテストしよう
どんな製品でもテスティングは必要。どんな昨日もしっかりテストするべき。いろんな条件、いろんなプラットフォームでテストしていこう。ひとつの仕様を変更したら、全部また確認が必要になるけど、それも再テストしよう。何かがおかしいままになるかもしれないからね。間違ってもクラウドファンディングの出資者や友人にテストを依頼してはいけない。開発期間が縮まってしまうからね。僕はこの過ちを犯したけど、みんなは絶対にするべきではない。
できるだけほかのプロジェクトにも取り組もう
数年間毎日毎日ずっと同じプロジェクトをし続けていると、飽きてしまう。もっとこのプロジェクトを長引かせるために、ほかのプロジェクトにも取り組むことは必須。
ゲームジャムはいつでもやっているので、数日をかけてほかのゲームを作ってみるのもいいよね。『No Man’s Sky』のパロディーゲームはどうだい?3日で作ったものが、どんな商業ゲームよりも注目を集めてしまうこともあるよ。
(真面目な話をすると)ゲーム開発に必要なスキルは、いろんな能力がともなうので、オンラインコミュニティに入って、そこのコンペで磨くのがいいと思う。自分でコンペを主催して、それも力の入った企画をやったのも、いい勉強になったよ。時間も費やせるし!
結論
これらが、ゲーム開発を遅らせるためにできることの例だ。アンカンファレンスを主催したり、iOSゲームをリリースしたり、『スター・ウォーズ』のオープニングロールジェネレーターを作ったり、TwitterのBOTを作ったりするのもアリだ。
この記事を読んで、開発者にはぜひほかのプロジェクトに熱心になり、エンジンについて議論したり、クラウドファンディングキャンペーンをしたり、ゲームブログをしたり、しょっちゅうゲームのアイデアを変えてほしいね。その成果を僕にTweetしてくれ。ちなみに現在『MoonQuest』はSteamとitch.ioにて早期アクセス販売中だ。いろいろつらつらと書いたが、ここまでこれたし、多分時間が戻っても同じことをすると思う。ただし、次のプロジェクトは、絶対にもっと早くする。
以上が、記事からの翻訳となる。Porter氏の述べたことすべてが開発遅延につながるとは限らないが、少なくとも氏はこれらの要素に取り組み開発が遅延したと認識しているようだ。そんな迷走を繰り返しながらベータ版が発売された『MoonQuest』であるが、基本的なシステムはしっかりしており、かつ一定のオリジナリティも存在している。単に遊んでいるだけでは、開発に紆余曲折があったかどうかも気付かないのではないか。最後にまとめあげたPorter氏の力量がすごいのか、7年がモノを言ったのかは不明であるが、これもゲームの面白さなのかもしれない。早期アクセス期間は1年を予定しており、“8年開発されたゲーム”の冠を得られることは間違いなさそうだ。
Steamコミュニティでは、氏が自らマルチプレイの導入について問いかけ、否定しながら徐々に態度を軟化させる投稿をしている。マルチプレイで遊べるようになる可能性は無きにしもあらずといったところか。将来的には、ロケーションやクエスト、アイテムなどが追加されていくという。氏の7年の成果を確認したい方は本作を購入してみるといいだろう。
ちなみに、以下がPorter氏がこれまで手がけてきた(寄り道)プロジェクトの数々。なかなかどうしてどれも出来が良く、氏の才能を感じさせる。ちなみに、このうち7年の間に作ったプロジェクトの総数は35個あった。リンクはこちらから。