ノーコードツールを使ってどこかで見たことあるゲームを作ってみた
これはクソアプリアドベントカレンダー202316日目の記事です。昨今はさまざまなノーコードツールが出ており、ノーコードツールでゲーム作りに挑戦しました。
そう、NHKでも取り上げられているノーコードツールScratchです。
※扉絵のキャラクターはAdobe Fireflyに作ってもらいました。
ゲームの概要
主人公の騎士をドラッグ操作して、相手より数字が大きければ勝ち、小さければ負け、という一度はどこかで見たことあるゲームです。戦う順番を良く考えないと負けてしまいます。途中パワーアップアイテムもあり計算力が求められる場面もあります。
全3ステージ、見事クリア出来るでしょうか?
作ってみた感想
NHKのEテレで放送されているプログラミング学習番組を子どもが見て「自分もやってみたい」と言ったのがScatchにふれるきっかけでした。一緒に触っていく中で、子どもに教えるためにもある程度知っておきたいと思いこのゲームを作ってみることにしました。またゲームというのを1から作ったことなかったので新しい発見もあり色々楽しかったです。
普段はWebサイト制作やWebアプリの開発がメインですが、やはりというべきか、ゲーム制作はそれらよりもインタラクティブ性が高いことを知らされました。Webデザインは視覚的な情報がメインになのに対してゲームは操作体験がメインです。静止画的なデザインより時間的連続性のデザインへの要求を感じました。
そういう意味でこのゲームはそういったところは詰めきれていないので、まだまだな出来だと思います。しかし、そのような細やかな動作はUI/UXの文脈で語られるマイクロインタラクションに通じるものがあります。なのでゲームから学ぶべきことはたくさんありそうです。
Scratchというツール
子ども向けプログラミング教材としても使われるScratchですが、なかなか奥が深いツールです。プログラミングで必要な基礎的なループ処理、変数、配列や要素に対するイベントハンドラは用意されており、とくに見た目に関する操作はいろいろ揃っています。とはいえ、基本的にはいずれもプリミティブな操作なので複雑なことをしようとすると自分でプログラミングする必要があります。それでも衝突判定など自分で作ると面倒な処理はあるので、手軽にゲームなどが作れるような配慮はなされています。
考え方としてはスプライトを1オブジェクトとしたオブジェクト指向プログラミングに近いと思います。スプライトは基本的に画面に表示されるものですが、不可視にもできるので処理専用のスプライトとして使うこともできます。上記ゲームであれば、戦闘に関する処理を担う不可視のスプライトがあります。
プログラミングの基礎的なツールですが、スイカゲームやソニックの作例もあったりするので子ども向けと侮れないツールです。ほかにもアニメーションを作ることもできるので往年のFlash時代を思い出します。
プログラミングを考えさせるツール
Scratchはプログラミングの入門的ツールなので前述のとおり基礎的な処理しか持っていません。いかに普段自分の仕事が既成の便利なツール群に頼っているかを痛感させられました。逆にいうと小手先のテクニックではなく、しっかりとプログラミングを考えさせるツールでもあります。
なので入社試験のツールとしても良いのではないかなと考えました。ある目的に対してScratchのプリミティブな処理でどうプログラムを組むか、その人の色が出てくると思います。ツールを使えるだけでプログラミングの基礎がない人には難しい課題となるはずです。また、ノーコードツールなのでChat GPTを始めとしたAI利用による不正も間接的には防げるかもしれません。
まとめ
こどもの「やってみたい」がきっかけでしたが、Scratchの奥深さやプログラミングに対する姿勢など考えさせられました。
明日は@yunecoさんです。
Discussion