RPGツクール素材メモ とかティラノスクリプトの話とか

同人RPGの制作で役立ちそうなスクリプト・プラグイン素材を書き留めておく

(同人誌)HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード

HTML5JavaScriptで作る 落ち物パズルゲーム 全コード
https://ruten.booth.pm/items/1751924

を読み終わったよ。

これは技書博第二回について手に取ったものだが、発行自体はそれより前に行われていた様子。
元々、このサークルさんのこの即売会の新刊であり目玉でもあった、

あの日僕は 120x120ドットの画面で シミュレーションRPG を作っていた
https://ruten.booth.pm/items/1694295

が欲しかったのだ、i-modeの100KBにデータを詰める、画面サイズは120x120、その中でSRPGを作る!
ファミコンでさえ256×240らしいので、殆ど人類未踏な領域か?
勿論それより前にはカセットビジョンとかあったけど、SRPGとか作らんし……)
いかにも熱い、面白そうな回顧録じゃないですか。
でぁまあそれはきっと他の人に於いてもそうだったのだろうか、行った時には既に完売だったのだ。
なので仕方ねえと手に取ったのが、この[落ち物パズルゲーム 全コード]。

これはJavaScriptぷよぷよコラムスみたいな落ち物パズルゲーを作る、
その全コードが記載されてるという薄い本である。
落ち物とか別に、ネット上に公開されてるコードを探せばそういうのあるだろとか、
本だとテキストエディタの補完がねぇから(コードが)読みにくいっす、
などの気持ちもありながら、
「(狙いの本が完売だったし……)いや、本という形式だからこそ、集中して読めて、参考になるかも知れん」
などと断じて購入したのである。

……でまあ、この本を読み終えた今、一言で申さば、
『かつてはi-mode、最近ではswitchのゲームなんてのを作られてる、
キャリアある作者さんが淡々とコードを述べたら、そりゃあ、まあ……』
であって、要はまったく危なげない。

これは最近111が感じているデータとプログラムの話にもなるのだが、
正しくデータが定義され、正しく運用されているなら、
プログラムの方もまったく危なげなく、そりゃそうなるよなあ、という物を綴るだけで足りるのだ。

本作のコードもそういう感じであって、1〜2割のアルゴリズムが関係するコードと、
あと残り8〜9割は、ただそれらを適切に扱う、事務的なコードがあるのみ、と感じた。

せめてコードを述べる途中で、初心者はこうやっちゃいがちなんだけどね、の注釈であったりとか、
こういう設計思想で行くよ……みたいな薀蓄であったりで
メリハリを付けてくれれば良いのだが、
基本は淡々と、コードと僅かな解説を述べて行くのみ……。

この危なげなさこそ作者の力量を物語るものかも知れないが、
少なくともこの本を楽しみ、何か得ようとするなら、
「こちらから」だいぶ肩入れして、読み取っていく必要がありそう(同人誌ぽくはあるな)

どうしてこういう処理にしたのだろう? こうは考えなかったのだろうか? を、自分で考えないといけない。
(そしてまったく危なげないコードでは爪が立たない感じ、それに凄く気付きにくい……)

サンプルコードを落として、実際にゲームとして実行してみた後、
なるほどなぁと再びプログラムに向き合ったり、
あるいは実際に手を加えて、変更を確かめてみる。
そうして設計の妙に初めて触れられる、そんな側面はあるかも知れない。

で、111もそう取り組んでみた結果……というのを書くと、文章は面白くなるんだけど、
うん、本と同時に貰ったDLカード失くしちゃってさ……。
サンプルコード落とせなくなっちゃったのよね……。


一応、自分なりに注目した所を述べれば、

・ブロックの回転アルゴリズム(画面端で回す時とか、ハミ出ない様にとかね)
・入力UIの抽象化(これはまさに今、考えないといけないなあ……と気にしてた所だった)
・シーンを管理するクラス(ただこれは、ツクールの方がもっと大規模にやってる記憶)
・画像、音楽をPromiseで連続で読み終わってから処理(あこれ、俺もつい先日やりました、同じ処理だ! と嬉しくなる)
・ごく短いコードでスマホ、webの場合分けを済ませている(ゲームの規模が小さいからというのもある)

など。
これらはきっと取り組み方、読者のレベルによって異なって来るのだろう。