Elpis (1)

ふと改めてFTLをプレイしてみたら、300時間が経過していた。

2012年にリリースされたFTLを、おそらく当時の自分はイージーモードで一度クリアしただけで満足してしまったのだろうと思う。イージーとはいえ知識も経験も無いプレイヤーにとっては十分ハードモードと呼べる難度のため、きっとクリアすること無く脱落してしまった人も多いのではないだろうか。それゆえに一度のクリアだけでこのゲームをやり通したという達成感があった。クリア後には新しい船がアンロックされたが、それがただの水増し要素に見えてしまってもういいやと思ったのもある。

ただ改めてやり込んでみると、イージーは確かにどうしようもなくイージーに感じられるようになり、そして全28種の船をアンロックするまでが本作のチュートリアルなんだということに気づかされた。初期条件が様々に異なる船は、こういう戦術もあるんですよと自然と分からせるようによくデザインされていて、単なるランダム生成を是としない意志さえ感じられた(ランダムにするのが難しかっただけかもしれないが)。

それほどまでにFTLの戦術にはバリエーションがあり、良くデザインされたランダム要素との絶妙なマッチングがこの上ない奥深さを感じさせてくれた。単なる運ゲーと言われる向きもあるだろうけど、感覚としては麻雀のように運の良し悪しの状況に応じた中での最善手を導き出す妙味があり、最終的な勝利に繋がる手を見据えて構築していく楽しさがあった。

自分にとってのオールタイム・ベストゲームはMount & Bladeであることは揺るぎない一方で、FTLにはまさに完璧なゲームという一言が似合う風格が漂っていた。いつしか自分の心の中で、陸の王者Mount & Blade、宇宙(そら)の王者FTLとして位置づけられることになった…。

~前置きここまで~

要はroguelikeであり、roguelike-like、rogue-liteだ。

ポセイドン・アドベンチャーから着想されたセプテントリオンというゲームは、船が沈没するまでの1時間の制限時間内にできるだけ生存者を救出しながら出口へ向かうのが目的で、あれをプロシージャルにしたようなサバイバル探索ゲームがあったらやりたいなあと感じたので、作ってみようと思った。

アクションも戦闘も無くていい。ただ脱出がしたい。そしてできれば勝手にドラマが生まれるようにしたい。

現況動画

最低限のロジックは実装できてきた感じ。演出とかレベル構成はまだこれから。

迷路状のやたら広い宇宙船内をできるだけ探索して、救難信号を出している生存者(緑マス)を回収しつつ、一方で自爆カウントダウンが待った無しなので制限時間内にゴール(青マス)に辿り着くというのが目的。操作はモバイルを想定しているのでスワイプで上下左右移動。

道中にはエイリアンがランダム配置されていて、出会ってしまうと連れている生存者を殺されてしまう(死ぬことで安易にドラマを醸成したい)。マインスイーパーのように隣接マスからの生体探知で居場所を推理して避けていかなければいけないが、迷路要素が加わって移動が制限されているため確定できなかったり避けようが無い状況になったりする。そんな理不尽な不自由さを逆に駆け引き要素として、有限リソースの爆弾を使うことで適所の壁をぶち抜いて活路を切り拓くというのが本作のミソとなる。

なお、爆弾で敵を倒せばいいじゃないかという話は無視しても良いものとする。

経緯

SpaceDungeon

SpaceDungeon

遡ること一ヶ月前、人生という名の迷路を彷徨うThe Beginner’s Guideをプレイ後だったこともあり、とりあえず迷路を生成してみた。そして主観に近づけたところ、ウッ、これは…昔のwindowsにこういうのあったようなと思い出す。迷路というものはなんとなく面白げな気がしていたが、単体ではつまらないという事実に気付かされる。ていうかそもそもあれはゲームじゃなくてスクリーンセーバーだった。

SpaceDungeon

しかし迷路はroguelikeの基本でプロシージャルなアプローチとしてやりやすい題材であるし、GDCの講演をDigったらその手の話がいろいろ紹介されていて面白かった。

http://gdcvault.com/search.php#&category=free&firstfocus=&keyword=Procedural&conference_id=

SpaceDungeon

迷路という題材のつまらなさをどうしたものかと思っていたところ、そうかこれは宇宙船(宇宙基地)でエイリアン2のような生体センサーを使って敵を避けていくんだろうと考える。要は主観的なマインスイーパーであり、エネミーゼロだ。(未プレイ)

この時点で敵を避けようが無いじゃないかと思ったので壁を壊すギミックを入れるのを前提にする。

SpaceDungeon

見た目的に仕切り壁を立てていく方式から、部屋と通路という構成に切り替える。部屋単位に区切らないとエイリアンが見えないという状況にならないので。また、通路はあるがドアがロックされているというステートなども表現できる。

SpaceDungeon

エイリアンを検知するとアラートを鳴らして緊張感を高めたい。

SpaceDungeon

SpaceDungeon

当初のイメージではゼルダやBinding of Isaacのような真上からの見下ろし視点にして四方のドアが見えるようしたいと思っていて、実際2Dの段階では問題なかったけれど、せっかくだから3Dにしようと思ったら板ポリで直立させたキャラが角度的に見えなくなってしまうという問題が生じる。

SpaceDungeon

SpaceDungeon

気晴らしに背景に宇宙船を置いてみて、Skyboxも設定して宇宙空間を航行しているようにする。

SpaceDungeon

暗がりを探索していくようにしたい。

SpaceDungeon

真上視点でキャラが見えなくなる問題の対処として、キャラだけ寝かせることでなんとかする。

SpaceDungeon

ただ影がつけてみると、寝ていることが分かってしまうので中途半端な感じになる。

SpaceDungeon

敵に遭遇したらやられた味方の死体がスポーンして部屋に残るようになると自分の選択判断の結果が残り、ドラマ要素になりそう。

そして冒頭に戦闘は無くていいと書いたけど、本当は道中ツモったアイテムを装備させて戦闘をやりたかった。それこそがFTL的な面白さだ。

でも生存者をぞろぞろと引き連れるようになるとランチェスターの法則で有利になりすぎるし、それに合わせて難度を上げると仲間が少なくなった時点で詰んでしまう。ならば人数制限すればいいのだが、この状況設定で探しだした生存者を連れて行けないというのもおかしな話になってしまう。結局味方は一方的にやられるだけにしたほうが、避けるべきものとして敵の存在が機能するのではないかと。

SpaceDungeon

SpaceDungeon

このへんで改めて迷路作りのアルゴリズムを見直してみる。

こういうモデルのことをあまりよく知らずに作っていたが、数学的にグラフ理論と呼ばれるもので特に無向グラフというものだと理解する。全経路到達可能でループ有り、ノードの繋がり具合を数値で指定できるように調整していく。

なんでもいいから探索したいぞという気持ちで作り始めたので、ランダム位置にスポーンしてランダム位置に設定されたゴールを見つけ出せばいいのではと思っていたが、それだけだと距離によって難度がバラつくし、経路探索して難度に応じた距離に配置するのも面倒そうだ。なにより進むべき目標が最初から示されていないのは手探り感としては良いけど、プレイする側としてやはり分かりづらい。

ftl-map

FTLは戦術やリソースマネジメントの妙が際立つけれど、ランダムに生成される星図マップも良い。進むべきゴールへの方向性があり、その過程の経路の取捨選択に上手く悩まされる。

プレイヤーとしてはゴールが見えているのが当たり前といえば当たり前なのだが、The Beginner’s guideでも作中でゴールを意味するLamppostがタイトル画面で象徴的に描かれていた。プロデューサー観点で作品に勝手に付け足された街灯はプレイヤーにとっての道標として不可欠である一方で、出口の見えない迷いのある過程こそ人生でありゲームであるという考えとは対立する。

SpaceDungeon

しかしまあ重力にしろ強制スクロールにしろ方向性があるのはやはり基本なので、結局縦方向に伸ばして手前からスタート、奥にゴールという分かりやすさを取り入れる。

SpaceDungeon

制限時間を超過したときに、物理オンにして後部のノードが崩落していくようにすると緊迫感がありそうだ。

SpaceDungeon

通路の有無に応じて壁を表示する。ドアで仕切られていたほうが宇宙船っぽさはあるが、通路が見えづらくなるので開けっ放しにした。ならば隣の部屋に敵が居るかどうかも見えるじゃないかという話だが、それも無視して良いものとする。(たぶん天井裏に居るので見えない)

あと視点をちょっと斜めにしてみる。スワイプ方向との若干のズレが生じてしまいそうだが。

SpaceDungeon

突破できない地雷原への対抗手段として、当初から考えていた壁の爆破処理を実装。

まあ壊すっていうか、内部的にはnodeとnodeの間に新しくedgeを作り出す創造行為だ。

SpaceDungeon

そういったところで2015年は暮れる。

関連記事: