このページの本文へ

エデュケーション@プログラミング+ 第29回

パワポのように作って、ピタゴラ装置のようにチューニングする

「意地でも最後までゲームを作らせる!」がコンセプト――任天堂のプログラミングソフト

2021年06月11日 17時00分更新

文● 遠藤諭(角川アスキー総合研究所)

2021年6月11日発売の『ナビつき! つくってわかる はじめてゲームプログラミング』

パワーポイントみたいに配置するプログラミング

 任天堂からゲームプログラミングのソフトが発売された。「任天堂の開発室から生まれたプログラミングソフト」というのが気になっている人もいると思う。テレビコマーシャルや店頭紹介映像が流れている『ナビつき! つくってわかる はじめてゲームプログラミング』(6月11日発売/Nintendo Switch用)である。どんなソフトかについては、私と一緒に体験会に参加した盛田諒氏のレポート記事がとてもよくポイントを伝えているのでそちらをご覧いただきたい。

 それではなぜこの記事を書いているのかというと、子どものプログラミングについて私が感じていた《ちょっとしたモヤモヤ》に、このソフトが答えてくれている部分があるからだ。そのモヤモヤというのは、今年で第6回目となる「全国小中学生プログラミング大会」をやってきて、毎回感じていることだ(公式サイト)。それは、こちらの記事で彼らの作品をチラリとでも見ていただきたい。私は、

 「こんなソフトを完成まで作りきったなんてホントにえらいねー」

 と本当に関心してしまうのだ。文字でこんなふうにサラリと書いてしまうと、もうひとつ伝わらないと思うのだが、プログラマーの方なら分かっていただけると思う。大人顔負けのソフトを書いたこともさることながら、これだけのプログラムを動くところまで持っていくのは、本当に血のにじむような努力が必要だからだ。

 どんなプログラミング言語でも、最初に入門で短いプログラムを書くのは思いのほかできてしまう。しかも、自分が書いた数行のプログラムでもキャラクターを前後に左右に動かしただけで楽しい。ところが、自分で何か作りたいソフトのアイデアができてそれをプログラムとして作り上げようとなると話はガラリと変わってくる。

 『Coders』(クライブ・トンプソン著、井口耕二訳、日経BP)というまさにプログラマーという職種に関して書かれた本によると、世界で最初に稼働したコンピューターの1つである英国のEDSACの開発者モーリス・ウィルクスは、1949年6月のある日、階段を上りかけた瞬間、心の中をよぎったものがあったそうだ。それは、

 「これからの人生、自分が書いたプログラムの間違い探しに大半の時間を費やすことになりそうだ」

 ということである。参考までに、1949年6月というのはEDSACが稼働した翌月なので、子どものプログラミング入門みたいな感じで、最初の短めのお試しのプログラムを動かしたあとに、具体的になにか目的のあるプログラムを作りはじめたタイミングだったのではないかと思う。

世界最初のプログラミングのテキスト『The Preparation of Programs for an Electronic Digital Compute』(1951年)は、ウィルクスを含む著者の頭文字をとってWWGと呼ばれる歴史的名著(写真は復刻版)。その第5章は「Pitfalls」(落とし穴)と題してバグではなくミステイクという言葉を使ってだがプログラムの不具合について語られている。

 ウィルクスの予感は的中して、階段での瞬間から70年が経過した現在まで、世界中のプログラマーたちを悩ませ、徹夜させ、開発工数もくってしまうのが「デバッグ」というものだ。つまり、ソフトが正しく動かないときの原因探しとプログラムの修正である。どんなに難しいソフトも作っているときは楽しい。それに対して、デバッグは自分が書いたものの間違いを突きつけられるわけだからネガティブである。ソフトの不具合はいまや日常的なニュースになっているほど当たり前に起こる。

 このことは、相手が子どもであろうと逃れるわけにはいかない。大人は仕事の厳しさともいえるしさまざまな手段である程度回避できるようにもなる。しかし、プログラミングをはじめたばかりの子どもはどうか? 「くじけそうになった」とか「やめたくなった(けど続けてよかった)」というのは、コンテストで小中学生の口から実際に聞かれることばである。

 そこで今回の『ナビつき! つくってわかる はじめてゲームプログラミング』だが、このソフトのコンセプトは「意地でも最後までゲームを作らせる!」というものだそうだ。「任天堂の開発室から生まれたプログラミングソフト」というのは、紹介映像でもわかるソフトの使いやすさを意味しているのだと思う。しかし、プログラミングはちゃんと動いて遊ぶところまでいかないと意味がないというメッセージなのかもしれない。

 そのための仕掛けとして、ここまで書いてきたプログラミングのたいへん過ぎる部分を、このソフトは完全に払しょくすることをめざして作られたように見える。

 『ナビつき! つくってわかる はじめてゲームプログラミング』がどんなものかは、最初にも触れたように紹介映像がよくできているので見てほしいし、盛田氏の記事は体験会で我々がやったことがほぼすべて書かれている。それで、彼の記事でも触れられているのだが、私はこのソフトに触ったとたん、

 「なんとなくパワーポイントを使っているのに似た気分ですねー」

 と思わず口に出したのだった。これに対して、任天堂の担当者からは「そういう反応は社内でもあるんですよ」と返ってきた。パワーポイントを使っている気分というのは、画面上に「ノードン」というものを配置してつなげて、そのパラメーターを調整していくことが、このソフトにおけるプログラミングだからだ。

後述の「ナビつきレッスン」をやっているところ。パワポ感覚でノードンを配置してつないでいく。

その場でゲーム画面に切り替えて動作を確認できる。

設定でノードンのふるまいを定義、チューニングしていく。

モノの大きさもパワポ感覚で変更することができる。

 パワーポイントといえば、たまに「パワーポイントを禁止する会社が増えている」なんてニュースがネットで流れてきたりする。「アマゾンやトヨタはパワポ禁止」という内容をそのまま信じてしまう人もいる。しかし、元ネタを調べてみるとベゾスは社内会議は立派なパワポを用意してやるなと言ったという程度のお話である。パワポは、名前のとおり強力な思考整理ツールであり、コミュニケーションツールだといってよい。

 その上で、短いものでは約40分でゲームを完成させられるナビつきレッスン(いわゆるチュートリアル)が用意されている。ナビつきレッスンでは、7ジャンルのソフトを作るようになっている。「二人対戦!おにごっこバトル」(私たちが体験会でやったのはこれだが『マリオブラザーズ』的なソフト)や「コロコロボール」(Nintendo Switchらしく本体を傾けて操作して遊ぶもの)から、シューティング、2Dアクション、謎解き、レーシング、最後は「3Dアスレチックワールド」という3D空間を遊ぶゲームまである。

 こんなふうにジャンル分けされていると、「それって、あらかじめできあがったゲームのパラメーターを変えているだけでしょ」と感じてしまうかもしれない。やれることは決まっていて、それを着せ替え的にいじっていくだけじゃないの? という意見だ。これについては慎重に見たいところだが、「ナビつきレッスン」のあとに自由にゲームを作る「フリープログラミング」が用意されている。

 ついでながら、ノードンを使ったプログラミングの原型は「Nintendo Labo」のToy-Conガレージで使う「入力・中間・出力」を線でつなぐ機能のようだ。Nintendo Laboは、段ボールを素材にしたIoT工作キットのようなものなので、ゲームというよりもリアル空間でのオモチャ的体験(つまり現実社会の単純化モデル)を新しくしようという趣向のものだ。

Nintendo LaboのToy-Conガレージのプログラミングの画面

ピタゴラスイッチの「ピタゴラ装置」的でもある

 パワーポイントに似ているというのともう1つ、こちらはナビつきレッスンの「二人対戦!おにごっこバトル」を作って感じたのは、「なんとなくNHKで放送されている『ピタゴラスイッチ』みたいじゃないか」ということだった。

 「二人対戦!おにごっこバトル」では、自分のキャラクターを動かす以外に『マリオブラザーズ』のコインやファイアボールみたいな感じでボールが自動的に上から落ちてくる。ボールは、現実の世界と同じように重力によって落下して板や壁に当たれば弾むようになっている。そのようすが、ピタゴラスイッチの玉がコロコロ転がる感じを連想させたからだ。

 ピタゴラスイッチにおける「ピタゴラ装置」ってもともとプログラミング的なものだと思う。玉が転がるルートを用意してあとは自動的に動いていく。「ピタゴラじゃんけん装置」なんていよいよプログラミングな雰囲気である。ピタゴラ装置みたいなことって、誰でも子どもの頃にやったことがあると思うけど、さきほどまで書いていたプログラミングのたいへんさをあまり感じさせない。失敗することのほうが多くてうまくいくほうが少ないはずなのに、なぜか気分はラクだった(たぶん原因が目で見たままだからだろう)。その点でも、このソフトとピタゴラ装置は似ている。

 一般的なプログラミング言語(BASICやCやPythonなど)では、落ちてきたボールが板に当たったかどうか、ボールと板の座標を「IF文」で数値比較で判定する。さすがに、Scratchは工夫されていて「当たり判定」という機能が用意されている。同じIF文的意味をもつ制御ブロックでも〇〇が「××に触れた」で判定できるようになっている。とはいえ、判定やボールが何個も連続して出てくるようなときには繰り返しという考え方になる。

 それに対して、『ナビつき! つくってわかる はじめてゲームプログラミング』では、IFもWHILEもない。ノードンを呼び出してボールを発射させ直方体を置いてやるだけで、《ボールが落ちてきて板に当たったので弾む》ということが《自然に起��る》のだ。もはやプログラミングしているというよりも、ノードンを配置して《箱庭的な世界を作っている》だけという感じである。

パッケージ版の『ナビつき! つくってわかる はじめてゲームプログラミング』には「ノードンふりかえりカード」がついてくる(単品で500円で購入も可能)。コーディング不要とはいえノードンのはたらきや使い方は理解する必要がある。そのためのカードだ。将来的には、ソフトにAIが搭載されて対話しながら作れたら楽しいかもしれない。

 「IF文もWHILE文もなくてプログラムを自由に書けるのかよー?」という意見も聴こえてきそうである。しかし、箱庭的な《世界》をかなりのレベルで自由に作れるようになっているのだとしたら書けそうな気がしてくる。なぜなら、我々がプログラムとして作りたいのは我々のいる《世界》のことを扱っていて、それに一対一対応した箱庭だからだ。

 私自身は、まだ「フリープログラミング」に挑戦していないから確信をもっていうことはできないが、さまざまなノードンを配置してつなげることで、かなり自由にゲームプログラムを作ることができるようだ。このソフトでは「ゲーム」に限定しているが、実は、ゲーム以外のほとんどのソフトウェアも同じように箱庭的に実現できるんじゃないかと思う。つまり、

 「世の中の森羅万象をあつかえるバーチャルピタゴラ装置的なプログラミング言語がありうる」

 などと妄想したくなる。それには、我々の住んでいる世界をバーチャルピタゴラ装置の中にそっくり作らないといけないことになるが、デジタル業界の最新注目テーマの1つがまさにそれなのだ。「DX」におけるキーワードの1つが「デジタルツイン」であり、それを、我々のいる空間にまで広げたのが「ミラーワールド」というやつだ。「ノードン」の動きのようなものも含めてAIをどう使うかがカギになりそうだが。

子どもたちや世界中のプログラマを悩ませてきたのは「IF」と「WHILE」

 「プログラミングとは?」という説明で、この「IF」や「WHILE」を使って手順を書くことと説明されていたりする。そしてまた、そのために《論理的思考》がプログラミングでは重要であるなんて話になる。しかし、「IF」や「WHILE」を考えて使う場面というのは、ただの足元のそれほど創造的でもない手間仕事でしかないことが多い。

 プログラミングで重要とされるべき論理性というのは、もっとコンセプトレベルのまさにゲームデザインのようなものであるべきだと思う。しかも、人間が受け入れられるそうしたデザインは、ギリシャ悲劇のようにパターンが決まっているようにも思えてくる。それが、ゲームについてはナビつきレッスンなのだろう。

 プログラミングにおいて、IFやWHILEなどを使って自分でアルゴリズムを組み立てるのではなく、十分に枯れたやり方を並べるほうがよい。もちろん、IFやWHILEは文字としては書くのだが、それが見えているかどうかは大きな違いだ。プログラミングで学ぶべきは柱の立て方ではなくて、建築物で使われてきたさまざまな構造の種別をきっちりやることだというお話を、『情報処理』(2021年月号 Vol.62 No.3)に書かせてもらったのでご興味のある方はご覧いただきたい。

 子どもたちが、IFやWHILEといった手間仕事的なことに労力を使って「やめたくなった」とか「くじけそうになった」というのはつまらない。もちろん、それを乗り越えられる子はいいし、Scratchのコミュニティやリミックス(他の作品をもとに新たな作品をつくる)はそれに対する前向きな取り組みである。しかし、『ナビつき! つくってわかる はじめてゲームプログラミング』には、その手間仕事自体がないのだ。それでも、これを体験しているうちに、IFやWHILEを使ったプログラミングもできるようになると思う。

 『計算する生命』(森田真生著、新潮社)という本を読んでいたら、ヒトは、生まれついての認知メカニズムだけでは7と8の区別すらおぼつかないそうだ。それが、指を折るようになり、獲れた穀物を小さな粘土の数で管理するようになり、数字が生まれ、やがて、デカルトが図形であろうが形のないものであろうが記号と式であらわせると言い出した。《操る》ことで、はじめて人はより思考できるようになったのだ。コンピューターやNintendo Switchもそうした歩みの現在時点での到達点なのだと思う。

 そんなことを、ナビつきレッスンで「二人対戦!おにごっこバトル」を作りながら思いをめぐらせていた。機械に助けられながらも何が大切で何が魅力的かを理解できることに意味がある。アーサー・C・クラークは、「人間が道具を発明したというのは半分しか本当ではなく、道具が人間たるものを生み出した」と言っているそうだが、だからコンピューターとプログラミングはすばらしいのだ。

 

遠藤諭(えんどうさとし)

 株式会社角川アスキー総合研究所 主席研究員。プログラマを経て1985年に株式会社アスキー入社。月刊アスキー編集長、株式会社アスキー取締役などを経て、2013年より現職。角川アスキー総研では、スマートフォンとネットの時代の人々のライフスタイルに関して、調査・コンサルティングを行っている。「AMSCLS」(LHAで全面的に使われている)や「親指ぴゅん」(親指シフトキーボードエミュレーター)などフリーソフトウェアの作者でもある。趣味は、カレーと錯視と文具作り。2018、2019年に日本基礎心理学会の「錯視・錯聴コンテスト」で2年連続入賞。著書に、『計算機屋かく戦えり』(アスキー)、『頭のいい人が変えた10の世界 NHK ITホワイトボックス』(共著、講談社)など。

Twitter:@hortense667
Facebook:https://www.facebook.com/satoshi.endo.773

カテゴリートップへ

この連載の記事
ピックアップ