maktopia

make-u-topia

1から10に育てて、10をみんなに届けるために -- #ゼロワンウォーズ 制作裏話

概要

今年の駒場祭で、モラトリズムというなんだか構成メンバーがどこかのサークルにいたような面々のサークルの雇われメンバー*1として、新作謎解き公演を制作しました。


このゲームはあなたがタブレットを操作し、インターネットの危機を救う謎解きクイズバラエティです。

とあるように、この謎解き公演にはタブレット端末が登場し、プレイヤーが操作することになります。
僕は主にタブレットアプリのプログラマーチームのリーダーとして開発をしていました。
まあ、タブレットアプリのプログラマーチームの人数は1人なんですけど。

というわけで、制作中のウラ話とか、隠れ仕様とか、どうしてそれを導入したのか、あたりのことをまとめてみたいと思います。
AnotherVisionでプログラマーとして何か仕事をしたい人のための話はあまりなく、どちらかというとAnotherVisionの人なら誰にとっても一定の知見になるようなことを書いていきます。

注意

この記事には、文章の構成上「0/1 WARS」の激しいネタバレが含まれます。
今後、0/1 WARSは再演の可能性があるので、ネタバレを読んでしまうとゲームに参加して楽しめなくなる可能性が高いです。
本質的にゲームのネタバレになってしまう情報は下のように折りたたんでいます。


ネタバレ
ここにはネタバレが書かれています。

自己紹介

いわゆる若い人々は僕のことを何もしらないはずなので、自己紹介コーナーです。

  • 名前:
    • まけトピア
  • 学年/期:
  • やっていたこと:
    • プログラミング, デザイン, 音楽, 動画など
    • 第4回スプラトゥーン甲子園 関東地区大会DAY1 準優勝
  • AVCC2017の記事
    • maktopia.hatenablog.com
    • もっとちゃんとした自己紹介とか、もっと大事なことはこっちに書いたので、6期の人とかは読んでみてください。

開発の状況

作ってた人の役割

  • まけトピア
    • ほぼすべてのロジックをコードにする
  • おやゆび
    • まけトピアが作ったプロトタイプから、デザイナーのmewmoさんから受け取ったデザイン素材を差し替えたり、問題データをポチポチいれる仕事。
    • ディレクターとして、仕様を決めたり、まけトピアが作った挙動にOKをだしたりする。

実際のスケジュール感


  • 10/27 コードを書き始めたらしい
  • 11/03 スプラトゥーン甲子園
  • 11/15 ゲームの基本的な部分のプロトタイプが完成したらしい
  • 11/15〜11/23 怒涛の仕様決定・変更にあわせてプログラムを実装
  • 11/23 未明 (←駒場祭1日目) 初版が完成
  • 11/23 朝8時 OP動画などを差し替えたv1.1が完成
  • 11/24 未明 バグ修正や一部仕様変更に対応したv1.2が完成

なんで公演ができたのか理解できないスケジュールでしたが、これは

  • 僕とおやゆびが同じ寮に住んでいて、家にいる間はコミュニケーションが容易に取れる
  • 僕とおやゆびがマブダチである
  • NMAタブレット制作の経験があった
  • 甲子園パワーで自己肯定感が高かった

ことでギリギリ成立していたのだと思います。もっとスケジュールは余裕を持ちましょう。
マブダチでない間柄の人だったら50回ぐらいシバいていたと思います。

余談

  • 大学の哲学の授業の発表とか、インターンとかをまともにやりながら開発できたのは偉かった
  • 駒場祭1週間前になんか学会に行かないといけなくて開発ができる貴重な週末が消えていった...
    • しかも体調を崩してぶっ倒れたというおまけ付き
    • 駒場祭3日前とかはずっとトイレとPCの前を往復していた

プログラムを書いていて楽しいこと

自分はプログラムを書くこと自体がまあまあ好きな方ですが、やっぱり自分が意図したとおりに動いてくれると楽しいです。逆に、意味不明なバグが起こるとブチギレるんですけど。

プログラマーというと提示された仕様を形にしていくだけのように思うかもしれませんが、実際のところ発注される仕様というのは思ったよりフワフワしているものだったりするわけです。
どういうふうにすれば気持ちよく操作できるようになるかとか、見た目がかっこよくなるかをいろいろ考えて手を動かすのが楽しいので、実は結構考えることがいろいろある仕事です。
もちろん、ゲームの中身と関わってくるような部分は偉い人とちゃんと相談する必要があるし、そこで時間を無駄にしないためにちゃんと確認を取る必要はあります。

このあたりは、AVでいつも作っている謎解きでデザイナーをやることになると同じような気持ちになると思いますが、プログラムをいじること特有の良さとして、モノにインタラクティブな動きをつけられることだと思います。
「プレイヤーの操作にあわせて、何かが変化する」というのは普通には人間のスタッフの介入がないと実現できないことで、なおかつインタラクティブな動きがあるだけで「かなりそれっぽくなる」のが、作ってて面白いところだと思いました。

0/1 WARSのネタバレ納期が迫ってくるとアイデアが突然浮かんでくる病気というのがあると思います。
それ系のエピソードとして、問題に正解にしたときのマスの色が変わる演出に、ふと思いついたエフェクトをちょっと追加して、寝ていたおやゆびを叩き起こして見せたときに結構喜ばれた、というのがあって、印象的かつ嬉しかった場面です。
ちなみに、エフェクト自体に元ネタがあるんですけど、わかる人がいたらいいな

それぞれ自由な楽しみ方ができるように

一般的な謎解き公演では、「すべての謎を解き明かし、○○をして△△をして...した人が脱出成功です!」という締めの文句の通り、「脱出成功」という称号を得るためには、製作者が用意したすべての問題を解く必要があります。

この構造は非常にシンプルかつわかりやすいですが、1問の小謎*2で詰まってしまうだけで、原理的にはゲームをクリアすることができなくなります。

当然、僕たち製作者側もそんなことはわかりきっているので、詰まっている人たちにはこっそりヒントを出してあげるという仕事を公演中に行いますが、いろいろと限度もあります。
本当の初心者の人は大謎*3までたどり着かずに終わってしまい、ゲームを十分に楽しめずに終わってしまう、ということがそれなりに起こります。

謎解き公演は、その性質上、最初の1回だけしか楽しむことができないもの*4なので、なんとかお客さんには最後まであと1歩ぐらいまでの段階までは進んでほしいという気持ちがあります。

このあたりの問題を解決する方法として、「公演に出てくる問題をすべて解く必要はない」形式を、昨年のNMA、そして今年の0/1 WARSに導入しています。
つまり、プレイヤーは自分が解きたい問題をある程度自由に選択できるし、解けない問題は解かなくていいということです。

NMAと0/1 WARSのネタバレNMAでは関門にあたる部分に突入するまで、とりあえず手当たり次第解けるものを解け、というスタイルでしたが、0/1 WARSではスパコンという目標が用意されていて、そこを目指してもらうという解く問題の動機づけに関して多少の違いがあります。

会議中では、「オープンワールド」という言葉が全体のイメージ共有のためによく使われていました。

0/1 WARSのネタバレオープンワールド」でもしかすると察しのいい人は気づかれたかと思いますが、「ゼルダの伝説 ブレス オブ ザ ワイルド」をいろいろとリスペクトして作られています。
f:id:mak4026:20181127162016p:plain
あるいは、「Splatoon2 オクト・エキスパンジョン」の路線図にも共通するところがあるかもしれません。
f:id:mak4026:20181127162152p:plain

誰にでも十分に遊んでもらえるように

解く問題を選択できるようにしたことで、初心者の人の敷居はすこし下げられました。
しかし、詳しくは後述しますが「製作者的にここまでたどり着いて遊んで欲しい!」というところまで持っていくには不十分だったので、「プレイヤーのクリア状況を見ながら、初心者っぽいプレイヤーの場合は動的にゲームの難易度を調整する」仕組みを実装しました。

こういった仕組み自体はビデオゲームだと珍しいものではなく、古く遡れば不朽の名作「星のカービィ スーパーデラックス」でも実は実装されているらしいです。
waddledx.hatenablog.jp
もうちょっと最近の話だとこういうものもあるみたいです。
news.denfaminicogamer.jp

会議をしているときに僕が(実装をしようと)提案した気がする(うろ覚え)ですが、こういう実装の闇を見て自分の首を締めることを言い出したのはいろいろ理由があります。

謎解き公演で、プレイヤーにあわせた難易度の調整は「ヒントカード*5」を用いて行うことがあります。
個人的にこの方式があんまり好きではなくて、その理由として

  • 今の自分が、ヒントカードを見るべき状況であるかを、自分で判断するのが難しい(場合がある)
  • ヒントカードを見ること自体が「何かに負けた」気分になる
  • という意地を張って見るのを躊躇ったせいで時間不足でゲームクリアに失敗する...となると見なかったことを後悔する

というのがあります。つまり、(これは自分の性格の問題ですが)見るのはなんか嫌だし、かといって見なくても後悔することがあるわけです。
こういう不満をできるだけ感じないような調整の方法があればいいなあと思っていました。

また、今回はタブレット端末をつかうので、機械的に各プレイヤーのプレイ状況を集計できて、問題を出し分けたりすることもかなり容易でした。
人力でプレイヤーごとに(動的に)問題を出し分けるのは、ミスを引き起こしかねないので、かなり運用が困難だと思います。

そんなこんなで、都合のいい条件とモチベーションが揃っていたこともあり、実際に実装されることになりました。

0/1 WARSのネタバレまず、この公演における「製作者的にここまでたどり着いて遊んで欲しい!」ところは、もちろんスパコン戦」です。
初心者の人にも、スパコン戦に挑んでもらえるように調整をしようという話になり、最終的には、ある条件を満たす初心者っぽい人は、本編のマップサイズを通常サイズの11x11から9x9に変更することになりました。
なお、スパコンにたどり着くまでの小謎も簡単な問題だけを解いて進めるルートが確保されています。

そして、ある条件というのを決める必要がありました。しかも、マップのサイズが突然変わるのは明らかに変なので、これを見せないことも必要です。

そこで、チュートリアルを使うことにしました。
具体的には、

  • チュートリアルではマップの中心部分の一部だけが表示されている。
  • チュートリアルを時間内に解けたプレイヤーと、解けなかったプレイヤーで難易度を分岐

という感じです。
自分たちでは「始まりの台地システム」と呼んでいました。この呼び名ももちろんあのゲームからですね。

本家のあのゲームを始めた段階では、マップには始まりの台地しか表示されてないですが、パラセールを手に入れて始まりの台地を飛び立つと、実は世界は想像の10000倍ぐらい広いことにようやく気づくことになります*6
世界の広さをあえて隠して驚きを生み出していることをアレンジして、「世界の広さがそれぞれで違っててもいいんじゃないか?」と思ったのが着想のひとつでした。

AnotherVisionの人のような謎を解くのが上手い人には、おそらく絶対に発動しないシステムだと思いますが、学園祭の公演では家族連れのお客さんがかなりの割合でいらっしゃり、実際に発動しているお客さんもいるようだったので、まあそれなりに意味はあったのかなと思っています。

本当は、11x11のマップの1段階上の難易度も作ろうか?という話をしていたんですが、いろいろとリソースが足りなかったので断念しました。
もし再演があれば、実装されてるかも?


さいごに

かくして、いろいろ格闘してましたとさ。
やりたいことがやれて概ね満足でした。

駒場祭の公演は抽選がものすごかったので、並んでくださったのに遊んでいただけなかったのは残念でしたが、駒場祭のいろいろな事情があり仕方ないところもあり・・・
再演があるといいんですがどうなるんでしょうね

特に理由はないですがほしいものリストを貼っておきます。
http://amzn.asia/1J9d8BG

*1:重要なことですが、正規メンバーではないです。

*2:ゲームのストーリーに大きく影響しない、小さい問題

*3:ゲームのお話を利用した、大掛かりな仕掛けの問題

*4:最近はリピーター公演だなんだと例外はあるみたいですが

*5:問題に詰まったときに、解きやすくなるようなヒントが書かれているカードを公演開始時に配っておいて、「困ったら見てください」とアナウンスする。

*6:始まりの台地時点で既にはちゃめちゃに広いわけですが

i have no words.