レビュー

「ナビつき! つくってわかる はじめてゲームプログラミング」レビュー

「ノードン」たちを繋げていくだけでゲームができる、斬新なプログラミングソフト

【ナビつき! つくってわかる はじめてゲームプログラミング】

ジャンル:つくってわかるゲームプログラミング

開発・発売元:任天堂

発売日:2021年6月11日

価格:
【パッケージ版】3,480円(税込)
【ダウンロード版】2,980円(税込)

 任天堂が6月11日に発売する「ナビつき! つくってわかる はじめてゲームプログラミング」(以下、はじめてゲームプログラミング)は、Nintendo Switch用プログラミングソフトである。Switch用プログラミングソフトとしては、スマイルブームの「プチコン4 SmileBASIC」があるが、本家任天堂からSwitch用の本格的なプログラミングソフトが登場するのはこれが初めてだ。

 任天堂は、初代ファミコン用として「ファミリーベーシック」を開発・販売していたことからもわかるように、昔から家庭用ゲーム機でのプログラミングソフトを発売してきている。2018年4月に発売されたSwitch用「Nintendo Labo」の「Toy-Conガレージ」でも、簡単なプログラミングを行うことができた。

 「はじめてゲームプログラミング」は、そうした任天堂のプログラミングへの取り組みの延長線上にあるともいえるソフトである。筆者は、STEM教育や子どもへのプログラミング教育には関心があり、地元のCoderDojo守谷のメンターとしても活動している。ただし、本業はあくまでライターであり、プログラミング経験といっても、8ビットパソコン時代にBASICをかじって何本かゲームソフトを作り、「ベーマガ」や「PIO」に投稿して掲載されたことや、ScratchやMakeCodeなどのブロックを並べるタイプのビジュアルプログラミング環境を少し触った程度しかないが、本製品のメインターゲットはあくまで、プログラミングに初めて挑戦する小中学生であろう。

 そこで、中2の息子や高2の娘と一緒に「はじめてゲームプログラミング」でのプログラミングに挑戦してみた。

【はじめてゲームプログラミング 紹介映像】

ブロックプログラミングよりも直感的で楽しい、ノードベースプログラミング

 「はじめてゲームプログラミング」は、「ノードン」と呼ばれる不思議な生き物たちをワイヤーで繋げていくだけで、直感的にプログラミングが行える画期的なプログラミングソフトだ。プログラミングというと、リストとにらめっこしながら呪文のような英語を入力するものと思っている人も多いだろうが、プログラミングを初めて学ぶ子どもにとって、そうしたPythonやJavaScriptなどに代表されるスクリプト言語のハードルは高い。子どもたちへのプログラミング教育では、ブロックを並べてプログラミングを行うビジュアルプログラミングが主流だ。

JavaScriptやPythonのコーディングでよく使われるエディタ「Visual Studio Code」(開発:Microsoft)。スクリプト言語のプログラミングは基本的にテキストを羅列していくスタイルなので初心者からするとかなり難解

 こうしたブロックタイプのビジュアルプログラミング環境の代表が、子どものプログラミング学習のためにMITが開発した「Scratch」である。Scratchは、小学校やプログラミング教室などでも広く使われており、書籍も多数刊行されている。Scratchを参考にしたビジュアルプログラミング環境は他にもいろいろあり、例えば、マイクロソフトが開発した「MakeCode」もその一つだ。Scratchなどのブロックタイプのビジュアルプログラミング環境では、ブロックを並べて繋げるだけでプログラミングが可能であり、キーボード入力が苦手な子どもでも、気軽にプログラミングを楽しめることが利点だ。

MIT開発のビジュアルプログラミング環境「Scratch」。絵で理解しやすいよう工夫されたソフトウェアが近年子どものプログラミング学習向けに開発されている

 「はじめてゲームプログラミング」も、キーボード入力が不要なビジュアルプログラミング環境を実現しているが、Scratchなどのブロックタイプではない。さまざまな役割を持つ「ノードン」を呼び出し、ノードン同士をワイヤーで繋げていくことで、プログラミングが可能なのだ。ブロックタイプのプログラミングは、基本的にプログラムの流れに沿ってブロックを上から下(言語によっては左から右)に並べていくのだが、「はじめてゲームプログラミング」のノードンは、基本的にどこに置いても問題ない。適当に並べてから、ノードン同士をワイヤーで繋げばいいのだ。

 ノードンという名前から予想される方も多いだろうが、これはいわゆるノードである。ノードとは、本来は結び目という意味の言葉だが、ネットワークにおいては端末や装置といった意味になる。ネットワークは、ノードを線で繋いだものであり、人と人との繋がりを示すソーシャルグラフも、ノード(人を表す)とエッジ(ノード同士を繋ぐ線)で構成される。また、音色を作り出すシンセサイザーソフトなどでも、ノードを線で繋いで音を加工していくものがあるが、ノードベースでプログラミングができる環境はまだまだ少ない。「Nintendo Labo」の「Toy-Conガレージ」でのプログラミングや、ソニーが開発したIoTブロック「MESH」のプログラミングもノードベースである。

「はじめてゲームプログラミング」は「ノードン」をつなぎ合わせてゲームを作るノードベースのプログラミング
作中にはさまざまな「ノードン」が登場。その特徴を生かして多様なゲーム作りに臨める

ゲーム作りのポイントを教えてくれる「ナビつきレッスン」が超親切

 前置きが長くなってしまったが、「はじめてゲームプログラミング」でのプログラミングを紹介する。最初に選択できる「ナビつきレッスン」は、「はじめてゲームプログラミング」に初めて触れる人のために、ノードンを使ったプログラミングのやり方やゲーム作りのポイントを教えてくれる、よくできた教材だ。「ナビつきレッスン」を進めると、「フリープログラミング」というメニューも出現し、自由にプログラミングを行うこともできるようになる。基本的には、ナビつきレッスンを一通り終えてから、フリープログラミングに挑戦するのがお勧めだ。

 ナビつきレッスンには、全部で7つのレッスンが用意されており、それぞれのレッスンの目的はゲームを完成させることである。レッスンで作るゲームは、「二人対戦おにごっこバトル」、「コロコロボール」、「エイリアンシューティング」、「GO!GO!アスレチック」、「謎解きの部屋」、「エキサイトレーシング」、「3Dアスレチックワールド」の7種類だ。横スクロールシューティングや3Dアクションなど、さまざまなジャンルのゲームを作りながら、楽しくプログラミングを学べることが魅力だ。それぞれのレッスンは7~10個のステップに分かれており、段階的にゲームを完成させていく。一つのレッスンにかかる時間の目安は約40~90分とされているが、クリアしたステップの続きから再開できるので、一度に時間がとれないという人でも大丈夫だ。

レッスン1は、全部で7つのステップから構成されている

 さらに、各レッスンのクリア後には、復習を兼ねたチェックポイントが用意されている。チェックポイントは、プログラミングで解くパズルが5つ用意されており(最初のチェックポイントのみ1つ)、パズルをすべてクリアすることで、次のレッスンに進むことができる。ナビつきレッスンでは、ボブという名前の青い●がナビゲーターとなり、プレイヤーをプログラミングの世界へ導いてくれるのだが、このナビがとても親切で分かりやすい。

 最初のレッスンの様子を見てもらうのがいいだろう。最初のレッスンでは、「二人対戦おにごっこバトル」を作る。「はじめてゲームプログラミング」では、ゲーム画面とプログラム画面を切り替えながらゲームを作っていくのだが、プログラム画面を「ゲームのウラガワ」と呼んでいるのも素晴らしい。普段、遊んでるゲームの裏側にはこうしたプログラムの世界があるのだということを、しっかりと意識させてくれる。

 各レッスンの最初に、そのレッスンで作るゲームの完成形の動画が表示される。これからステップを経て、完成するとこうなるのだというイメージが最初に与えられるので、モチベーションを保ちやすい。二人対戦おにごっこバトルは、二人がオニとヒトに分かれておにごっこをするゲームだ。オニに捕まるとヒトの負けで、オニが落ちてくるボールにぶつかるとオニの負けとなる。

レッスン1で作るゲーム「二人対戦おにごっこバトル」の完成形が最初に示される

 レッスン1のステップ1の目的は、ゲーム画面の中に「ヒト」を表示させ、それをLスティックで左右に動かし、Bボタンでジャンプさせることである。

 まず、ゲーム画面が表示されるが、まだ何もプログラムを組んでいないので当然何もキャラクターなどは表示されない。そこで、プログラム画面に切り替えると、ナビゲーターのボブに「ヒトノードン」を呼び出すように指示される。ヒトノードンは、その名の通り、動かせるヒトを表示するためのノードンだ。それぞれのノードンには、入力や出力のポートが用意されている。

 ノードンによっては、入力しかないものや、出力しかないものもあるが、「はじめてゲームプログラミング」のプログラミングの本質は、各ノードンのポートをワイヤーで繋ぐことにある。あるノードンの出力ポートから出力されたシグナルがワイヤーを通って、別のノードンの入力ポートに送られ、そのノードンがそのシグナルに反応するのだ。文章で書くとややこしそうだが、実際にコントローラーを使ってプログラミングしてみると、非常に直感的で分かりやすい。また、ノードンは生き物という設定になっており、それぞれのキャラクターがあって吹き出しでしゃべるのもかわいく、子どもたちの興味を惹きそうだ。

 プログラム画面にヒトノードンを呼び出したら、ゲーム画面に移動して、どうなったか見てみよう。画面の中央にヒトが表示される。ただし、ヒトが表示されただけで、Lスティックを左右に倒しても、ピクリとも動かない。それもそのはず、ヒトを動かすためのプログラムをまだ作っていないからだ。そこでプログラム画面に戻り、スティックの傾きを出力する「スティックノードン」を呼び出す。「はじめてゲームプログラミング」では、非常に多くのノードンが用意されているが、それらのノードンは大きく「入力」「中間」「出力」「モノ」の4つに分類されており、さらにそれぞれの中でサブカテゴリに分かれている。

最初は、プログラムを一切組んでない状態なので、ゲーム画面には何もキャラクターが表示されていない
そこで、プログラム画面に切り替え、ボブの指示に従って、「ヒトノードン」を呼び出す
このノードンが「ヒトノードン」。ヒトノードンの左には「前後」や「左右」といったポートが4つある
ヒトノードンをプログラム画面に置いて、ゲーム画面に切り替えると中央にヒトが表示される
ただし、ヒトが表示されただけで、スティックなどで動かすことはできない

 スティックノードンを呼び出したら、スティックノードンの出力ポートとヒトノードンの左右ポートをワイヤーで接続することで、スティックの左右の傾きの値がシグナルとしてヒトノードンに伝わり、ヒトノードンを動かせるようになる。ゲーム画面に移動して、Lスティックの左右でヒトを動かせることを確認しよう。

 続いて、Bボタンを押すとジャンプする仕組みをプログラミングする。基本的にはスティックで左右に動けるようにしたのと同じだが、スティックノードンではなく、ボタンが押されたことを検出する「ボタンノードン」を使う。ボタンノードンの出力ポートとヒトノードンのジャンプポートを繋ぐことで、Bボタンを押すとヒトがジャンプするようになる。

 ゲーム画面でジャンプ動作を確認すれば、ステップ1は終了だ。各ステップの終了時に、そのステップで学んだことが、ノードンガイドに追加される。ノードンガイドはプログラミング中にいつでも確認できるのでありがたい。

「入力」→「スティックを倒したら」→「Lスティック」→「左右」の順に選んで、「スティックノードン」を呼び出す
スティックノードンはスティックの入力値を出力することができる。スティックノードンの出力ポートとヒトノードンの左右ポートをワイヤーで繋ぐ
Lスティックが左右に倒されるとシグナルとしてその値がヒトノードンへ送られる
ゲーム画面で確認。Lスティックを左右に倒すと、ヒトがそれに応じて左右に動く
再びプログラム画面に戻り、「入力」→「ボタンをおしたら」→「B」の順に選んで、「ボタンノードン」を呼び出す
ボタンノードンは、その名前の通り、ボタンが押されるとシグナルが出力される
ボタンノードンの位置を移動させる
ボタンノードンの出力ポートとヒトノードンのジャンプポートを繋ぐ
ゲーム画面に移動して確認。Lスティックの左右でヒトが左右に動き、Bボタンを押すとジャンプする
これで、レッスン1のステップ1が終了。ノードンたちが祝福してくれる
そのステップで学んだことが、ノードンガイドに追加される