3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PONOSAdvent Calendar 2023

Day 17

UnityエンジニアがGodot Engineを触ってみた

Last updated at Posted at 2023-12-17

PONOS Advent Calendar 2023の17日目の記事です。
昨日は@MilayYadokariさんのShaderGraphで画像をお手軽にスクロールでした。

はじめに

僕は主にUnityで開発しているクライアントエンジニアですが、
2023年9月にUnity社から新しい料金システムの発表がありまして、世間的には代替エンジンを模索する動きが見られました。
その中でGodot Engineというものを耳にしたのですが、Godot Engineは触ったことがなかったので触ってみました。

Unityエンジニアは以下のページを一読するとGodot Engineというのがなんとなくわかるはずです。

テスト環境

以下の環境やバージョンでテストしました。

ダウンロード

早速ダウンロードからしますか!

  • 今後、C#で書いていきたいので .NET バージョンにします。
    (.NET バージョンはつい最近リリースした?)
    Godot Engine download.png
  • ダウンロードした「Godot_v4.2-stable_mono_macos.universal.zip」ファイルを解凍しましょう。するとすぐに使えます。
    Godot Engine App.png
    (アイコンかわいい)

プロジェクトの作成

Godot Engineを起動しましょう。

  • プロジェクトがないため、新規に作成します。
    Godot Engine Project Manager.png
  • 新規プロジェクトを作成
    • レンダラーのオプションがいくつかありますね。
    • Forward+はデスクトップ向けみたいです。
      Godot Engine Project Option 1.png
    • モバイルオプションがなければ、昨今のゲームエンジンとしては厳しいかなと
      Godot Engine Project Option 2.png
    • 互換性のためのオプション。
      (現在開発中)という文言から頑張っている様子が伝わりますね〜
      Godot Engine Project Option 3.png
  • 今回はForward+オプションにして、作成!
    Godot Engine Scene.png
    • 画面インタフェースを見た感じ、Unityと似ているようです。

インストールからプロジェクトの作成までできました。

シーンの作成

メインとなるシーンから作成する必要があります。

  • シーンが空の状態なので、早速作成しましょうか。
  • ノードっていうのはUnityのGameObjectだと思えばいいでしょう。
    Godot Engine Node 2D.png
    • シーンウィンドウの+ボタン押下で出てくるリストから作成しても良いですし、
    • ルートノードを生成のリストから作成しても良いでしょう。
    • 今回は2DシーンにNode2Dを作成します。
  • 適当に名付けて保存します。
    Godot Engine Node 2D Save.png

これでメインとなるシーンが作成できました。

スクリプトの作成

  • シーンウィンドウの右側にあるボタンを押すと、ノードにスクリプトをアタッチできます。
    Godot Engine Create C# Script.png
    • 言語は:C#
    • 継承元は:Node2D
    • テンプレートはNode:Defaultに設定
      • UnityのMonoBehaviourを継承するイメージに近いでしょう。
    • パスの名前は main にして、作成!
  • Godot EngineのScriptタブから表示されます。
    Godot Engine Attached C# Script.png
    • 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 Godot.GD;

public class Test
{
    static Test()
    {
        Print("Hello"); // Instead of GD.Print("Hello");
    }
}
  • mainクラスにコードの追加
    Godot Engine Play.png
    • スクリプトを書いたら、保存します。
  • 右上の[▶︎]ボタンで実行します。
    • おお!動いている〜
      Godot Engine Play Result.png
    • Hello World (DEBUG)のアプリケーションが立ち上がり、
      Hello World!のログが出力されました!

これが初Godot Engineのプロジェクトでしたね。

最後に

Godot Engineをインストールから触ってみたところ、Unity Engineより軽い感じでした。
(Unity Engineは機能が多すぎて重たいですよね…)
Unity Engineとインタフェースも似ていたので、戸惑うこともありませんでした。
またVisual Studio Codeと連携しなくてもスクリプトエディターで書けたのが便利。
次回は実際にゲームを作りながら深掘りしたいと思います!

次は @nisei275 さんの記事です!
お楽しみに!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?