この記事は Google 翻訳による英語翻訳の結果であり、これに DrGraph がいくつかの修正を加えたものです。英語のオリジナルページ:
スクリプト言語 — Godot Engine (安定版) ドキュメント (英語)
スクリプト言語¶
このレッスンでは、Godot で使用できるスクリプト言語の概要を説明します。各オプションの長所と短所を学びます。次のセクションでは、GDScript を使用して最初のスクリプトを作成します。
スクリプトはノードに接続され、その動作を拡張します。これは、スクリプトが接続されているノードのすべての機能とプロパティを継承することを意味します。
たとえば、Camera2D ノードが船を追跡するゲームを考えてみましょう。デフォルトでは、Camera2D ノードはその親に従います。プレイヤーがダメージを受けたときにカメラを震わせたいと想像してください。この機能は Godot には組み込まれていないため、スクリプトを Camera2D ノードにアタッチしてシェイクをエンコードできます。
利用可能なスクリプト言語¶
Godot は4 つのゲーム プログラミング言語(GDScript、C#、GDExtension テクノロジを通じて C および C++) を提供します。コミュニティでサポートされている言語は他にもありますが、これらは公用語です。
1 つのプロジェクトで複数の言語を使用できます。たとえば、チームでは、高速に記述できる GDScript でゲーム ロジックを作成し、C# または C++ を使用して複雑なアルゴリズムを実装し、パフォーマンスを最大化できます。または、すべてを GDScript または C# で記述することもできます。これはあなたの選択です。
私たちは、さまざまなゲーム プロジェクトや開発者のニーズを満たすためにこの柔軟性を提供します。
どの言語を使用すればよいですか? ¶
初心者の場合は、GDScript から始めることをお勧めします。この言語は、Godot とゲーム開発者のニーズに合わせて特別に作成されました。軽量で簡単な構文を備えており、Godot との最も緊密な統合を提供します。
C# の場合は、 VSCodeや Visual Studioなどの外部コード エディターが必要です 。C# のサポートは成熟しましたが、GDScript よりも学習リソースが少ないことがわかります。そのため、すでに C# 言語の経験があるユーザーに主に C# をお勧めします。
それぞれの言語の特徴とメリット・デメリットを見てみましょう。
GDScript ¶
GDScriptは、 Godot 用に構築されたオブジェクト指向の命令 型プログラミング言語です。これは、ゲームのコーディング時間を節約するために、ゲーム開発者によって、ゲーム開発者のために作成されました。その特徴は次のとおりです。
-
シンプルな構文により短いファイルが作成されます。
-
コンパイルとロード時間が非常に速い。
-
アタッチされているシーンからのノード、信号などのコード補完を備えたエディターとの緊密な統合。
-
組み込みのベクトルおよび変換タイプにより、ゲームに必要な線形代数を頻繁に使用する場合に効率的になります。
-
静的型付け言語と同じくらい効率的にマルチスレッドをサポートします。
-
ガベージ コレクションはゲーム作成時に邪魔になるため、ありません。ほとんどの場合、エンジンはデフォルトで参照をカウントし、メモリを管理しますが、必要に応じてメモリを制御することもできます。
-
プログレッシブタイプ。デフォルトでは、変数は動的型を持ちますが、型ヒントを使用して強力な型チェックを行うこともできます。
インデントを使用してコードのブロックを構築すると、GDScript は Python のように見えますが、実際には同じように機能しません。これは、Squirrel、Lua、Python などのいくつかの言語からインスピレーションを得ています。
注: Python または Lua を直接使用しないのはなぜでしょうか?
数年前、Godot は Python を使用し、次に Lua を使用しました。2 つの言語の統合には多くの作業が必要であり、重大な制限がありました。たとえば、スレッドのサポートは Python にとって大きな課題です。
専用言語の開発にはそれ以上の労力はかかりません。ゲーム開発者のニーズに応じてカスタマイズできます。現在、パフォーマンスの最適化と、サードパーティ言語では提供が難しい機能の開発に取り組んでいます。
.NET/C# ¶
Microsoft のC#はゲーム開発者に好まれているため、正式にサポートしています。C# は成熟した柔軟な言語であり、C# 用に作成されたライブラリが多数あります。Microsoft の寛大な寄付のおかげで、Microsoft へのサポートを強化することができます。
C# はパフォーマンスと使いやすさの間で適切な妥協点を提供しますが、ガベージ コレクターに注意する必要があります。
注: C# でスクリプトを作成するには、Godot エディタの .NET バージョンを使用する必要があります。Godot Web サイトのダウンロードページからダウンロードできます。
Godot は .NET 6 を使用するため、理論的には、Godot でサードパーティの .NET ライブラリまたはフレームワークを使用できるほか、共通言語インフラストラクチャに準拠するプログラミング言語 (F#、Boo、ClojureCLR など) も使用できます。ただし、公式にサポートされている .NET オプションは C# だけです。
注: GDScript コード自体は、コンパイルされた C# または C++ ほど高速には実行されません。ただし、ほとんどのスクリプト コードは、C++ コードの高速アルゴリズムで記述されたエンジン内の関数を呼び出します。多くの場合、GDScript、C#、または C++ でゲーム ロジックを作成しても、パフォーマンスに大きな影響はありません。
GDExtensionに基づく C++¶
GDExtension を使用すると、Godot を再コンパイルせずに C++ でゲーム コードを作成できます。
内部 C API ブリッジを使用しているため、任意のバージョンの言語を使用したり、コンパイラーのブランドとバージョンを組み合わせて共有ライブラリを生成したりできます。
GDExtension はパフォーマンスの点で最良の選択です。他の部分は GDScript または C# で記述できるため、ゲーム全体でこれを使用する必要はありません。
GDExtension を使用する場合、使用できる型、関数、プロパティは Godot の実際の C++ API と非常に似ています。
概要¶ _
スクリプトは、ノードの機能を拡張するためにノードに添付されたコードを含むファイルです。
Godot は 4 つの公式スクリプト言語をサポートしているため、パフォーマンスと使いやすさの間で柔軟性が得られます。
たとえば、言語を混合して要求の厳しいアルゴリズムを C または C++ で実装し、ゲーム ロジックのほとんどを GDScript または C# で記述することができます。