Scratchでゲームを作るコツ

Scratchで複雑なことをするのは面倒だ。

しかし、ある時私はScratchの限界を知りたくなったので、

結構、複雑なゲームが作れるか試してみた。

 


ぷよぷよっぽいパズルゲーム

https://scratch.mit.edu/projects/250474669

f:id:programming-self-study:20220121180410p:plain




結論でいうと、失敗、ほぼ作れないと思われるというか、

作り方を間違えたというか・・

 


普通のゲーム作るときの感じで、描画処理を中心に作ったのが失敗。

描画処理と呼んでるのは、Scratchのペンを利用し、

画面で必要な情報をすべて変数で持ち、単位時間=0.1秒ごとに、以下のような処理を繰り返して、画面の表示を行う手法を言っています。

①ペンの描画をクリア

②変数から、状態を計算

③スプライトの位置を計算し、スタンプ

 


その結果、入力操作、ブロックに関する処理、描画時間がかみ合わず、

軽快に動作しなくなってしまった。

Scratchでパフォーマンスの問題は解決しにくいという結論になり、

これ以降、軽快な動作を確保しつつ作ることを教訓に得ました。

 


次に、RPGなどのマップチップを活用したゲームに挑戦しました。

https://scratch.mit.edu/projects/417775647

 

f:id:programming-self-study:20220121180246p:plain

ちょっとバグってますが、描画自体はできます。

しかし、続けていって、わかったんですが、素材数の暴力がきつい。

Scratchでは仕組みが簡易的過ぎてある程度の情報量があると、DBが使えないのが厳しくなります。

 


キャラクターの動きなど、リソースが増えるほど、

ロジックが増える、素材も増える。

そう、つまりゲーム開発は素材との闘いなのだと気づいたわけです。

 


そこで、素材の少ないゲームといえば・・

ADVゲーム風のUIを作ることにしました

https://scratch.mit.edu/projects/417125372/

f:id:programming-self-study:20220121180338p:plain




これはうまくいったかな、ストーリー部分の入力は気合が必要になります。

 

こんな感じでまとめると、Scratchでゲームを作るコツとして、

以下3点を気にする必要がある。

 

①メッセージの制御

作るゲームにはどういったシーンがあるのか?

シーンに応じて、メッセージを作るとよさそう

 

②リソース数の検討

登場するキャラクター数、モーション数、エフェクト数、アイテムなどのアイコン数、

効果音など、使いまわしも加味しつつ、全数が少なくなる検討が必要

 

③入力制御、表示時間の管理

ペンによる描画なら、1コマあたり、何秒間隔で表示するのか、

クローンを使うなら、メインのゲーム画面で、大体どれぐらいのクローン含めたスプライトで動作するのか

実際試してみて、すこしでも表示が遅いと感じるなら、減らすか、

そもそも、絶対数を決めてゲームを作るか

 

そうなると、RPGのようなリソースが多いタイプのゲーム、

格闘ゲームのような、入力時間がシビアで制御が複雑なゲームは結構厳しいということになる