PONOS Advent Calendar 2023の17日目の記事です。
昨日は@MilayYadokariさんのShaderGraphで画像をお手軽にスクロールでした。
はじめに
僕は主にUnityで開発しているクライアントエンジニアですが、
2023年9月にUnity社から新しい料金システムの発表がありまして、世間的には代替エンジンを模索する動きが見られました。
その中でGodot Engineというものを耳にしたのですが、Godot Engineは触ったことがなかったので触ってみました。
Unityエンジニアは以下のページを一読するとGodot Engineというのがなんとなくわかるはずです。
テスト環境
以下の環境やバージョンでテストしました。
- MacBook Pro (13インチ, 2020, Thunderbolt 3ポート x 4)
- macOS Monterey (バージョン 12.5.1)
- Godot Engine 4.2
ダウンロード
早速ダウンロードからしますか!
- 今後、C#で書いていきたいので .NET バージョンにします。
(.NET バージョンはつい最近リリースした?)
- ダウンロードした「Godot_v4.2-stable_mono_macos.universal.zip」ファイルを解凍しましょう。するとすぐに使えます。
(アイコンかわいい)
プロジェクトの作成
Godot Engineを起動しましょう。
インストールからプロジェクトの作成までできました。
シーンの作成
メインとなるシーンから作成する必要があります。
- シーンが空の状態なので、早速作成しましょうか。
- ノードっていうのはUnityのGameObjectだと思えばいいでしょう。
- シーンウィンドウの+ボタン押下で出てくるリストから作成しても良いですし、
- ルートノードを生成のリストから作成しても良いでしょう。
- 今回は2DシーンにNode2Dを作成します。
- 適当に名付けて保存します。
これでメインとなるシーンが作成できました。
スクリプトの作成
- シーンウィンドウの右側にあるボタンを押すと、ノードにスクリプトをアタッチできます。
- 言語は:C#
- 継承元は:Node2D
- テンプレートはNode:Defaultに設定
- UnityのMonoBehaviourを継承するイメージに近いでしょう。
- パスの名前は main にして、作成!
- Godot EngineのScriptタブから表示されます。
- mainクラスはNode2Dを継承しているのがわかります。
- _Ready()をオーバーライドしていますが、UnityのStart()に近いメソッドでしょう。
- _Process()メソッドは、UnityのUpdate()メソッドでしょうね。
- 似たようなメソッドが多い気がする。(楽しみ)
- 右側のインスペクターからアタッチしているスクリプトの情報がわかります。
スクリプトを書く
とりあえず動かしてみたいので、簡単なスクリプトを書きます。
- Godot EngineもUnity EngineのようにいろんなAPIが提供されています。
- 例えばログを出力するAPIは以下となります。
Unity
UnityEngine.Debug.Log("Hello");
Godot
GD.Print("Hello");
- using static ディレクティブを使用すると便利な場合があります。
- C# API differences to GDScript¶
- この機能でやってみます!
- C# API differences to GDScript¶
using static Godot.GD;
public class Test
{
static Test()
{
Print("Hello"); // Instead of GD.Print("Hello");
}
}
これが初Godot Engineのプロジェクトでしたね。
最後に
Godot Engineをインストールから触ってみたところ、Unity Engineより軽い感じでした。
(Unity Engineは機能が多すぎて重たいですよね…)
Unity Engineとインタフェースも似ていたので、戸惑うこともありませんでした。
またVisual Studio Codeと連携しなくてもスクリプトエディターで書けたのが便利。
次回は実際にゲームを作りながら深掘りしたいと思います!
次は @nisei275 さんの記事です!
お楽しみに!