Neosでパズルゲーム作った
はじめに
みなさんこんばんはVR生活満喫してるでしょうか?Hamadoriと申します
7~9月でNeoCubesという3Dテトリス風ゲームを作りました。
NeosVRでガッツリLogixを組んで作ったガジェットは初だったのでその時の感想をまとめていこうと思います。
ー目次
・Neosで作って楽しかったところ良いところ
・難しかったところ、反省
・開発中やってみてよかったこと
・まだ悩んでるところ
内容ですが、基本的に解説記事ではなく日記です。なので「Neos面白そうだし、ちょっとゲームとか作ってみたいな~」ぐらいの方向けかと思います。前半はざっくりモノづくりの話ですが後半になるにつれてNeosでの開発の細かい反省などになっていきます。なるべくくどくないように要所だけ書いたつもりですので良ければご覧ください。
楽しかったところ、良いところ
・とりあえず思い立ったら作り始められる
忘れがちですがとても大事な良い所です。Neos VR内で思いつけばはその場で試せるというのは非常にメリットだと思います。Neo Cubesも最初は「つかんだものを話した時に原点に戻る箱」が「つかんだものを話した時に原点に戻る箱群」になってこれテトリミノっぽいな・・・がスタートだったと思います。「遊び場」と「モノづくり部屋」が同じ空間だからこそ起こるインスピレーションも多いと感じました。
・早い段階で遊べる、人に遊んでもらえる
上記と似たような話かもしれませんが、「動くものがすぐ目の前に出てくる」という直ぐにフィードバックを得られるのはとても良いですね。普通は開発する場合ビルドやアップロードが必要な場合が多いので、そこのラグがないのが良いと思います。
あと作ってる最中のモノも同じ空間で共有できるので、いろんな人に早い段階でガチャガチャしてもらえるのはめちゃくちゃメリットがあります。
・モチベが上がる
・リアクションから面白くなりそうか、一工夫必要そうかの判断ができる
・想定外の動き、挙動などを早めにキャッチアップできる
・モチベが爆上がりする
あと遊んでくれた人がNeosに強い人だと不具合を直してくれたりLogixを整理したりしてくれます(実話)
難しかったところ、反省
・Logixはカオスになりやすい
VR空間上にノードを配置してつないで組んでいくので、まぁまぁカオスになります。後半の【やってよかったこと】にカオスにならないTipsを記載してますが、それでもある程度は逃れられないので色々と工夫がいるなぁ…と感じるポイントです。
・デバッグが大変
いくつかパターンがあって主に2つかと思います。
1.ForやWhile中の不具合がどこで起こったか分かりにくい
2.複数ユーザで動かした場合に起きるパターンが結構ある
1は書いたままですが、正直Neos内で解決できそうな気がする問題な気もしています。(While内で値が切り替わる度に値を保存していってそれを保存していくLogixとかは組めそう)
2.はNeosの構造上「誰が実行したのか」で挙動が変わる場合が結構あることで起こります。詳細についてはあむさんとかオレンジさんが解説してくださっている内容がとてもまとまってるのでそちらをご覧ください。逆に結構あることを意識できていればそこまで嵌らない…と思います。
・パズルゲームはやめとけ
自分はゲームアイデアベースで突っ走ったので、ほぼコンポーネントとかを活用した作りになってないです。テトリミノがGrabbableで掴めるくらい?そのためかなりLogixでゴリ押してます。コンポーネントは活用できればかなりのLogixを削減できる可能性を秘めているので、活用した方がいいです。そして結構多めの判定処理が必要なパズルゲームはあんまりオススメ出来ないなと思います。と書きつつ僕の2作目はパズルゲームです。モチベファーストです。
やってよかったこと
・Dynamic Impulse Trigger、Dynamic Impulse Receiverを多用する。
LogixにはDynamic Impulse Triggerというノード名前を指定すると同じslot下にある同じ名前のDynamic Impulse Receiverというノードがimpulseを出してくれるんですが、これは使った方がいいです。TriggerとReceiverで繋がった先は別々のノード群とすることができるので、logixノードがカオスな一塊になることを防いでくれます。メッチャダイジです。難しそうだな~って人もこんなノードか~と頭の片隅に入れておくと、いつか困ったときに役に立つ気がします。
・なるべくImpulseをつなぐ線は一直線に
ノードの置き方の話ですが、「これどう配置してもごちゃごちゃしちゃうな~」というパターンはよくあります。その場合はImpulseをつなぐ白い線だけ繋いでおきましょう。すると何かあった場合にImpulseを辿ると何が起こってるかが辿れるので、比較的混乱せずに済みます。逆にImpulseがごちゃついたり遡ったりすると混乱のもとなので気を付けましょう…といっても個人の感想ですが、これも頭の隅にでも置いといてもらえるといいかなと思います。
まだ悩んでるところ
・見た目の遷移の管理をどうするか
ゲームを作ると表示の遷移が必要になることがよくありますが、これの管理の仕方が悩ましかったです。今回NeoCubesでは【タイトル(モードセレクト)→スタート演出→ゲーム中表示→リザルト画面→タイトル】という4つだけなんですが「GameOverとClearの両方についてるRetryボタンは使いまわしたいな~」という色気を出したら大変混乱しました。なんだこれ
ValueFieldの値が~だったら~みたいなLogixなんですけど、やめた方がいいですね。やっぱりDynamic Impulse Triggerを活用してそれぞれの表示に持たせるのがいいのかな~と思いつつも結論は出ません。いい案募集してます。
おわりに
NeosVRに限らないですが、聞けば教えてくれる、直ぐに見せれるような環境がある界隈というのは非常にクリエイターに易しい環境だなと作ってて思いました。
次回があれば前述の「デバッグが大変」とか「見た目の遷移の管理をどうするか」あたりが解決したらそれを記事にしようかなと考えてます。
宣伝
NeosFesta2開催中!Hamadoriゲームセンターという名前で出展してまして、9月に公開したNeosCubesを色々アップデートさせたものを出してます!ぜひ見に来てください~
はまどり
この記事が気に入ったらサポートをしてみませんか?