こんばんわ、ゲームプログラマー3年生のrokujyouhitomaです。リアルタイムレンダリング周りは未修と言っていいほどなのが大きな課題です。
Godot調査二日目で気になる点があったので、ざっくりした考察だけど、一度脳内から忘れたいので書き出しちゃいます。
UnityとGodot
Godotプロジェクトが、同じゲームエンジンであるUnityと機能を比較しつつ、Godotの機能を紹介しているドキュメントがあります。
目を通して思うところを書き残すなど。
シーンシステム
Unityでもシーンの合成を行うけどなぁと思いました。まさにドキュメントで述べられてるGodotの使い方の通りに。
具体的には、SceneManager.LoadScene APIを使って。
SceneManager.LoadScene
- Godotだと、1Nodeに1Scriptしかアタッチできない
- Unityだと、1Nodeに複数Scriptをアタッチできる
これは決め事なので、Godotでは、ドキュメントでもある通り、1Nodeに子ノードぶら下げてスクリプトアタッチすればいいかなー。と思った。
Unity C#
Godot GDScriptはまだ触れていないが、Unity C#について先に語るとすると、
- Unity C#はMonoDevelopのサポート受けれる。それ以上にVisualStudioのサポートを受けれて、強力。
- Unity C#は.NET使えて、既存のライブラリを使えて、強力。
Godot GDScript
一方、Godot GDCScriptを語ると、
- Godot GDCScriptは、Pythonライクと言っているが、Pythonとは異なる言語
- Godot GDCScriptは、エディタサポート絶望的
- Godot GDCScriptは、既存ライブラリ?そんなものはない。辛い。
という...。
GodotではC++で書くこともできるそうなので、C++がGodotスクリプトよりましか?(どこで拡張するんだろか、ランタイムの実装言語はC++なのはわかってるけど、差し込みやすいようになっているのか??
自分で組み込む?
個人的な感想だが、C++は慣れてなく、難しい言語なのでできるだけ使いたくないところ。できるだけ軽量な言語、例えばLua, Ruby(mruby), Python(micropython?CPython??、あれCythonでも行けるかしら?!)あたりを自前で組み込むか。
おっと、公式ドキュメントに過去にLua、Pythonが組み込まれててたけど、自前でハンドリングしたいから、独自言語にたどり着いたって記載があった。うーむ。
Unityの.meta相当
Unityには.metaというアセットファイルとついになるメタ情報のテキストファイルがある。
あれ、結構便利で、テキストなので、ある程度git diffとかで読める。慣れてくると読めるし、ツールで活用するケースがある。
要確認事項では有るが、Godotは全部シリアライズされてバイナリデータになってるようなので、困る点がありそう。
Godotは一応ドキュメント上は、
but Godot approach is simpler, with a single configuration file, minimalist text format, and no metadata.
と述べている以上は、テキストファイルで必要十分であると、信じている。