Bボタンの入力を検知するノードの出力ポートを、「ヒト」ノードのジャンプへ接続する。ノードの右側にあるポートは出力で、左側にあるのが入力ポートだというルールの徹底も、学習のしやすさに一役買っている。
Bボタンの入力を検知するノードの出力ポートを、「ヒト」ノードのジャンプへ接続する。ノードの右側にあるポートは出力で、左側にあるのが入力ポートだというルールの徹底も、学習のしやすさに一役買っている。

学習意欲がないユーザーに立ちふさがる「チェックポイント」という存在

はじめてゲームプログラミングにおけるサンプルゲーム制作の「レッスン」は、プレーヤーが間違えたプログラミングをしないよう、操作を大きく制限している。たとえば「Bボタンの入力を検知するノードを呼び出してください」と指示された時、「中間」や「出力」など、異なるカテゴリーのメニューをクリックしても反応せず、正解である「入力」>「ボタン」>「Bボタン」のメニューしか動作しないようになっている。

この仕掛けにより制作者側が意図した通りのサンプルを作らせるという目的は達成される。だが一方で「ノードの使い道は理解していないけど、片っ端からクリックしていき、変化があったものを試す」という乱暴なクリア方法も通用してしまう。このため、ノードの役割やプログラミングの基礎を理解しないままレッスンを終えることも可能なのだ。ところが、そんなユーザーの前に立ちふさがる、「チェックポイント」という存在が用意されているのも、このソフトの優れたポイント。

たとえばあるチェックポイントでは、「ヒトにリンゴを取らせたいのに、なぜか取れない」というバグがあるプログラムが提示される。実行結果を見て、どこに問題があり、どのノードを修正すればいいのかを考えるという設問だ。

ソフト内では特に明言されていないが、これはプログラミングにおけるミスの修正を行う「デバッグ」そのものだ。このソフトでのゲーム制作はもちろん、将来プログラミングをするとしたら避けて通れないデバッグ作業を、クイズのようなエンターテインメントコンテンツとして体験できる。

どの問題も、直前のレッスンで各ノードの使い方などを理解してから進めば簡単にクリアできる。だが雑に、片っ端からクリックしてレッスンを終えてきたような人は、ここから先に進めないようになっている。ゲームメーカーならではのエンタメ性を持たせながらも、しっかりとプログラミングを学ぶことを目的としたソフト制作者側の姿勢は、非常に好感が持てた。

最初に表示される「現状」の動作。ヒトがリンゴを取りに行きたいのだが、どうして取れないのかを考え、プログラミング画面を開くという流れ
最初に表示される「現状」の動作。ヒトがリンゴを取りに行きたいのだが、どうして取れないのかを考え、プログラミング画面を開くという流れ
ヒトが歩かないのなら入力ノードに不備がないか。途中にある障害物が壊れないのなら、障害物のノードの設定を開き、接触判定を確認する
ヒトが歩かないのなら入力ノードに不備がないか。途中にある障害物が壊れないのなら、障害物のノードの設定を開き、接触判定を確認する
バギーの左前方に、薄い白い線で立方体が描かれているのは「当たり判定」。ここでは壁とバギーとの接触を判定している。バギーの上に表示されている「1」は、物体と壁が接触していることを示す
バギーの左前方に、薄い白い線で立方体が描かれているのは「当たり判定」。ここでは壁とバギーとの接触を判定している。バギーの上に表示されている「1」は、物体と壁が接触していることを示す

地味で選択肢の多い「プログラミング」の入り口として最適なソフト

プログラミングの学習は、非常に地味で選択肢が多すぎるため、迷走しがちだ。前述のとおり、「●●みたいなゲームを作りたい」という目標を持ってプログラミングの勉強を開始して、やっと動いたプログラムは画面に文字を表示するだけ。そこでモチベーションが保てない人もいるだろう。また、開発環境や言語、プログラムを動かす環境などのバリエーションが広く、どれから習得すればいいのかも悩むかもしれない。