Godot とは?

2024年11月10日

はじめに

Godot Engine (ゴドー・エンジン)は、軽量で手軽なオープンソースのゲーム開発プラットフォームです。

Godotのサンプル画像

特徴と利点

オープンソース・無料・手軽

Godotは、基本的に課金やアカウントの作成が不要で、ダウンロードすればすぐにゲーム制作を始めることができます。オールインワンで、スクリプトの記述のために外部エディタをインストールする必要はありません。

マルチプラットフォーム対応

Godotは、デスクトップ、モバイルなどのプラットフォームに対応しています。Winodws、macOS、Linux系やAndroid、iPhoneとHTML5も対応しています。W4 Consoles の有料サポートにより、Nintendo Switch、Xbox Series X|S などにも対応可能です。

軽量、高速

Godotは、軽量であるため、高いマシンスペックを必要としません。また、製品のビルドは追加パッケージになっているため、ビルドしない役割りの人は、その機能をインストールせず、開発できます。

バランスのよい、2Dと3Dの描画性能

Godotは、バージョン4以降、描画やシステムを改め、OpenGLからVulkanに移行し描画が強力になりました。3Dの物理エンジンも搭載されており、さまざまなゲーム開発が可能です。

わかりやすいスクリプト言語と、他の選択が可能

Godotのコードは、GDScriptと呼ばれるPythonに似た言語が一般的に使われ、記述が知識を持たない人でも理解しやすいです。また、C#やVisualScriptのサポートも有しています。

注意や欠点

バージョン違いの情報、日本語の情報の少なさ

バージョン4より前の情報がまだまだ多く、混在しています。日本語の情報も少ないです。

スクリプトコードに関してほかの資産が使えない

UnityであればC#、Unrial EngineであればC++と、利用できる多くの資産がありますが、そうしたものがありません。

デバック中に、シーン画面は同期しない

デバック中に、空間にノードを配置する画面は、ゲームの進行に同期して更新されません。最初の状態のままです。

GDScript

GDScriptの例です。

extends MeshInstance3D

var timer = 0.0
var start_position : Vector3
@export var vector : Vector3 = Vector3(1,0,-0.5).normalized() # 移動方向を指定
@export var speed : float = 1.0 # 移動速度を指定
@export var out_max_x : float = 10.0 # x軸の上限
@export var out_min_x : float = -10.0 # x軸の下限
@export var out_max_z : float = 10.0 # z軸の上限
@export var out_min_z : float = -10.0 # z軸の下限

func _ready() -> void:
    # ゲーム開始時に位置を記録
    start_position = position

func _process(delta: float) -> void:
    # フレームごとに位置を更新
    var v = delta
    position += vector * v * speed

    # 位置が上限を超えた場合の処理
    if out_max_x < position.x :
        position.x = out_min_x

    if out_min_z > position.z :
        position.z = out_max_z

まとめ

Godot Engineは、無料でオープンソースのゲーム開発プラットフォームとして、初心者からプロの開発者まで幅広いユーザーに対応しています。多様なプラットフォームでのビルド、直感的なスクリプト言語、強力な2Dおよび3Dの描画機能が特徴です。一方で、日本語情報の少なさやUnityやUnreal Engineに比べて資産が少ない点など、注意すべき点も存在します。しかし、コミュニティの成長とともにこれらの課題の多くは徐々に解決されつつあります。