1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
Enclave GamesのAndrzej Mazur氏
ゲームジャム(Game Jam)にはさまざまな形があるが,その多くは24〜48時間という短時間でゲームをゼロから完成させることを目指す。だがその一方で,1か月という余裕のあるスケジュールでゲームの完成を目指すゲームジャムも存在する――ただしコードが合計で13KBを超えてはならないという,別の縛りがそこにある。はたして,この特殊なゲームジャムによって,参加者はどのような知見が得られるのだろうか? Game Industry Conferenceでの講演の模様をお届けしたい。

 短時間(24〜48時間)でゲームを作る「ゲームジャム」というイベントは,全世界で一斉に開催するグローバルゲームジャムを筆頭に,さまざまな団体(あるいは企業内)で行われている。
 そして,これまで多くの場合,「ゲームジャムがもたらすメリット」について語られてきたが,その一方で「ゲームジャムが持つ問題点」も,少しずつ開発者の間で語られるようになってきた。ひどく当たり前のことだがゲームジャムは開発者にとってのあらゆる問題を解決する銀の弾丸ではなく,利点もあれば弱点もあるということだろう。

 そんななか,普通のゲームジャムとは違った縛りで行われるゲームジャム「js13kGames」を,2012年から運営し続けているAndrzej Mazur氏が,ポーランドで開催されたGame Industry Conferenceにおいて「What can we learn from 800 games made for a jam, 13 kb each」と題し,js13kGamesによって得られた成果の発表を行った。その模様を簡単にレポートしよう。


1か月かけて,13KBでゲームを作る


 js13kGamesと銘打たれたゲームジャムにはさまざまな特徴があるが,最も大きな特徴はタイトルが示す通り,「JavaScriptを使い,13KB以内のコードで,ゲームを作る」ということにある。
 また,もう一つ大きな特徴として,js13kGamesの期限として1か月という長期間が設定されていることも挙げられる。48時間での完走が求められるゲームジャムと異なり,js13kGamesはあくまで「日常の業務の合間で」行われることが前提となっているというわけだ(無論,締め切り2日前から48時間ぶっ続けで開発しても構わないが)。

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 ちなみにjs13kGamesは作品の審査もあり,上位入賞者には賞品も贈られる。賞品は合計2万ドル分のソフトウェアライセンスに,無料の記念Tシャツ(配送料コミ)など,大変に豪華なものだ。
 2012年に始まったjs13kGamesは,当初60作品前後の応募だったのに対し,今では264作品の応募と,急速に規模を拡大している。

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 さて,js13kGamesにおける最も大きな制限は「13KB」という容量だろう。ざっくり計算すると1KB使うと日本語がだいたい500文字書けるので,6500文字書いたら13KBが埋まってしまう。
 しかしながらこのような制限は,ときにクリエイティビティを産む。その結果としてjs13kGamesは新しい技術を学んだり,ちょっとした小技を習得するチャンスとなったりもするという。
 また,これまでに開催されたjs13kGamesに応募された800近いゲームは,そのソースコードがすべてGitHubで公開されている。このため上位入賞者の作品はもちろん,自分が気になったゲームのソースを見て,そこで使われている技術を盗むこともできる。

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 js13kGamesの,もう一つの大きな特徴は「30日」という期限だ。
 24時間や48時間といった短期決戦のゲームジャムを見ていると,30日もあればなんでもできそう……と思ってしまうが,参加者はしばしば「13KBを使い切る前に,30日を使い切ってしまう」という感想を漏らすという。
 これはもちろんレトリック的な側面もあるが,実際に「時間が足りない」という状況に陥ることは珍しくないそうだ。というのも,js13kGamesの歴史の中で,さまざまなツールが考案され,それらがGitHubに残されてきたからだ。
 そして,例えば「3KBで音楽を生成する」といったツールを利用すれば,作品にBGMをつけることができるようになる――一方,それらのツールをどのように組み合わせ,また何を使ってどのような実装にするかというパズルの最適解を見出すには,相当な時間がかかるというわけだ。


小さく作って,磨き上げる


 さて,「13KBしか使えない」かつ「意外と時間が足りない」という前提に立つと,作れるゲームの限界も見えてくる。例えばMMORPGを作ろうとかいうのは,完全に無謀な挑戦だ。
 Mazur氏は実際にjs13kGamesで作品を作るにあたっては,「まずは小さく作る」ことを推奨する。プロトタイプを作り,ゲームのコアメカニクスを可及的速やかに完成させてしまうのである。

こういうゲームを作るのは無理
1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 そのうえで,Mazur氏は「完璧を目指すべきではない」という指針も提示する。これまでの受賞作品を見ると,バグまみれの作品でも1位を獲得したケースは存在する。また上位10位に入った作品のデザイナーは「もっとやれた」と思っていることが多いという。
 これを指してMazur氏は「js13kGamesは,あくまでもゲームジャムなのだ」と指摘する。大事なのは曲がりなりにも完成させることであり,完璧なものを作ることではない。そしてそのためには,プロトの段階で「これはダメだ」と感じたら,すぐさまそのプロトを捨て,次のプロトに取り掛かる潔さも重要だと氏は指摘した。

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 また,このプロトタイピングの繰り返しによって,「自分が存外に何も知らないということを知る」こともできるという。
 人は「知っていること」「これについては知らないと思っていること」の外側に,「知らないということすら,知らない」領域を抱えている。この最も外側の領域を知覚できるというのは,ゲームジャムが持つ効用の一つだ。

1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 さて,完成を目指すにあたってもう一つ重要になるのが,計画性を持つということだ。1か月という長丁場だからこそ(そして日常の業務と並行すればこそ),スケジューリングはより重要になってくるのである。
 また,スケジュールをしっかり管理することによって,ゲームにとってあまり重要ではないディテールにこだわりすぎるといった事態も回避しやすくなる。大事なのはシンプルなものを作り,それを磨き上げていくという工程なのだ。
1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは

 そして,この「磨き上げる」という工程において,イテレーション(繰り返し)は非常に重要な意味を持つ。
 イテレーションを効率化する最適手は,「自分をさらけ出すことだ」とMazur氏は語る。他人に遊んでもらって意見を聞いたり,あるいは自分ではうまく実装できない仕様について教えを乞う。「できていないことは,できていないこと」としてさらけ出し,「自分一人で何とかしようとしない」ことによって,より効率のよい改善のサイクルを作れるというわけだ。

 また,開発がこの段階に入ってくると,テストも重要になってくる。Chromeでは動いてるのにFirefoxではクラッシュするといった問題が露見するのも,だいたいこの時期だという。


完成させる意味と価値


1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは
 そうやって開発が最後のツメに入ってくると,いよいよ締め切りがプレッシャーとなってくる。だがMazur氏は「締切はあなたの友達だ」と語る。未完成に終わった夢の仕事よりも,完成した作品は常に高い価値を持つ。また制作者が得るものも,完成した作品からのほうが多い。

 それゆえ氏は「とにかく完成させて,それを投稿しよう」と語る。そしてそれでも余裕があれば,ゲームを作り込んでいけばいい――けれどこの作り込みの段階においても,「シンプルであり続けること」は重要な意味を持つとMazur氏は指摘した。

たった13KBでこれだけのゲームが作れる
1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは 1か月かけてJavaScriptで13KBのゲームを作るゲームジャム「js13kGames」がもたらした知見とは

 なお,このリンクから,2017年のjs13kGames上位入賞作品を実際にプレイできる。興味のある方はプレイしてみてほしい。

 js13kGamesは,ある程度の時間を使って計画的に開発を進めつつ,容量を13KBに制限することで野放図な大作化を防ぐという,興味深いレギュレーションを持つゲームジャムだ。従来の短期決戦型ゲームジャムに限界や疑問を感じているゲームジャム主催者は,このフォーマットを参考にするのも面白いのではないだろうか。