Roll Panda

こんにちは。3年前に作って開発ブログにまとめていなかった私の最高傑作ゲーム「Roll Panda」について解説します。
www.lexaloffle.com

はじめに

最近改めてゲームデザインについて考える機会が増えたので個人的な備忘録としてまとめます。
Roll Pandaは2021年6月頃に2か月程で開発した2Dアクションゲームです。
「転がる」と「ジャンプ」の2つのボタンでアスレチックを攻略し、ゴールを目指します。

設計思想

開発を始める半年前に面白いビジュアルの試作としてパンダを転がすシミュレータを作っていました。(https://nylon1919.github.io/panda/
このビジュアルで何か作れないかと検討し、パンダをプレイヤーとした転がるアクションゲームを作ることにしました。その際に自分が漠然と抱えていた課題として以下がありました。

  • 転がる挙動を実装したなら壁で反発してほしい
  • 反発して右から左に向きが変わったときキー入力を切り替えたりするのは実装面でも遊ぶ面でもめんどそう
  • 自分のゲームはスマホで遊ばれることもあるからアクションするにしても少ないボタンで作りたい
向きが急に変化した際左右キーでの移動だと気持ちよく遊べなそう

これらを考えたときに思い切って転がる(横移動)ボタンは1つで遊ばせることにしました。また転がっているときにソニックみたいに坂を登れたらいいと思い坂を実装しました。ただソニックのようにループする坂は実装が難しいし、面白くできる自信がなかったのでシンプルに坂があるときは壁を登らせてみました。それに手ごたえを感じたのでこの方針でアクションゲームを実装することに決めました。

転がったりジャンプしたりするパンダ
壁を爆速で駆け上がるパンダ

転がったり坂を登ったりジャンプしたりする挙動を実装したあたりで床などのパーツを増やしてみて感触をチェックしてみました。その際に最低限のことができればいいので半当たり地形のように接地判定だけつけて検証してみました。検証したところ壁を登って台に乗るという挙動にめちゃくちゃ伸びしろを感じたのでここを伸ばすことにしました。

最初の検証

そこで壁登り判定中のみ足場を半当たりとして処理して、それ以外では全当たりにする実装を入れて軽く地形の試作を行ってみました。その試作でこんなに少ない操作でもレベルデザイン次第で縦横無尽にパンダが移動できることを掴み、それにしっかり手ごたえを感じたのでプレイヤー挙動、物理をFIXしてレベルの量産に取り掛かりました。

最初の試作地形(完成したバージョンの最初のネタ)

レベルではあらかじめ以下の設計ルールを考えていました。

  • 坂の上に連続的に壁がある箇所で地形を2ユニット以上置いてはならない(壁登りで地形にめり込んでいるとき、途中で上昇をやめるとパンダが埋まるので、解決するには無理やり登らせるか降ろす必要があるがめんどかったため)
  • 幅2ユニットの接地する隙間を作らない (パンダの横コリジョンを微妙に2ユニットより大きくとっているため、2ユニットの隙間にパンダが入ると毎フレームパンダが反転しパカパカしてみっともないため)

また、操作が独特なため継続的にじっくり遊んでもらわないと面白さが伝わらないと思い、淀みなく遊べるようにミスやゲームオーバーは作らないと決めていました。なのでネタは失敗しても元いた場所に戻ることが前提で暗転などを挟まずに「さあ、もう一回」と遊ばせるのが目標でした。
レベルを量産するのはかなり時間がかかり、開発の9割の時間はレベルのことをやっていました。プレイヤー挙動や物理は1日でできたので工程的にはもっと短時間で完成すると思っていましたが、レベルデザインに1か月かかりました。というのも、開発2日目に自分が洞窟エリアと呼んでいるマップのちょうど半分まで作ったところで「戻されるように作るんだったら、意図的に戻ることもできて、どこでも往復できたほうが面白いんじゃないか?」と自分の中の悪魔が囁いたからです。それでそこまでのレベルを全部見直し、自分で遊んでみて、どこでも行って戻れるようにしました。最初のネタの穴はとても苦渋の決断でしたが、それ以外に戻れるようにする術が思いつかなかったので、泣く泣くすり鉢地形に穴をあけ帰れるようにしました。

洞窟エリア
すり鉢地形の穴、おそらく初心者最大の萎えポイント
こうしていろんな幅のネタを量産して全体を往復できるレベルに仕上げました。正直勢いで作っているので、スタートからゴールまでの順に作っていて後半になるほどネタ切れ感(ただ慎重に走るだけの通路や登るだけの階段など)が否めないですが、全部が繋がった状態で作っちゃったので、順序の整理なども気軽にできず、いったん完成としました。あと自分が飽き性なので、その頃には大分飽きていて、これ以上伸ばすとせっかく面白いのに完成しない気がしたのもありました。その後は他の人にも遊んでもらって、レベルの改修やタイムアタックの目安を設定するなど、最大までこのゲームの面白いところを伸ばしました。自分でもこのゲームが上手くなる感覚がめちゃくちゃ楽しいと感じていたのでなるべくそれが伝わるように作ることを心がけました。 ただデモとか語り部とか入れたかったのですが、めんどかったので、演出面はスタッフロールくらいしか頑張れませんでした。スタッフロールは作ったことがなかったので作ってみたかったのと、すごい出来がいいと感じていたので全部一人で作ったと自慢したかったから入れました。デモが作れたらグランマパンダ作ったり、グランマパンダへ笹のロールパンを届けに行きました、くらいのストーリーを入れたかったです。実際、笹のロールパンのスプライトは使ってないけど作りました。
マップ全体
作ったスプライト全体(家の左上にあるのが笹のロールパン)
あとは初見のまったく自分に関わりがない人でも遊べるようにルートガイドを設置したり、アクションを誘導するためだけのアイテムとして花を置きました。花はこんなにスプライト領域が余っているので形のわかりにくい円の集合体じゃなくてしっかり縁取りしてイラストにしたほうがよかったと思います。まあ反省点はいくらでもありますが、かなり質の高いゲームになったと思います。

総評

過去の自分が思ったより渋い作り方をしていて好感が持てました。当時は新しいものを作ったという達成感の方があったのですが、今思い返すと課題設計やどう解決したかが綺麗で、仕事でもないのによくこんなに向き合ったなあと思います。真面目にゲームを作ろうとしている意気込みを感じました。

Luccica the Witch 攻略法徹底解説

こんにちは、NYLONです。最近作りっぱなしで難易度調整とかレベルデザインが適当だった "Luccica the Witch" (https://www.lexaloffle.com/bbs/?tid=40635) をしっかり調整しなおして、ちゃんとクリアできる難易度にしました。でも、自分以外の人類がクリアするにはまだ難しいので、今回は攻略法や仕様を徹底解説します。

続きを読む

クリみくじ2021を作りました

クリみくじ2021(https://nylon1919.github.io/climikuji2021/)を作りました。クリみくじはかつてはTrouble_SUM(Trouble_SUM | Trouble SUM | Free Listening on SoundCloud)が年始に作っていましたが去年から僕が作ってます。制作のモチベーションはクリオンのクリをいかに面白く見せるかにかかってます。今年もよろしくお願いします。

f:id:himawarifurutani1919:20201231143713p:plain

作ったスプライト全体
続きを読む