見出し画像

GAMEJAM完走したけれども ワールドクラフトとか スクリプトとか

GAMEJAM 2022 in autumn 終〜了〜

走り切ったぞ〜

発表されたテーマを元に48時間でゲームを制作する,
cluster最大のゲーム制作イベント「ClusterGAMEJAM」
今回の2022 in autumnでは, 優勝で50万円, 準優勝で10万円の賞金ということで,
これまでに増してクリエイターに火をつけるイベントになったと思う.
さらに, 前回は一部門の枠にあったワールドクラフト部門
CCK部門と同等に優勝, 準優勝, 各部門賞が用意され,
参加するクリエイターの幅も広がったのではないかと思う.

わずか1週間前にスクリプト機能が実装され, 今までにない, あるいは非常に困難だったギミックが作れるようになった.
この1週間,その可能性を開拓せんとするさまざまな試みや,
逆にプログラミングに馴染みのないクリエイターの「スクリプトなんもわからん」という悲鳴も聞こえてきた.

私も私で, 多少Pythonを扱った経験があるものの
Javascriptは完全に未知の言語で(JavaとJavascriptの違いも知らなかったぐらい),
その扱いにスクリプトと戯れる日々であった.

私が参加したのは今回で3回目だが,
新機能への期待や恐らく今回のGAMEJAMの目玉になることへの切迫感もあったか
これまでにない慌ただしさというか忙しさというか, 賑やかさがあった.

気分としては1週間GAMEJAMをしていたようなものである.

ワールドクラフトの可能性

すーぱー宣伝たいむ!

さて, そんな感じでJavascript歴11日で制作したワールドがこちら.

私がスクリプト機能実装後, 多少ClusterJavascriptの使い方を理解してから探究していたのが「ワールドクラフトでのシューティングゲームの実装」だった.
そして「GrabbableItemとその子の独立した挙動」と「決まった動きをするオブジェクトとの疑似衝突判定」をGAMEJAM開始前にある程度実装できた.

今回のGAMEJAMのテーマは「はかる」ということで,
動くリングの中に, ある程度落下しながら飛ぶディスクを通過させる,
距離とタイミングをうまく「はかる」ゲームを制作した.

ぜひ遊んで体感してほしい. まあそれなりにきちんと動く.
(…はず. 大丈夫だよね? バグってないよね? まあ大丈夫だとして, )
ワールドクラフトとしては新しいジャンルの作品になったと思う.

CCKでよくね?

…思った.

やってみて分かったが, (やらなくても分かると思うが)
現状のワールドクラフトのスクリプト機能で
衝突なんかの色々な要素を取り入れたゲームを作ろうとすると, 結構な力技になる.

「Aim Ring!」を例にとれば,
親と子を独立させて動かそうとすれば, ワールド空間上の座標を親の中のローカル座標に変換して親の動きに応じて子を移動させ続ける.
(CCKならコンストレイント1つ使えば事足りる)
衝突判定っぽいものを作ろうとすれば, 当たるアイテムの挙動を全て覚え込ませて衝突判定がある間自分と相手の位置を計算させ続ける. 
(それゆえ当たるアイテムの数が多いと処理の負担が大きくなる. CCKならOnCollideItemTriggerを使えば事足りる)

よりスマートな方法はあると思うが, いずれにせよCCKに比べ面倒である.
そもそもこういう処理を簡単にするためにUnity, CCKのサポートがあるわけで.

ワールドクラフトの可能性を開拓する上で有意義なワールドだとは思う.
だけどCCKでやればもっとずっと簡単に作れる. SEもエフェクトも付けられる.
純粋に面白いゲームを追い求める上で, 簡単なゲームをわざわざ面倒なやり方で作る必要はないのである.

見ようによっては,
CCKと土俵が分かれることが前提のGAMEJAMで勝つためだけの技術
ともとれないか.

ワールドクラフト×スクリプトの可能性

果たしてどうだろうか?

ワールドクラフトの強みは,
clusterアプリからそのまま作成に入れる手軽さと,
何より複数人でわいわい開発できる楽しさにある.
(…と思う. 私まだ複数人開発やったことないんだよね. ぜひやりたいね)

そして先ほどワールドクラフトの制約の中でギミックを作るのは面倒と言ったが,
それは最初に作る人の話である.
スクリプトならコピペで機能を真似できる.
一度作ってしまってさらに関数化するなりなんなりして誰でも簡単に使えるようにしてしまえば, 何ならCCKより簡単にギミックを共有できる.

(CCKでもunitypackageを作れば機能を共有できないことはない. しかしギミックだけを抽出したパッケージを作る手間や, コンポーネントを移す手間のせいかあまり活発ではない. せいぜい作り方を教える程度)

なんだったら, ワールドクラフト向けのギミック制作補助スクリプト,
ユーザー製ワールドクラフト用CCKのようなものだって作ることができる.

スクリプトに詳しくない人でも, とりあえず補助スクリプトを先頭にコピペして,
あとは適当な関数を使うだけで簡単にギミックを作れる…という状況も作れるのだ.

今回私はワールドクラフトでシューティングゲームを大層な手間をかけて作った.
しかし, あとはこのスクリプトを誰でも使えるような形にすれば,
簡単なシューティングゲーム程度ならスクリプトのコピペで作れるようになる,
かもしれない. (まだやってないからはっきりは言えないけど…)

さらに,
ワールドクラフトで他の人が作ったモデルにスクリプトを付与できる仕様になれば,
他の人が作ったモデルにスクリプトのコピペと適当な数値の指定をするだけで,
オリジナルゲームを作れるようになるかもしれない.
(運営さんの方針もあるので何とも言えないけど…)

こうなってしまうと,
UnityやCCKを導入するよりずっと簡単にゲームを作れるようになるのでは.
ワールドクラフトならその場でスクリプトを試して, しかも共同作業がやりやすい.

どうだろう. わくわくかな?

もちろん, こんな未来は私一人では作れない.
既にスクリプトの使い方を模索し始めているクリエイターさんたちと協力して,
使えそうなスクリプトはどんどん共有していく…だけでもたぶん足りない.

もっと多くの, 色々な方の創造力が必要だ.

というわけで皆スクリプトで遊ぼう!

スクリプトについてのあれやこれ

制作の敷居…上がった?

clusterがスクリプトに対応したことで,
プログラミングみたいな専門知識が必要になった…(泣)
といった話をごく稀に聞く.
だがこうした話には何かと誤解があるように思う.

まず当然のことだが, CCKで作れるワールドの数が減ったわけではない.

皆さんはCCKで作れるワールドの数を, どのくらいだと感じているだろう.
10億ぐらい?(まあ実際はもっと多い…というか無限だろう)
では, スクリプト機能が追加されて, 作れるワールドの数はどうなっただろう.
100億ぐらい?(まあ実際は略)
で, 今のclusterにあるワールドの数……1, 2万ぐらいじゃなかろうか.
ある意味誤差である.

CCKだけで見ても, まだまだclusterのワールドには開拓の余地しかない.
(これまで私はCCKでの制作が主で, そこだけでも作りたいものが溢れている)

というか新規性とか個性とかどうでも良いから作りたいものを作れる方法で作れば良いのである.

また, 私としてはこちらを強調したいのだが,
clusterのスクリプトはたぶん想像されているより簡単である.

本来のJavascriptがどのようなものかは詳しく知らないが,
少なくともClusterJavascriptについては, 
タイミング指定(トリガーにあたる)と処理(Logic, Gimmickにあたる)の組み合わせ,
つまりCCKとさほど変わらないノリでシステムを作れる形になっている.

一般に, CCKがJavascriptに対応したと呼ばれているが,
実際はJavascriptをCCKに対応させたという表現の方が近い気がする.
それぐらい, 構文の形がCCKに寄せてあるのだ.

また, 処理が複雑になってもごちゃごちゃしなくなった,
処理順をtimerでいちいち指定しなくて済むようになったなど, 
慣れてしまえば直感的に管理しやすくなった部分も大きい.

恐らく「スクリプトなんも分からん」となってしまった方は,
スクリプトが対応した直後に公開された記事を見て
「???」
となったのではないだろうか.

分かる. その分からん分かる.

あの記事はClusterJavascriptのさまざまな機能を,
いくつかのシンプルな事例にたった2枚の記事でまとめきったという点が強い.
しかし, Javascript, ClusterJavascriptの使い方を1から学ぶことには向いていない印象だ.

だが重ねて言いたい.
ClusterJavascriptそのものはCCKの構造を受け継いだもので,
そう制作ハードルを上げるものではないと思う.
つまり, 必要なのはそれを分かりやすく説明した解説である.

解説記事紹介

僭越ながら,
私もスクリプトが対応した後突貫で理解した部分について解説記事を書いてみた.
Javascript歴3日の時点で書き始めた記事で正直内容に粗が多いかもしれない.
しかし, 時間をかけず突貫で理解したからこその分かりやすさやとっつきやすさがあるのではとも思っている.

とはいえ私も私で,
Javascriptの経験はないがCCKの事前知識はある人が
CCKの延長線の感覚でClusterJavascriptの使い方を理解でき,
自分で考えて新しいスクリプトを生み出せるようになる,
といった設計で記事を書いている.
ワールドに即座に使えるギミック例よりは仕組みの解説が多く,
ワールドクラフトでの解説も後回しにしている.

そのため, 他の方の解説も大いに助けになってくれるはずだ.

公式の方でも, プログラミングの事前知識が一切ない人向けへの解説記事を準備しているらしい. 楽しみである.

おわりに

何はともあれ, GAMEJAMのようなお祭りは楽しい.
創作はもちろん, 多種多様なゲームが一気に産声をあげ,
またたくさんの人が集まってゲームを遊ぶ流れが生まれるのも良い.

授賞式まで1週間.
ふふ…ふふふ…ひぃ

この記事が気に入ったらサポートをしてみませんか?