
ニンテンドースイッチで2021年6月11日に発売された『ナビつき! つくってわかる はじめてゲームプログラミング』(以下、『はじめてゲームプログラミング』)ではなんと、プログラミング未経験でもゲームが作れてしまうというのです!
キーボードを叩いてコードを書くわけではなく、「ノードン」と呼ばれる生き物たちをつないでゲームを作っていくという、たしかに手軽な内容ですが……。はたして本当に素人でもオリジナルのゲームが作れるのでしょうか?
実際に筆者が挑戦してみたところ、むしろ「ゲーム作りのどんな作業が好きなのか」わかるという意外な結果になりました。その様子をお届けします。
◆最初はナビつきレッスンで楽しく学ぶ!

まずはナビつきレッスンに挑戦するのですが、これがかなり親切。一番最初は「ジャンプできないアクションゲーム」を遊ばされ、そこからどうすればキャラクターがジャンプできるようになるのかを教えてくれます。
単純にプログラミングのやり方を教えるというよりは、失敗例もあわせて教えてくれるのが嬉しいところ。正解の行動をひたすら真似するだけではよく理解できないでしょうから。

ひとつのゲームを作る際もステップごとに分けられており、1ステップは数分程度。さらにクリアするとノードンたちが祝福してくれるという親切ぶりで、意地でもプレイヤーのやる気を引き出そうという気概を感じますね。
このように『はじめてゲームプログラミング』は親切なのですが、ぶっちゃけた話、指示に従っているだけでよくわからない要素もあります(ノードン同士の接続時の接地面など)。また、ナビつきレッスンをクリアしてもすべてのノードンの意味がわかるわけではありません。あるいは、特定の構造を作る方法を教わったはいいものの、詳細をすぐ忘れてしまったなんてケースもあります。
とはいえ、そのフォローも存在します。レッスンで教わったノードンの使い方は「ノードンガイド」で復習できますし、ノードンの詳細情報が掲載されている「リファレンス」もあるわけです。

ナビつきレッスンを一通り終えれば、ひとまずざっくりとした概要くらいは理解できるはず! ……というわけで、ここからがゲーム制作の本番です。
◆オリジナルゲーム制作の第一歩は改造から

いきなりフリープログラミングで完全オリジナル作品を作るのも難しいので、まずはレッスンで作った「エキサイトレーシング」を改造していきましょう。
そもそもこのレースゲームを作っている途中、「アクセルをZRにしたいな」だとか「車がジャンプできるんだったら、穴を飛び越えたりするゲームにしたらおもしろいんじゃない?」などと考えていたのです。
改造方法はいたって簡単。ライバルとなる車を消し、ジャンプして穴を避ける構造を作るために立方体をたくさん配置して上空にコースを作り、あとは邪魔な障害などを配置するだけ。ただ走るだけだとつまらないので、“何か”を倒していくというゲームにしましょう。

こうして完成したのが「車 VS 力士」というゲームです。そう、車を操作してスモウレスラーを倒していくというルールになりました。

道中には巨大なおじさんやマグロが配置されており、穴をジャンプで回避しつつもスモウレスラーにぶつかって倒していかねばなりません。そして、すべてのスモウレスラーを消せば勝利! シンプルなゲームですが、車をきちんと操作しなければならないので、これはこれで悪くないゲームになりました。
穴に落ちた時は、少し手前にワープするような挙動にしたので遊びやすいのも重要なポイント。遊びやすいようにすると「ゲームを作った感」が出ますよね。
◆あのインディーゲームをコピーしてみる

続いては既存のゲームを真似していきましょう。やはりオリジナルをおもしろくするのはハードルが高いので、簡単そうな作品を見様見真似で再現してみるのが手軽です。
今回は、筆者がかつて遊んだインディーゲーム『Block Fight!!』という作品を真似ました。これは赤と黒のブロックをぶつけて破壊し、スコアを稼ぐというゲームです。見てのとおりシンプルなので、再現はラクそうですね。

……と思いきや、「ブロックが破壊されたあとランダムな位置にポップさせる」というプログラムがうまく作れませんでした。乱数ノードンを使えばいいと思われるのですが、動かせるモノをどのようにポップすればいいのか不明。仕方なく、「ブロックが破壊された時にワープさせるプログラム」を強引に量産して解決しました。
おそらくもっとスマートな方法、というかそもそもランダムなリスポーンも作れると思うのですが、さすがに習っていない要素をゼロから考え出すのは難しい。ネット上で公開されているほかの作品を参考にしたり、誰かに教わったりするなどしないといけませんね。

肝となるプログラムこそ強引に解決してしまいましたが、見た目やスコアカウントの部分を調整してなんとか完成! 非常にシンプルな見た目ですが、なんとか完成にこぎつけましたのでヨシ。売るわけじゃないので、完成まで頑張れたことが大事ですよね。
◆オリジナルゲームへの道のりは遠い

そして現在は、3作品目としてオリジナルゲームを作っています。今度は「回転するマグロの尻から発射される球を、特定のオブジェクトに当てて破壊するゲーム」を制作中です。
完全にオリジナルになると考えることが非常に多くなります。というより、そもそも一言で「ゲームを制作する」といっても、以下のようにいろいろな手順があるわけです。
おもしろいアイデアや企画を考える部分
単純にプログラムを組む部分
グラフィックや音楽(雰囲気)を作る部分
ステージをデザインする部分
『はじめてゲームプログラミング』では、上記の要素をどれも複合的にできるのがポイント。作品のルールよりも雰囲気作りがしたい、基本システムを作るのは面倒だけどおもしろいステージを作りたい……など、どれが好きかによって作り方を変えていくとより楽しめるわけですね。
筆者は『スーパーマリオメーカー』シリーズも好きなので、何かおもしろいアイデアを考えたりするよりは、ステージやコースといったものを作り上げる部分が好みなようです。一口にゲーム制作といってもいろいろとやることがあり、どこに自分の適正があるのかもわかるのが『はじめてゲームプログラミング』の魅力といえるかも。
というわけで、『はじめてゲームプログラミング』でプログラミング素人でもゲーム制作は可能でした。ここまでのプレイ時間は、約10時間。おもしろい作品をたくさん生み出すには複合的な適正が必要になってくるでしょうが、それでもゲーム制作のいろはを一通りを体験できる本作はなかなかスゴいなと感じた次第です。