見出し画像

学校の課題でスクラッチが出た話 - 週間ゲーム制作雑記#04

こんにちは。前回から1月以上の期間が開きましたね、ゲームクリエイター志望の商業高校生、β。です。今週も、週間ゲーム制作雑記をやっていきましょう。

長らく期間が開き、さぞ開発も進んだのだろうと思われるかもしれませんが、実際のところは実装に困って開発がストップしてしまっているだけなのでお見せできるような進捗はありません。サボらないために始めたnoteですが、結局こうもグダグダになるとは……。春休み中、少しでも開発を進めたいところです。

ではなぜ今回noteを書くに至ったのかというと、本校の春休み課題でScratchでゲームを作ろうという課題が出た話がしたかったからです。

いや……うん。信じられないかもしれませんが、本当に出たんですよ。商業高校情報処理科二年生の春休み課題に。

基本情報を取れるくらいの勉強をしてきたのだから、HTML5でブラウザゲーム作るとか、Unityでゲームを作るとかでも全然よかったと思うのですが……。教師が教えられないんですかね……。

適当にやってもよかったのですが、あまりにムカついたので本気を出してみることにしました。

そんなわけで、今回はScratch開発の中で躓いたことや、気づいたゲームエンジン・一般的なプログラミング言語の偉大さなんかを紹介していきたいと思います。

まだ完成していないので公開できていないのですが、完成したら公開したいと思ってるのでもしよかったら遊んでください。

限られた機能を使っていろいろ工夫する感じは、マリオメーカーとかウディタをやっていた記憶が蘇って思ったより面白かったです()

1.ほかのスプライトにほとんど干渉できない

Scratchでゲームを作るにあたり、1番面倒だったのはスプライト間の情報の受け渡しです。というのも、Scratchにおいて、スプライト同士で干渉する方法が非常に限られているんです。ざっと思いつく方法はこれぐらいでした。

1. 「メッセージ」を飛ばす (全体にイベントを発火する。引数は取れない)
2. 大域変数で受け渡す(ごちゃごちゃする上処理順の関係で安定しにくい)

座標すら他のスプライトでは弄れないため、どうしても他のスプライトに情報を受け渡したいときがあるのですが、どうしても重くなってしまうんですよね。無理やり実装しようとすればいくらでも道はあるのですが、イベントの発火がまぁまぁ重いので大変でした。

2.関数が作れない

次に面倒だったのは関数が作れないことです。一応、処理をまとめられるブロックという機能があるのですが、これは関数というよりはサブルーチンに近いもので、値を返すことができません。

そこまで難しいものでもないので、学習目的で考えても機能として実装してほしいと思いました。

3.ローカル変数が作れない

また、ローカル変数が作れないというのもだいぶストレスでした。
メンバー変数で対処するしかないのですが、変数欄がごちゃごちゃする上にそのスプライト毎に保存することになるのでメモリも食ってしまいます。

初学者に向けたものですのでしょうがない部分ではあるかと思いますが、
使いまわすためにtemp1 temp2 temp3みたいな変数が並んでいくのは気持ち悪かったです。

4.組み立てるのが大変

最後に、プログラムを組み立てるのに時間がかかってしまうのが大変でした。
まずもって命令をいちいち探し出すのはどうしても時間がかかってしまいますし、処理が複雑になっていくとどこにプログラムが置いてあるのかも探すことになります。
処理がつながっているために特定の行を削除することも難しく、やはりキーボードの力は偉大だなと感じました。

5.総評

総評としては、小学生の学習用には十分だが中高生には他の物を探すべきとしておきます。小学生でもすごい人はPythonバリバリ使いこなしてたりするので、あくまで普通の小学生の学習用という前提ですが。

UIはカラフルで見やすく、操作も直感的でわかりやすかったですし、
素材も豊富で簡単に追加できます。プログラミングの楽しさ、うまく動いたときの達成感なんかを体感するには最適だと思いました。

ょぅι゙ょにScratchを手取り足取り教えてあげたい人生だった。

6.終わり

ちょっと短いかもしれませんが、今週はここまでにしたいと思います。
来週こそは、ちゃんとゲームの進捗を出してほしいですね(他人事)

最後に、先週描いたコンセプトアートもどきを置いておきます。
植物って難しいですね。力が欲しい。

イラスト5


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