見出し画像

現役SEがみたナビプロの丁寧さと学習コストを下げる隠し事【はじめてゲームプログラミング】

「ナビつき! つくってわかる はじめてゲームプログラミング」(以下ナビプロ)はプログラミング初学者にとって最高の選択肢になる。
筆者の職業はシステムエンジニアなので仕事でプログラミングを行い、趣味でもUnityなどのゲーム制作環境をいじったりしているが本作はまさにそう思わせた。

ナビプロではノードンと呼ばれる小さな機能を線でつないで組み合わせてゲームをつくる。

画像1

ボタンとヒトをつないでボタンでヒトがジャンプできる。

これ自体はナビプロ独自のものではなくPCでゲームをつくるソフトであるUnreal Engineではブループリントという機能があり、Unityの追加機能であるBoltでも可能だ。
しかもUnreal EngineもUnityも無料なのでゲーム制作に自由に使えるPCがあればもちろんそれらもアリだ。

だがナビプロはとにかく初心者をつまづかせないため、
丁寧なナビ覚えやすくするための隠し事がある。

恐ろしく丁寧なナビ

まずは「ナビつき! つくってわかる はじめてゲームプログラミング」はその名の長さが表す通り、プログラミングを恐ろしいほど丁寧にレクチャーしてくれるモードを搭載している。(ちなみに英題はGame Builder Garageという比較的スッキリした名前になっている)
どれほど丁寧かというとこのゲームはプレイヤーのひとつひとつの操作をすべて待ってくれる。
例えばスティックで操作できるキャラクターをつくるため、「ヒトノードンを選んでスティックノードンと繋いで欲しい」という指示の場合は具体的に以下の箇条書きの項目のタイミングで待ってくれる

・ヒトノードンのカテゴリであるモノの項目を選ぶ
・モノのサブカテゴリであるキャラクターを選ぶ
・ヒトノードンを選ぶ
・ヒトノードンを使いやすい位置に配置する
・スティックノードンのカテゴリである入力の項目を選ぶ
・入力のサブカテゴリである「スティックを倒したら」を選ぶ
・さらにLスティックを選ぶ
・さらにさらに「左右」を選んでスティックノードンがでる
・スティックノードンを使いやすい位置に配置する
・スティックノードンをヒトノードンの左右ポートをつなぐ
・操作確認画面を開く
・操作確認画面でスティックを動かしキャラクターが動くことを確認する。(実際に動かすまで待ってくれる)

画像2

一つ選ぶごとに待ってくれる

待ってくれることでやらなきゃいけないことを見失うことなく進めることことができる。

プログラミング向けの動画は多数あるのでそれを見ながらの学習でもいいのだが、操作を間違えたまま進めて不具合がおきたり、バージョンの違いで操作する場所が変わっていたりしたときにその問題を自力で修正するのは骨が折れるものだ。

ナビプロでは間違った操作はすべて行えないようになっているのでレクチャーの内容からそれてゲームがおかしくなることはない。
正しくつくるための基本的な操作のほかに、よくおこる不具合やその解決方法、効率のいいプログラムの作り方についても教えてくれるため最終的に自分ひとりでプログラミングするときの力になってくれる。

こうしたナビプロが教えてくれる部分と比較して、ナビプロはプログラミングの難しい部分に触れないようにした隠し事が数多く存在する。

ナビプロは用語が異常に少ないのだ。

初心者のための隠し事

プログラミングの学習や新しい制作環境を使い始めるとき、まず専門用語の嵐に見舞われる。新しい環境で小さな作例を真似して自分で作りながら、そこに書かれている用語を調べる。
するとその用語の意味や機能の理解のためにはまた別の用語が書かれていてそれをまた調べるということを繰り返す必要がある。
さらに日本語の情報が少ない環境を選ぶとどれだけ調べても英語の情報しかでないということもあるのでますます敷居が高くなっていく。

ナビプロ以外の参考例としてPCでゲームを作成するソフトのUnityでチュートリアルの玉転がしのゲームがある。ナビプロのレクチャーにもほぼ同じようなゲームの「コロコロボール」があるのでナビプロを持っている方は比較してみてほしい。

ナビプロの用語は「ノードン」、それをつなぐ「ワイヤー」「ポート」、ワイヤーを通して機能を伝える「シグナル」、ノードンを同じ位置にくっつける「れんけつ」でほぼ完結しており、チュートリアル中なのにわからない用語が出るたび調べるという手間が発生しない。

比較するとUnityではゲーム画面内に配置される床やキャラはGameObject」とされており、それを操作したり得点を数えたりする部分は「Bolt」で作られる。
ナビプロでは床やキャラを「モノノードン」、操作「入力ノードン」や得点は「中間ノードン」とされていて徹底的に用語と感じる表現を減らし複雑に感じないようにされている。

このようにナビプロの用語はごく限られていて、もし必要な場合も覚えやすいような工夫がこらされている。

ただし、注意としてUnityや他の環境における用語の多さや複雑さはより細かな設定を作ったり、大規模なゲーム開発も可能にするため、必要な機能だから搭載されているものだ。

ナビプロはあくまでSwitchのゲームソフトとしてで完結する範囲でつくられており一人で小さな規模のゲームを作ること想定したナビプロとは目指す方向が違うから生まれたものなので断じてUnityのつくりに非があるというわけではない。

それぞれどれぐらいのものをつくれるかによってベストな方法が違うということをご了承いただきたい。

さらにナビプロはプログラミングにおける基本的な概念も隠し事として平易な表現にしている。

ゲームを含めてプログラミングには変数について知る必要がある。
変数とは数字を出し入れできる箱のようなものだ。
数字を変えられるので現在の体力やプレイヤーのレベル、プレイ時間、得点…たくさんの場所で使われている。
変数はナビプロでは近い機能として「カウンターノードン」という名前がついている。

またゲームではクリアの条件をつくるには「IF文」などと呼ばれるもの担っているがこれらは「くらべるノードン」という名前におきかわっている。

さらに少しこったゲームをつくるには数学は避けて通れない。
どんなふうに使うかの例は以下のリンクを参考にしてほしい。

なかでもぐるぐる回るキャラやホーミング弾などはよくつかわれるのでsin(サイン)cos(コサイン)やアークタンジェントがつかわれる。
これはそれぞれ「角度を位置にノードン」「位置を角度にノードン」というそのままな名前になっている。

これらノードンのネーミングも専門的な印象を取り除かれている命名されている。

(しいて言えば、あとから変更できない数字の箱である「定数」だけなぜかプログラミングで使う名前で「定数ノードン」のままなのが私の中の謎である)

まとめ

ナビプロも万能ではない。使えるノードンの数に制限があるのでゲームの規模は小さくなる。
またにグラフィックやモーションなどの制限が大きい。半透明の表示ができないのでダメージを受けた直後の無敵時間のあいだ半透明にしたい場合は他の表現を探す必要がある。

しかしそれらの制限があってもナビプロの用語の少なさ、命名のわかりやすさはそのまま取っ掛かりやすさにつながる。
そしてつまづきが減って、覚えるべきことが少なくなればそれだけ面白いゲームどうつくるか、できないことに対して別の方法がないか考えることに集中できる。

今後ゲーム作りについて聞かれたらまず最初の選択肢はこのナビプロだろう。

サポートは執筆時のコーヒー代にいたします。