お子様向けの入門的なプログラム・ツールとして有効なScratchですが、その気になればかなり本格的なプログラムも作れます。そんな力作の作品をいくつか紹介します。

昔どこかで見たようなシューティングゲームです。
おそらくオリジナルゲームを模写して作っているんでしょうがよく出来ています。
Scratchの基本的な機能を勉強するにも良い作品だと思います。

1943 - The Battle of Midway
https://scratch.mit.edu/projects/85010674/
イメージ 1


スターウォーズは今が旬なので1つチョイスしてみました。
簡易的な3Dシューティングゲームで、面クリアによるストーリーもあってよく出来ています。


見た目はシンプルなタワーディフェンスですが、ゲーム性やシステムの安定性は抜群です。
攻撃ツールを配置することでルートが作られるアイデアは面白いですね。
かなりハマるゲームなのでやり過ぎに注意!

Griffpatch's Tower Defence v0.13b
https://scratch.mit.edu/projects/15200040/
イメージ 3


ゲームバラスンが実に素晴らしい! 一押しのゲームです。
ビデオゲームの王道的な作品ですが、あまりによく出来ているのでオリジナルゲームがあるのかもしれません。
キャラクター的に日本人向きじゃないかもしれませんが、インベーダーゲームの血統を受け継いだようなゲームアイデアは抜群です。


Scratchのユニークなところは実際にプログラムを実行しながら、プログラムブロックを切ったりくっ付けたり出来ます。動作させながらパラメーターを調整したりできるのでチューニング作業が楽です。これはかなりユニークな機能です。

配列型変数(リスト)の概念もあるのですが、これもユニークで、一度生成したデータは破棄しない限りずっと保持されます。データ内容も一緒にセーブされるので簡易的なデータファイルとして利用できます。うまく使えばマップデータやキャラクタデータ、スコアの保存にも活用できそうです。

もう一つユニークな機能としてクローンというものがあります。基本的にはプログラムはスプライト単位に書きますが、文字通りそのスプライトの複製クローンを作り表示させることが出来ます。シューティングゲームの弾や敵キャラが沢山登場するシーンで必要になりますが、注意が必要なのはオリジナルとクローンされたものでは動作が異なります。プログラムも別々に必要なのですが、簡単な使い方として、プログラムがスタートすると同時にオリジナルを非表示にして隠してしまい、以後はクローンのみでコントロールするのが簡単です。

ただ問題点は同じスプライトから派生したクローン同士は当たり判定等が出来ないという仕様になっています。別スプライトとの衝突判断等はクローンされた個別単位に可能なのでプログラム時には注意と工夫が必要です。

基本的な三角関数も用意されているので、頑張れば3Dゲームなんかも作れますが、技術的に凝った仕様のチープなゲームよりも、基本機能を駆使したアイデアとゲーム性のあるリッチな作品を目指すのが良いと思います。シンプルな2D型のスプライトを利用したゲームを作るには十分なツールだと思います。

私が作ったScratchの作品は下記で公開しています。
いずれも実験的なものばかりですが、公開プロジェクトのリミックスも大歓迎です。


まだ触り始めたばかりなので色々と勉強中ですが、パズル的な要素のあるブロック型のプログラミングはボケ防止にもピッタリです。(笑)
機能が限定されていてレギュレーションが厳しいからこそ重箱の隅をつつく面白さもあります。
ゲームに遊ばれるのではなく、ゲームを作るというゲームを楽しむのには良いオモチャです。
昔を思い出して、あの頃若かった今シニアのサンデープログラマーにもピッタリかと思います。