レビュー

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

プログラミング画面とゲーム画面が密接に関係していることに目から鱗!

 「はじめてゲームプログラミング」の面白いところは、プログラム画面とゲーム画面が密接に関係しているところだ。そのことに気付いたのは、レッスン1のステップ2を進めているときだ。これはなかなか画期的で、従来のビジュアルプログラミングでは部分的にしか実現できていなかったところだと思われる。筆者は、そのことに気付いたときに大きな衝撃を受けたというか、「なるほど!これはすごいな」と感動した。

 「はじめてゲームプログラミング」ならではのプログラミング感覚を知ることができる、レッスン1のステップ2を見ていこう。レッスン1のステップ2の目的は、ゲームのステージとなる床と壁を作ることだ。

ステップ2の目標は、床と壁を作ること

 最初に、ゲーム画面ノードンを呼び出す。ゲーム画面ノードンも、「はじめてゲームプログラミング」ならではの概念であり、ゲーム画面ノードンの中にあるものが、ゲーム画面に表示されるのだ。つまり、プログラム画面のゲーム画面ノードンの中にヒトノードンなどのキャラクターや障害物などを配置すると、それがそのままゲーム画面で表示される。「はじめてゲームプログラミング」では、すべてのノードンに、X,Y,Zの3次元座標が与えられている。ゲーム画面ノードン自体にも座標が設定されており、その座標を変えることで、ゲーム画面に表示される背景やキャラクターなどがスクロールするのだ。

ゲーム画面ノードンの中にあるものが、ゲーム画面に表示される

 つまり、プログラム画面は、大きな一枚のシートみたいなイメージで、プログラム自体もそこにノードンを並べることで記述されるが、同時にその一部はゲーム画面をデザインするキャンバスにもなっているのだ。これはとても新鮮だ。Scratchでも、ゲーム画面にスプライトと呼ばれるキャラクターなどを自由に配置できるが、あくまでそれは最初からゲーム画面として独立しているものであり、ブロックを並べるプログラム画面とは別のものだ。

 さらにすごいのは、「はじめてゲームプログラミング」のノードンは、すべて3次元のオブジェクトになっており、プログラム画面の視点もXY平面(実際のゲーム画面を横から見るイメージ)とXZ平面(実際のゲーム画面を上から見るイメージ)に切り替えられるのだ。この視点の切り替えを使ったプログラミングは、レッスン2の「コロコロボール」で体験できる。まさか、プログラム画面を上から見たり、横から見たりするとは思わなかった。この視点切り替えは、まるで3D CADソフトのようだ(もちろん斜め視点とかにはできないが)。

 また、ノードンは位置だけなく、大きさや向きも、パソコンでウィンドウのサイズを変えるのと同じように、自由に変更できる。なお、「はじめてゲームプログラミング」では、Joy-Conなどのコントローラーでのプログラミングも可能だが、市販のUSBマウスを使うこともできる。USBマウスのほうがポインタの移動などはやりやすいが、作成したゲームをプレイするにはコントローラーが必要なので、両方を併用するのが楽だ。

ノードンの大きさは、パソコンでウィンドウのサイズを変えるのと同じように、自由に変更できる

 ステップ2では最初にプログラム画面で、ゲーム画面ノードンを呼び出すが、その後、ゲーム画面に移動すると、ステップ1で表示されていたヒトが表示されなくなってしまう。その理由はもちろん、ゲーム画面ノードンの中にヒトノードンが入っていないためだ。そこで、ヒトノードンを移動して、ゲーム画面ノードンの中に入れてやると、ゲーム画面でも一瞬ヒトが表示されるが、すぐそのまま落下してしまう。その理由はゲーム画面ノードンの中には下向きに重力が働いており(重力をオフにすることもできるが)、ヒトが現れても下に床がないため、すぐに落ちてしまうからだ。そこで、プログラム画面に戻って、直方体のモノノードンを床としてヒトノードンの下に配置してみる。しかし、これでは上手くいかない。直方体の床にも重力が働いて落ちてしまうのだ。

ゲーム画面に切り替えたが、何もキャラクターが表示されていない。その理由はゲーム画面の中にヒトノードンを入れていないからだ
プログラム画面に切り替えたところ。中央下にあるヒトノードンを上のゲーム画面ノードンの中に入れれば、ヒトノードンが表示されるようになる
このようにヒトノードンをゲーム画面ノードンの中に移動させればよい
ゲーム画面に戻ると、一瞬ヒトが中央に表示されるが、すぐ下に落下して画面から消えてしまう
ヒトが落ちないようにするには、足場となる床を作ればよい。「モノ」→「シンプルなモノ」→「直方体」を選んで、直方体のモノノードンを呼び出す
モノノードンをゲーム画面の下のほうに移動する
ゲーム画面に戻る。一瞬、直方体の床が表示されたが、ヒトと同じく下に落ちて消えてしまう

ノードンの設定画面でふるまいを変更する

 せっかく配置した床だが、このままでは意味がない。すると、ナビゲーターのボブが、モノノードンの設定画面を開くように要求する。ノードンを指定して、下に現れる歯車アイコンを選択することで、設定画面を開くことができる。設定画面では、ノードンのふるまいや色、大きさ、位置などを自由に変更できる。この設定により、ノードンの特性を変えることが、「はじめてゲームプログラミング」ではとても重要である。

床が落下しないようにするには、床のモノノードンの設定を変更する必要がある。歯車マークをクリックすることで設定画面になる

 初期状態のモノノードンのふるまいは、「見える」、「当たる」、「動く」、「こわれる」、「こわす」がオンになっているため、重力が働いて動いてしまうのだ。また「こわれる」や「こわす」がオンになっていると、ヒトなどとぶつかったときに壊れたり、相手を壊したりしてしまうので、ステージの床としてはふさわしくない。床なら、シンプルに「見える」と「当たる」だけをオンにして、他をオフにすればOKだ。

モノノードンの設定画面。この設定でそのノードンのふるまいや色、位置などを自由に変更できる。設定により、ノードンの特性を変えることが、「はじめてゲームプログラミング」の肝の一つだ
モノノードンの設定で、ふるまいを「見える」と「当たる」だけをオンにし、他をオフにする

 再びゲーム画面に戻って確認すると、床が落ちなくなっている。このように、「はじめてゲームプログラミング」では、設定を変えるだけで、そのふるまいや特性が変わるため、例えば、あるモノノードンのふるまいを「こわす」にして、別のモノノードンのふるまいを「こわれる」にすると、2つのモノノードンがぶつかった場合、こわれる側のモノノードンだけが壊れることになる。

ゲーム画面に移動すると、ちゃんと床が固定され落ちなくなっている

 通常のプログラミングなら、モノのふるまいを決めるためにプログラムを書く必要があるが、「はじめてゲームプログラミング」なら、設定画面を開いて何カ所かを変更するだけでよいのだ。

 床のふるまいを変更して落ちなくなったら、床のサイズを広げて色を変更する。サイズを変更するには、プログラム画面で直接モノノードンを大きくすればよい。さらに、床のモノノードンをコピーして位置と大きさ、向きを変えて壁を作る。「はじめてゲームプログラミング」でのプログラミングでは、ノードンをコピーして別の場所に置くという作業も頻繁に行われる。このとき、設定画面で変更したふるまいや色も一緒にコピーされる。
 また、ノードン同士を連結させることが可能で、連結されたノードンは一体となって動く。

プログラム画面に移動して、床をゲーム画面一杯に引き延ばす
ゲーム画面にすると、床がゲーム画面一杯に広がり、ヒトを動かしても落ちなくなった
今度は床のモノノードンの設定で色を茶色に変更する
モノノードンをコピーして壁を作る
壁なので形を縦長に変える
さらにコピーして反対側の壁も作る
ゲーム画面に移動すると、ちゃんと左右に壁ができている。これでステップ2は完了

 このように、ナビつきレッスンでは、各レッスンごとに一つのゲームを作りながら、「はじめてゲームプログラミング」のプログラミングの基本を順に学べる。基本的には、ナビゲーターのボブの指示通りに従っていくだけでよく、指定された通りにノードンを配置し、設定画面でノードンのふるまいなどを変更し、ノードン同士をワイヤーで接続していくことで、さまざまなゲームを作ることができる。完成したゲームは、いつでも遊べるだけでなく、ゲーム自体をコピーして、それをベースに改良することが可能だ。また、自分で作成したゲームを公開して他人に遊んでもらったり、逆に他人が作ったゲームをプレイすることもできる。(Nintendo Switch Onlineへの加入が必要)