1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GDScriptとC#の比較:Godotでどちらを選ぶべきか(2026年版)

1
Posted at

Godot Engineを使い始めるとき、多くの開発者が最初に迷うのが「GDScriptとC#、どちらを使うべきか」という問題です。2026年現在、Godot 4.xの成熟に伴い両言語の状況は大きく変わりました。この記事では、実際のベンチマークデータやエコシステムの現状を基に、どちらを選ぶべきかを整理します。

コミュニティの選択:数字が語る現実

2025年のGodotコミュニティ調査(回答者数約9,600人)によると、**GDScript利用率は84%**です。C#は約14%、残りがGDExtensionやVisual Scriptの利用者です。

この数字は単なる人気投票ではなく、エコシステム全体に影響します。チュートリアル、プラグイン、フォーラムの回答はほとんどGDScript前提で書かれています。C#を選ぶと、問題に詰まったとき参考にできるリソースが大幅に少なくなります。

パフォーマンス:「C#のほうが速い」は本当か

「C#はコンパイル言語だからGDScriptより速い」という認識は、2024年以前なら概ね正しかったです。しかし、Godot 4.xで導入された**型付き命令(Typed Instructions)**がこの構図を変えました。

GDScriptの型付き命令による高速化

Godot公式の報告では、静的型付けを使うことで以下の高速化が実現されています:

処理内容 高速化率
属性アクセス 5〜7%
演算操作 25〜50%
組み込み型のメソッド呼び出し(検証済み) 約70%
ネイティブクラスのメソッド呼び出し(検証済み) 120〜150%
イテレーション 10〜50%

これらは100,000回ループのデバッグビルドでの計測であり、リリースビルドではさらに改善が見込めます。

実測ベンチマーク:Vector2演算

beep.blogが公開したベンチマーク(M2 Max、10億回イテレーション)では、Vector2の距離計算で以下の結果が出ています:

# 型なし vs 型あり(Vector2.distance_to)
デバッグビルド:55.0% 高速化
リリースビルド:58.8% 高速化

整数の加算でも34.2%、乗算で35.9%の高速化(リリースビルド)です。静的型を付けるだけでこれだけ変わります。

実際のゲームで問題になるか

結論から言うと、ほとんどのゲームではGDScriptで十分です。ゲームのボトルネックはスクリプト言語ではなく、描画処理や物理演算にあることが多く、これらはエンジン内部のC++コードが処理します。

本当にスクリプト層の速度が必要な場合は、C#よりもGDExtension(C/C++/Rust)を使うほうが効果的です。

C#の制約:見落としがちな問題

C#にはGDScriptにはない制約がいくつかあります。

Webエクスポート不可

2026年4月現在、Godot 4.xの.NET版はWebへのエクスポートに対応していません。ブラウザゲームやitch.ioでのWeb公開を考えているなら、C#は選択肢から外れます。

GDExtensionとの非互換

C#からGDExtensionを直接呼び出すことはできません。GDExtensionベースのプラグインを使う場合、GDScript経由のラッパーが必要になるケースがあり、設計が複雑になります。

エディタ環境の追加要件

C#を使う場合、.NET SDKのインストールと外部エディタ(Visual Studio、Rider等)の設定が必要です。GDScriptはGodotエディタだけで完結します。

GDScriptを選ぶべきケース

  • Godotを初めて使う場合:学習コストが低く、エンジンとの統合が深い
  • Web公開を予定している場合:C#ではWebエクスポートできない
  • 小〜中規模のプロジェクト:スクリプト速度がボトルネックにならない
  • プラグインやアドオンを活用したい場合:エコシステムの大半がGDScript前提

商業的に成功したGodotタイトル(Brotato、Dome Keeper、Cassette Beasts)もGDScriptで開発されています。

C#を選ぶべきケース

  • 大規模なC#コードベースを既に持っている場合
  • チームにC#経験者が多く、GDScriptの学習コストを避けたい場合
  • Unityからの移行で、既存のC#ロジックを再利用したい場合
  • 強い型システムやIDEのリファクタリング支援が必要な場合

ただし上記に当てはまる場合でも、Webエクスポートの制約は確認してください。

静的型付けGDScriptの書き方

GDScriptで速度を出すには、変数に型を明示します:

# 型なし(遅い)
var speed = 10.0
var position = Vector2(0, 0)
var enemies = []

# 型あり(速い)
var speed: float = 10.0
var position: Vector2 = Vector2(0, 0)
var enemies: Array[Node2D] = []

関数の引数と戻り値にも型を付けます:

func calculate_damage(base: float, multiplier: float) -> float:
    return base * multiplier

func get_nearest_enemy(from: Vector2, enemies: Array[Node2D]) -> Node2D:
    var nearest: Node2D = null
    var min_dist: float = INF
    for enemy: Node2D in enemies:
        var dist: float = from.distance_to(enemy.global_position)
        if dist < min_dist:
            min_dist = dist
            nearest = enemy
    return nearest

型を付けるのが面倒に感じる場合は、ZivaのようなAIコード生成ツールを使うと、最初から型付きのGDScriptが出力されます(筆者はZivaの開発者です)。

まとめ

項目 GDScript C#
利用率 84% 約14%
学習コスト 低い 中〜高
Web対応 あり なし
GDExtension連携 直接可能 不可
型付き高速化 25〜150%
IDE不要 Godot内蔵 外部エディタ推奨
エコシステム 充実 限定的

特別な理由がない限り、2026年のGodot開発ではGDScriptが安全な選択です。型を付けて書けば、パフォーマンスも十分に出ます。C#は「既にC#の資産がある」場合の選択肢であり、新規プロジェクトであえて選ぶ理由は少なくなっています。

参考資料

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?