楽しさだけでなくプログラミングの概念も体験できるNintendo Switch「ナビつき! つくってわかる はじめてゲームプログラミング」レポート

楽しさだけでなくプログラミングの概念も体験できるNintendo Switch「ナビつき! つくってわかる はじめてゲームプログラミング」レポート

2021年6月11日、任天堂株式会社(以下、任天堂)が、楽しみながらプログラミングを学べるNintendo Switchのゲームソフト「ナビつき! つくってわかる はじめてゲームプログラミング」(以下、はじめてゲームプログラミング)を発売した。

Nintendo Switchの中に暮らすという不思議な生き物「ノードン」をつなげることで、ゲームプログラミングが楽しめるソフトだ。「ノードン」の組み合わせや設定を変えるビジュアルプログラミングを通して、自分だけのオリジナルゲームを作成することもできる。

遊び、楽しみながらプログラミングの知識が自然と身に付けられ、娯楽用途だけではなく教育用途も追求する「シリアスゲーム」、「エデュテイメント」(「Education」と「Entertainment」を掛け合わせた造語)といったジャンルに分類されるゲームといえるだろう。

「はじめてゲームプログラミング」は発売開始前から注目を集めており、ゲーム専門メディアを中心に、ゲーム内容を紹介する記事が多く報じられている。

ゲームの売上動向を探る上での指標となる「Amazon売れ筋ランキング」でも、発売が開始して1ヶ月近く経った今も上位に位置している。

任天堂の公式サイト、公式YouTubeチャンネルでゲームの概要がわかりやすく紹介されているので、チェックしてみてほしい。

ゲーム、と聞くと教育関係者の方々は縁遠いものと感じるかもしれないが、シリアスゲームやエデュテイメント系ゲームの歴史は古い。

日本の地理や都道府県の特産品を学べる「桃太郎電鉄」シリーズ、架空の街の市長になって税金管理をしながら都市開発するシミュレーションゲーム「シティーズ:スカイライン」、英単語や英文法を学べる「えいご漬け」など、ジャンルとして明確な定義があるわけではないが、遊んでいるうちに自然と知識が身につくようなゲームタイトルは昔から数多くある。

「はじめてゲームプログラミング」も、シリアスゲーム、エデュテイメント系ゲームといえるが、昨今、公教育でスタートしたプログラミング教育でも取り扱われることの多い「プログラミング的思考」を体験できるゲームだ。

任天堂の「はじめてゲームプログラミング」紹介サイトのQ&Aでは、「本作は学校教育に対応した製品ではなく、独自のゲームプログラミング体験によって、楽しみながらプログラミング的思考に触れられるソフトです」(以下参照)と解説しているが、発売開始前からプログラミング教育にも大きな影響を与えるゲーム、と話題になっており保護者や教育関係者の方でも気になっている人は多いのではないか。

当メディアでは、「はじめてゲームプログラミング」の体験プレイをさせてもらった。

「はじめてゲームプログラミング」をプレイすることで、プログラミングに関するどんなことを学び、体験できるのか、レポートしたい。

目次

現在の公教育におけるプログラミング言語の実施状況

「はじめてゲームプログラミング」の内容について解説する前に、現在の公教育におけるプログラミング教育の状況について簡単に振り返りたい。

小学校では2020年度から、中学校では2021年度からプログラミング教育が必修化され、2025年度(令和7年度)に刷新される大学入学共通テストでは、新教科としてプログラミングを含む「情報」の追加が予定されている。

プログラミングを教える授業が小中学校でスタートしたのに加えて、大学入試でもプログラミングに関連する教科の新設が発表され、プログラミング教育の重要性は、年々、高まっているといえるだろう。

2020年度からプログラミング教育が必修化された小学校では、理科や総合などの授業で、教育用ビジュアルプログラミング言語「Scratch」や「MakeCode」などを使用して、簡単なプログラミングの体験をさせることが多いようだ。

ScratchやMakeCodeでは、JavaScriptやPythonなどテキストベースのプログラミング言語とは違い、テキストコーディングは行わない。

キャラクターや背景を、さまざまなブロックを組み合わせるビジュアルプログラミングを通して、プログラム・成果物を制作していく。

「TechAcademyジュニア」による渋谷区立長谷戸小学校でのプログラミング特別授業レポート

ScratchやMakeCodeでは、テキストコーディングを用いるプログラミング言語のように、プログラミング言語特有の記法や構文などを覚える必要はなく、ブロックを組み合わせながら視覚的にキャラクターの動作や背景などを設定できる。

初めてプログラミングを経験する子どもにとっても取り組みやすいことが特長だ。

ただ、プログラミング教育の授業にScratchやMakeCodeで制作される成果物は、一般的に「キャラクターを目的地まで動かす」「キャラクターの動く方向を数回変更させる」「背景を変更する」と、単調な内容にとどまることが多い。

易しくても簡単な成果物をひとまず仕上げる、といった一通りの工程を子どもに体験してもらうことは、「プログラミングはどのような手順で行うのか、大まかなイメージを掴んでもらう」といった一定程度の効果や成果は見込まれるだろう。

しかし、日頃スマートフォンやゲーム機で数多くのゲームに慣れ親しんでいる子どもたちからすれば、ゲームとして感じられる楽しさ、おもしろさは少々物足りないかもしれない。

その点、今回発売された「はじめてゲームプログラミング」は、日本を代表するエンターテインメント企業である任天堂が開発したため、ゲームとしての楽しさを存分に体験できる上で、プログラミングにおける重要な考え方・思考方法を体験できる内容になっている。

「はじめてゲームプログラミング」の概要

「はじめてゲームプログラミング」では、ゲーム中案内されるナビゲーションに従いながら、キャラクターを呼び出したり、スティック(操作用コントローラー)やボタンなどの入力・出力機能を持った「ノードン」をつなげたりして、プログラミングを進めていく。

ゲームモードは大別して、ナビゲーションに従って「ノードン」をつなげていくだけで、だれでもゲームを完成させられる「ナビつきレッスン」、さまざまなゲームを1から自由に作れる「フリープログラミング」の2つが用意されている。

丁寧なナビゲーションで、だれでもゲームを完成させられる「ナビつきレッスン」

筆者は「ナビつきレッスン」の「二人対戦!おにごっこバトル」という最初のレッスンを体験させてもらった。

「ナビつきレッスン」の「二人対戦!おにごっこバトル」で、「ノードン」をつなげるゲームプログラミングを体験する。
作成するのは、フィールド内に2体のキャラクターと一定の時間間隔で発射されるボールを登場させ、おにごっこをするゲーム。動き回るキャラクター、当たるとキャラクターを破壊するボールなど、ゲーム画面中に登場する要素はもちろん、操作用コントローラーであるスティックの操作、ゲームのリセットやタイマーなどゲームのルールや設計に関しても、自分でプログラミングしながらゲームを作成していく。
プログラミング画面。キャラクターやスティックは「ノードン」で表現され、設定する。「ナビつきレッスン」では、ゲーム中にナビゲーションが表示され、このナビゲーションに従ってオリジナルゲームを作成する。
画面中にヒトを登場させる「ヒト」ノードン
スティックの傾きとその向きを出力する「スティック」ノードン
他にも、ボタンが押されたかどうかを出力する「ボタン」ノードン、フィールドの足場などを表現する「モノ」ノードン、ボールを発射させる「モノを発射」ノードン、そしてゲームのルールや設計を表現する「タイマー」ノードンや「リトライ」ノードンなど…、複数のノードンを配置していく。ノードン同士はワイヤーを使ってつなげていろんな動作ができるようにしたり、ノードン内の機能や条件の設定も変更したりできる。
プログラミング画面で、フィールドとして設定していた「モノ」ノードンの色を変えると、ゲーム画面に変更内容が反映される。

ScratchやMakeCodeの場合はブロックをつなげる、「はじめてゲームプログラミング」の場合はノードン同士をワイヤーでつなげる、と視覚的にプログラミングしていく制作工程は似ている。

ただ、ScratchやMakeCodeのように、ブロックを上から下へ並べて、並べた順番通りにプログラムを実行されるのとは違い、「はじめてゲームプログラミング」では、ノードンを配置させた後からでも自由にノードン同士をワイヤーでつなげてゲームを作成していく。

ユーザーは思い通りにノードンを配置して、試行錯誤しながらキャラクターの動作設定、フィールドの変更などができるので、ScratchやMakeCodeよりも、直感的なプログラミングが可能だ。

複数のノードン同士を配置させてから、ワイヤーでつなげたり、ノードンの設定を施したりできるので、直感的にプログラミングできる。

また、ゲームとしてのおもしろさを追求するためにも、用意されているノードンは多種多様であり、ノードン内で設定できる機能や条件も細かく変更できる。

ユーザーの組み合わせ次第で、バラエティーに富んださまざまなオリジナルゲームをできるので、ユーザーを飽きさせない。

各ノードンにはそれぞれの特有の設定条件があり、細かく変更できる。

「ナビつきレッスン」には7つのレッスンを収録。それぞれ異なるゲームをプログラミングできるようになっており、すべてに丁寧なナビゲーションがついているので、一通りこなせばユーザーの「はじめてゲームプログラミング」におけるプログラミングスキルは着実に身につく。

レッスン3「エイリアン シューティング」
レッスン6「エキサイトレーシング」
レッスン7「3Dアスレチックワールド」

「チェックポイント」でプログラミングを復習できる

さらに「ナビつきレッスン」では、これまで触れてきたゲームプログラミングを復習できる「チェックポイント」が用意されている。

「ナビつきレッスン」で学んだゲームプログラミングの内容を復習できる「チェックポイント」
「ナビつきレッスン」でも触れた「モノ」ノードンの「ふるまい」の設定変更を復習する問題。画面左のキャラクターを画面右のリンゴがある位置まで動かしたいが…
ゲーム画面を開始した途端に、黄色い足場が落下してしまい、キャラクターがリンゴの位置まで移動できなくなってしまう。この足場である「モノ」ノードンの設定を変更して、落下しないようにプログラミングする。
プログラミング画面で足場の「モノ」ノードンを選択して…
「モノ」ノードンの設定画面を開く。「ふるまい」の中に「動く」という条件があるので、オフに変更してみると…
足場が落下せず固定され、キャラクターをリンゴの位置まで移動できるようになった。

「チェックポイント」では、「ナビつきレッスン」で体験したのと同じノードンの設定や組み合わせをおさらいするのだが、ユーザーは同じプログラミング手順を単純に繰り返すわけではなく、ゲーム画面やノードンの設定など「チェックポイント」用に新しく細かな変更が加えられた問題を解いていく。

つまり、ユーザーがプログラミングに取り組む新鮮さを損なわないまま、ノードンの設定や組み合わせの復習ができる問題設計・工夫が施されている。

「ナビつきレッスン」「チェックポイント」を一通りプレイすれば、似たプログラミングを複数回こなせるので、必要な手順を楽しく覚えられるのだ。

「フリープログラミング」ではオリジナルゲームを共有できる

「フリープログラミング」は、オリジナルゲームを作成できるモード。

「ナビつきレッスン」で学んだプログラミングスキルを活かしつつ、自分で描いたイラストをキャラクターや背景として操作・設定できるようにしたり、BGMをつけたり、より自由なプログラミングが可能になっている。

ユーザー自身で作成したオリジナルゲームをプレイできる。

そして、「フリープログラミング」の大きな特徴として、作成したオリジナルゲームは、インターネットやローカル通信で公開・共有ができる。

友だち同士で作ったゲームを見せ合い、友だちのゲームをダウンロード後、自分好みにプログラミングして改良することも可能なのだ。

オリジナルゲームはインターネット上に公開して、友だちや他の人と共有しながら、プレイできる。

ゲーム作りを通して体験できるプログラミングの概念・考え方とは

以上、簡単ではあるが、「はじめてゲームプログラミング」の概要を紹介した。

筆者は「はじめてゲームプログラミング」の「ナビつきレッスン」を体験してみて、このゲームを一通りプレイすれば、「オブジェクト指向」「構造化プログラミング」といった、プログラミングにおいて普遍的な概念・考え方の一部を、実感、体験できると感じた。

ちなみに、オブジェクト指向や構造化プログラミングについては、プログラミング教育に参画するEdTech企業でも、重点的に教える傾向がある。

LINEが教育市場へ本格参入~LINE entry体験授業公開

「ゲームエンジニアってどんな仕事?」「プログラミングって実際どのように使われてるの?」ミクシィのプログラミングサマーキャンプ2020レポート

※:特定のプログラミング言語の記法や構文を教えたとしても、プログラミング言語の流行り廃りは早いため、子どもたちが大人になり社会で活躍する将来には、学校で学んだ内容とはまったく異なる知識や技術が必要とされている可能性が高い。
そのような懸念に対応するためにも、プログラミング教育においては、プログラミングの普遍的な概念・考え方を教えることが重要視されている。

それでは、「ナビつきレッスン」でのプログラミング画面やゲーム画面をもとに、プログラミングにおける普遍的な概念・考え方をどのように実感・体験できるか解説したい。

ノードンはさまざまな機能・条件をひとまとまりにした「オブジェクト」

前述したが、ノードンにはそれぞれに独自の機能や条件がひとまとまりに込められており、ノードンは、オブジェクト指向でいう、オブジェクトであると呼べる。

これらの複数のノードン(=オブジェクト)を組み合わせたり、ノードン内の設定を変更・調整したりして複雑なゲームを作成することは、オブジェクト内に構成された変数や関数を変更・調整したり、複数のオブジェクトを組み合わせたりして成果物を仕上げるテキストコーディングにも通じる開発手法・手順といえる。

「ヒト」ノードンの設定画面で、ボールに当たるとキャラクターが破壊されるように「ふるまい」の条件を設定している様子。ノードンには細かな条件が設定されていて、ユーザーが自由に変更できる。ノードンは、さまざまな機能や条件がひとまとまりになった、「オブジェクト」と呼べる。

プログラムは「順次」「反復」「分岐」の3つの処理に分割できる、とする構造化プログラミング

構造化プログラミングとは、プログラムは「順次」「反復」「分岐」の3つの処理に分割できるものとするプログラミング手法・思考方法で、こちらもプログラミングにおける普遍的な考え方として重要とされてきた。

  • 順次(順接):プログラムを記述した順番通りに実行する
  • 反復(繰り返し):指定された条件下でプログラムが繰り返し実行する
  • 分岐(選択):指定された条件を満たすか否かでプログラムの実行が枝分かれする

上記の処理の内、「反復」と「分岐」については、「はじめてゲームプログラミング」のプレイでも十分に実感、体験できると感じた。

それぞれの処理(≒プログラムが実行される流れ)が顕著に表れるシーンを紹介したい。


まずは「反復」の処理が顕著に表れるシーンとして、「モノを発射」ノードンの設定を紹介する。

今回の「モノを発射」ノードンではキャラクターを破壊するボールがゲーム画面で一定の時間間隔で発射されるのだが、ノードンの設定画面にある「発射間隔(秒)」という条件を1秒→7秒に変更すると…
ゲーム画面のボールが発射される時間間隔が7秒に変更される。

そして、ゲーム画面では、この変更した設定のまま、ボールは一定の時間間隔(7秒)で発射され続ける。

この一定の時間間隔のままボールが発射され続ける、という挙動は、プログラムは設定した条件の下、プログラムを繰り返し実行する「反復」という処理の特徴を表している。


次に「分岐」の処理が顕著に表れるシーンとしては、「モノがこわれたしゅんかん」ノードンと「リトライ」ノードンを組み合わせて設計させるゲームのリトライ(リセット)について取り上げたい。

「モノがこわれたしゅんかん」ノードン(画面左)には、「ヒト」ノードンが破壊されたときに出力(≒プログラムが実行)するといった条件を設定しており、「リトライ」ノードン(画面右)とワイヤーでつなげて組み合わせると、「キャラクターが破壊されたときにゲームをリトライ(リセット)する」というしくみが作れる。
「キャラクターが破壊されたときにゲームをリトライ(リセット)する」というしくみを作ったゲームで、キャラクターを動かしてボールにぶつけると…
キャラクターは破壊され…
キャラクターは初期位置に戻り、キャラクターがボールに当たる以前にゲーム画面中に転がっていたボールもなくなって、ゲームがリトライ(リセット)される。

『「モノがこわれたしゅんかん」ノードンと「リトライ」ノードンを組み合わせて設計した条件が起きると、ゲームがリトライされる』という一連の流れは、指定された条件(ヒトノードンの破壊)を満たすか否かで、目的の条件の実行が枝分かれする「分岐」という処理の特徴を表している。


「はじめてゲームプログラミング」では、ゲーム作りを通して、構造化プログラミングにおける「反復」と「分岐」というプログラムの処理の特徴は十分に実感、体験できる。

しかし、「順次」の処理については、「はじめてゲームプログラミング」ではなかなか実感しにくい印象を抱いた。

教育用ビジュアルプログラミング言語であるScratchやMakeCodeは、プログラミングをする際、ブロックを上から下へ順番に組み合わせていくUIになっており、プログラムを記述した順番通りに実行する「順次」の処理に忠実な仕様といえる。

ブロックを上から下へ順番に組み合わせていくScratchのプログラムの例(参照:「TechAcademyジュニア」による渋谷区立長谷戸小学校でのプログラミング特別授業レポート

一方、「はじめてゲームプログラミング」ではノードンを自由に配置できる反面、プログラムの実行順番は不規則になる。

「順次」の処理の実感・体験、という面においては相容れないUI、といえるかもしれない。

また、おそらく「フリープログラミング」で、友だちや他の人が作成したゲームをダウンロードしてプログラムを確認した際、ノードンが複雑に配置されている状態だと、どんな順番でゲーム内のプログラムが実行されているか、またノードンにはどんな条件や機能が設定されているのか、把握するのはやや大変な作業になるのではないか。

他人が作成したゲームの改良には、手間取ってしまうことも予想される。

ゲームが完成された状態だと、多くの種類のノードンが複雑に配置されていて、プログラムの実行順番や、ノードン内の条件・設定が、一目しただけでは把握しづらい。他人が作成したゲームのプログラムの改良は、やや大変な作業になるかもしれない。

ただ、ノードンの自由な配置でゲーム作りができるUIは、直感的なプログラミングを可能にして「楽しみながらプログラミング的思考に触れる」という本ゲームの目標・目的を果たすためにも欠かせない仕様だ。

プログラミング的思考に触れるため、構造化プログラミングの概念・考え方に忠実なUIにすることは重要に感じるが、任天堂が本ゲームに込めた目標・目的を鑑みると現状のUI・仕様が最適なのだろう。

任天堂、そしてゲームがプログラミング教育に大きな影響を与える可能性

以上「はじめてゲームプログラミング」の概要と、プレイすることで体験できるプログラミングの概念・考え方についてお伝えした。

昨今、公教育でスタートしたプログラミング教育だが、現在はまだまだ過渡期であり、学校現場の教員だけでプログラミングにおける概念・考え方を網羅的に、十分に教えることは困難である。

公教育の変化に応じるように、多くの民間のEdTech企業が、自社のプログラミングスクールやプログラミング教材を、教育機関や自治体とも連携しながら、児童生徒へ提供する活動を積極的に展開しており、今後も民間からのプログラミング教育参入が重要になる状況は続くだろう。

国内最大1,700教室で展開「QUREOプログラミング教室」レポート~短期間で急拡大した理由と特徴を探る

中学プログラミング教育講座先進例~ミクシィ展開「テカステ」レポート&現場教員インタビュー

国内最大規模 中高生向けプログラミング教育サービス「Life is Tech ! 」インタビュー【前編】教材の特徴を探る

今回紹介した「はじめてゲームプログラミング」は、日本の代表的なエンターテイメント企業である任天堂が開発したゲームだけあり、ゲームとして遊びながらプログラミングを楽しく体験でき、かつプログラミングにおける重要な概念・考え方も十分に体験できる内容になっていた。

任天堂、そしてその他のゲーム系の民間企業が、「はじめてゲームプログラミング」に類似したタイトルや関連したイベントを展開するかどうか、動向が非常に気になるところではある。

当メディアでも、今後もプログラミング教育に大きな影響を与える可能性が高い任天堂やその他のエディテイメント系ゲームの動向には注目していきたい。

(Visited 448 times, 1 visits today)

Related Post

Other Articles by 酒井啓悟

自治体・学校がEdTech教材導入時に意識すべき課題とは?「すららネット」による課題検証レポート

2020年度に急ピッチで推進されたGIGAスクール構想により、教育機関におけるICT環境が劇的に改善…