Godotの学習をかねてレトロ調のゲームを作ってみた
前にGodotについて記事にしたことがありましたが、あれから少しずつ使い方を学習していました。

最近、2Dゲームの作り方が何となく分かってきたので、より理解を深めるためにちゃんとしたゲームを作ってみることにしました。
まずはシューティングゲームを作ってみようと考え、Geminiにレトロ調のシューティングゲームの絵を描いてもらい、そのイメージ画をもとにゲームを作成しました。
実際に作ったゲームはこんな感じです。

どこかで見たことのあるような雰囲気のゲームが出来上がりました。
ダウンロードはこちらから。
Linux64ビット(Zorin OSで動作確認済み)
Linux arm64(Raspberry Pi 500で動作確認済み)
Windows64ビット(Windows11で動作確認済み)
操作は次の通り。
ゲーム開始:
ゲームコントローラー START
キーボード リターンキー
ゲーム終了:
キーボード ESCキー
自機の移動:
ゲームコントローラー スティックの左右、または方向キーの左右
キーボード 左右キー
ショット:
ゲームコントローラー Aボタン
キーボード スペースキー
ウインドウ・フルスクリーン切り替え:
ゲームコントローラー SELECT
キーボード F11
ライセンス表示:
キーボード F1
ゲームの遊び方については説明するまでもないでしょう。ゲームスタートは「GAME OVER」と表示されているときにコントローラーのスタートボタンかキーボードのリターンキーを押してください。

自機は3機、スコアによって増えることはありません。まだまだ手を入れたいところはたくさんありますが、やり始めるといつまでも完成しないのでひととおり遊べるようになったところで公開することにしました。

GodotはUnityなどと比べて導入が簡単で軽くて使いやすいです。ライセンスの縛りが緩いのもいいですね。
似たようなゲームエンジンにDefoldというものもあります。こちらも使いやすくていいのですが、どちらかというと2Dゲームがメインなので3Dゲームも考えている場合はGodotを使ったほうがいいでしょう。
Godotの欠点は日本国内ではUnityのように情報やアセットが豊富に提供されていないところです。でも本家サイトのチュートリアルは日本語で(残念ながらところどころ英語のままだったりしますが)読めますし、翻訳ツールを使えば技術的なドキュメントを理解するのも難しくないでしょう。
参考までにこれまで行ってきた学習手順を紹介すると、最初はここを見てGodotの詳細を知りチュートリアルで2Dゲームの作り方について学びました。でも、まだ学習途中で3Dゲームまでは進めていません。
開発言語はGDScriptを使っているのですが、こういったスクリプト言語を使用した経験がなければここのチュートリアルを利用するといいかもしれません。使用していないので詳しいことは分かりませんがステップバイステップでGDScriptについて教えてくれるようです。オプションで日本語も選べるようになっています。
Godotにはたくさんの機能があるので本家のチュートリアルを試しただけでは本格的なゲーム作りは出来ないでしょう。Godotに限らずゲームを作るには先人の作成したゲームのソースコードを読んで理解するのが一番の近道だと思います。
今回作ったシューティングゲームはこちらのサイトのシューティングゲームのチュートリアルの内容を理解してから作り始めました。このサイトにはかなり有益な情報がありました。でも、ゲームとして仕上げるにはこれだけでは情報不足でした。分からないところは自力で情報を集めながら作るしかありません。
Godotの情報は国内にも結構ありますが、海外にはGodotに関するサイトが山ほどあります。ただし現在のGodotのバージョン4.xではなく仕様の少し異なる古い3.xの情報も多いので対象バージョンを確認するようにしましょう。
ゲームの中身自体は多くのコードを書くこともなく割と簡単なので楽しみながら作れるのですが、自機や敵の管理や面数の切り替え、ゲームオーバーの処理といったことや、これらをUIと結び付けて表示させるというようなゲーム周辺の処理を組み込むのが結構面倒でした。
今回やっとゲームが作れましたが、まだ初歩的なことを理解しただけにすぎません。より複雑なゲームや3Dゲームを作るにはGDScriptだけでなく処理スピードの有利なC#やC++を使う必要も出てくるでしょう。これからも少しずつゲームを作りながらGodotを理解していきたいと思います。
