↑左側「ボタン」入力があった時、右側「ヒト」が「ジャンプ」するよう、互いのノードンを線で結ぶことが、このソフトの「プログラミング」
↑左側「ボタン」入力があった時、右側「ヒト」が「ジャンプ」するよう、互いのノードンを線で結ぶことが、このソフトの「プログラミング」
↑自分がプログラミングした結果、ゲーム画面ではキャラクターが滑らかにジャンプして「クリア」となる
↑自分がプログラミングした結果、ゲーム画面ではキャラクターが滑らかにジャンプして「クリア」となる

プログラミングの基礎を学ぶ「レッスン」は30時間前後の大ボリューム

はじめてゲームプログラミングのタイトル画面には、「ナビつきレッスン」と「フリープログラミング」という2つのメニューが並んでいる。ソフト購入者はまず、ナビつきレッスンから始めることになる。これはソフト内に用意された練習問題に加えて、7つのゲームを、「ボブ」と呼ぶキャラクターにナビゲーションしてもらいながら、ゼロからゲームを作り上げていくというモード。プログラムに対する習熟度にもよるが、すべてのレッスンとチェックポイント(復習クイズ)をクリアするまでに30時間前後はかかる大ボリュームだ。なお、任天堂のサイトでは、個人差もあるが、小学1年生以上であればゲームをつくる体験を楽しめるとしている。

一方、フリープログラミングはナビつきレッスンを終えた上級者向けのモード。ナビゲーションなしで、好きなプログラムを作れる。作ったプログラムは、作品コードと呼ぶIDを公開することで、ほかのユーザーがダウンロードして遊ぶこともできる。すでにTwitterでは、「#はじめてゲームプログラミング」などのハッシュタグをつけて作品コードを公開しているユーザーが数多くいるようだ。他人の作ったゲームをダウンロードして遊ぶという楽しみも、このゲームの遊び方のひとつだ。さらには、ダウンロードしたゲームを自らアレンジすることもできる。

「ナビつきレッスン」でプログラミングを学び、学び終えた人が「フリープログラミング」に挑戦する流れとなる
「ナビつきレッスン」でプログラミングを学び、学び終えた人が「フリープログラミング」に挑戦する流れとなる
練習問題に加えて7種のゲーム制作レッスンが用意される「ナビ付きレッスン」。すべてのレッスンを終えるには、元プログラマーの著者でも20時間以上かかった
練習問題に加えて7種のゲーム制作レッスンが用意される「ナビ付きレッスン」。すべてのレッスンを終えるには、元プログラマーの著者でも20時間以上かかった

自然に、楽しく、プログラミングの基礎を学んでいく仕掛け

プログラミング経験者がこのソフトのプログラミング画面を見たら、シンプルなデザインながら本格的な仕様に驚くはずだ。前述のとおり、このソフトではプログラムのまとまりをノードと呼び、ノード同士を結びつけることでプログラミングを行う。

例えばソフト内では「スティック」というLスティックの入力を検知するノードと、「ヒト」というロボットのノードの両方を画面上に配置。「スティック」ノードの出力結果を、「ヒト」ノードの「左右移動」のポートへとつなぐことで、Lスティックの動きに連動してヒトが歩くようになる。これが「プログラム」の基本であり概念であるということを、ごく自然に学べるようになっている。

↑「スティック」という、Lアナログスティックの入力を検知するノード。「0.27」という数値が出ているのは、その時点でのLスティックの傾き具合
↑「スティック」という、Lアナログスティックの入力を検知するノード。「0.27」という数値が出ているのは、その時点でのLスティックの傾き具合

Lスティックの傾きを検知するノードと「ヒト」ノードの左右移動ポートを接続したら、次はBボタンが押されたかを検知するノードと、「ヒト」ノードのジャンプポートを接続。ここで、プログラム次第ではLスティックの上下や、Rスティックでもキャラクターを左右に動かせたり、ジャンプさせることもできるのでは? というプログラムの自由度に気付かされる(レッスン中は指示通りのプログラミングしかできないが)。プログラムの基礎学習にとって、こうした「考え方」から学べるのは非常に良いことだ。