Godot を学ぶためのチェックリスト

reddit を見ていたら「Godot Learning Checklist」という Godot を学ぶべきことをチェックリストにまとめていたのを見つけました。

これから Godot Engine を学ぼうとする人、思うようにゲームを作れない人にとって、何を学ぶべきかが明確になっているとても良いリストだと思ったので、紹介させていただきます。

Godot を学ぶためのチェックリスト

Level 1. チュートリアルゲーム

  • ノードとシーンを使えるようにする
  • Godotエディターの機能を理解する
  • GDScript 言語を理解する(構文、変数、関数、条件式、ループなど…)
  • Godot Engine固有の関数を理解する(_ready()、_process()、_input()など…)
  • ノードを移動、回転させる方法を学ぶ
  • キーボード、マウス、ゲームコントローラーでの入力判定の方法を理解する
  • コリジョンの検知、コリジョンイベントの扱いを知る
  • queue_free() 関数によるノードの削除方法を理解する
  • サウンドの再生方法を知る

この段階ではまず、Godot Engine はどういう機能があるのかを知る段階となります。このサイト内の記事であれば以下のものが参考になりますし、公式のチュートリアルや Youtube にあるチュートリアルをやってみてもいいかもしれません。

【Godot】2Dクリックゲームチュートリアル (1/3)

気をつけるべきこととして、チュートリアルをただ真似るだけではなく、どの機能がどのように動作することで、チュートリアルゲームが動いているのか…、ということまで理解できると、これ以降の段階に進みやすくなると思います。

なお、サウンドの再生方法については以下の記事に書きました。

【Godot】サウンドを動的にロードして再生する方法

Level 2. 基本的なゲームを作るために必要な知識

  • ノードを検索する方法を知る
  • シーンの遷移(別のシーンへの移動)
  • ノードを生成する
  • 配列(Array)とディクショナリ(Dictionary)の使い方を学ぶ
  • 基本のGodotノードについて理解する (Node2D や Spatial)
  • 基本的なControlノード(Buttonなど)を使ってメニューを作ってみる
  • シングルトンの使い方を学ぶ (「自動読み込み(AutoLoad)」を使う)
  • ファイルの読み書きの方法を知る (.csvや.jsonなど)
  • カスタムシグナルの使い方を理解する
  • Vectorなどmath関連クラスの基本的な使い方を知る
    https://docs.godotengine.org/ja/stable/tutorials/math/index.html
  • 外部アセットのインポート方法を学ぶ

Level1では必要最低限の機能を学びましたが、Level2ではゲームをより複雑で規模を大きくしていくために必要な機能を学びます。

特に、動的なノードの生成や、ArrayとDictionaryの扱い、Controlノードによるメニューの作成、シングルトン、ファイル読み書きは、ゲーム作りの基本になると思います。

関連がありそうな記事をピックアップしておきます。

【Godot】シーンとノードについて 【Godot】リソースパス(res://)とユーザーデータパス(user://)の違いについて 【Godot】CSVファイルの読み込み方法 【Godot】Vector2でよく使いそうな関数まとめ 【Gudot】謎解きゲームで使いそうな数値入力UIの作成方法

Level 3. カジュアルゲームを作るために必要な知識

  • プレイヤーやNPCのアニメーション方法を知る
  • シーンツリーの構造を理解する
  • Godotノード (Control、Node2D や Spatial) の扱いを完全に理解する
  • シーン遷移の演出を作る方法を学ぶ。シーンのローダーを作る
  • カスタムUIを作る
  • セーブとロードの方法を理解する
  • WorldEnvironmentノードやライティング(Light2Dなど)の使い方を知る
  • パーティクルの実装方法を理解する
  • サウンドエフェクト、BGM再生やオーディオバスの使い方を学ぶ
  • ビューポート (Viewportノード)を理解する
  • より高度な Vectorなど math関連クラスの使い方を知る
  • カメラジンバル (キャラクターなどを中心に回転するカメラ)
  • NPCのAI (経路探索など)
  • ダイアログ、インベントリの作り方を理解する
  • タイマーノード(Timer)の使い方を知る

このあたりになるとゲームの見栄えを良くしたり、複雑なゲームを作るための基礎となる知識になると思います。このあたりまで理解できれば、自信を持ってゲームを作れる段階まで到達したと言えそうです。

【Godot】セーブデータの保存方法 【Godot】ブルームを適用する方法 【Godot】2Dライティングの実装方法 【Godot】AStar2Dを使用した経路探索の実装方法

Level 4. 本格的なゲームを作る

  • 画面設定を行うメニューを作成する
  • レベルエディタを自作する
  • プロシージャル (レベルの自動生成など) を使ったゲームを作る
  • シェーダーの使い方を学ぶ
  • サーバーと通信を行う方法を知る
  • マルチプレイの(複数人で遊べる)ゲームを作る
  • Godotエディタ上で動作するカスタムツール(エディタ拡張)を作ってみる
  • Godot Engine の機能を拡張して自分でビルドしてみる
  • 外部ライブラリを Godot Engine に組み込む
  • カスタムライブラリを C# で作ってみる
  • ローカライズ機能を実装する
  • 自身の限界に挑戦してみます……

より高度なゲームを作る段階です。例えば 専用のレベルエディタがあったほうがレベルを量産しやすくなりますし、 Mod (モッド) などの対応も可能です。

より多くのユーザーに遊んでもらうにはネットワーク機能は重要ですし、 Godot Engine をカスタマイズしてビルドできるようになれば、より柔軟にゲーム開発を行えるようになります

エディタ拡張を理解する基本として、以下ではCSVエディタを作る記事を書いています

【Godot】エディタ拡張で簡易CSVエディタを実装する方法

以下は、プロシージャルの基本中の基本として、穴掘り法でダンジョンを自動生成する記事です

【Godot】穴掘り法によるダンジョンの自動生成

またシェーダー周りについて、いくつか記事を書いていますが、以下は基本的な使い方についての記事となります

【Godot】シェーダーの基本的な使い方