これ読んだ:https://godotengine.org/article/why-isnt-godot-ecs-based-game-engine/
これやった:https://book.mynavi.jp/manatee/books/detail/id=139402
私:なんかこういうエディタとかあんまり使ったことない Unity?挫折した
んで感想
良い:ファイルシステムの使い方がうまい
シーン=オブジェクトのツリー=一ファイルで、何かを再利用しようとしたらその部分をファイルにする=シーン化する
子を持たないようなオブジェクト=リソースは、その親をコピペするとデフォで共有(シャローコピー)するようになってて、より明示的に扱いたい場合はファイル化することが可能
ファイル化される前のリソース(=サブリソース)の定義場所は「res://main.tscn::BoxShape3D_70la1」のように表現され、main.tscnシーンファイルの中でBoxShape3D_70la1という項目に設定が書いてあるって意味
ファイル化された後は「res://hoge.tres」のように表現され、hoge.tres内に設定が書いてあるよって意味
ファイルの中見るとデフォで平文で書いてあって読みやすい
実にシンプル...分かりやすい...
多分良い:継承ツリー・合成ツリーの双子ツリー制
オブジェクトのツリーと継承ツリーで複雑性が因数分解されてるのが良い感じだと思う
私コンポジション至上主義者だったので、継承使っても合成できるよねってのはなるほどって感じ
うまく実装できていれば継承システムによる概念の圧縮が効くから覚えること最小限で最大限の効果得られて良い(?)
ただこのシステム設計開発すんのマジで難しいと思う 継承ツリーって根本腐ってたら全部腐るから
パフォーマンスに関してはどうなんだろ...ECSじゃないから同一データ並べられなくて性能悪いみたいなこと書いてあるけど、本質的にやってることあんまり変わらないし実装次第では似たようなことできるんじゃないかと思うんだけど、どうなんでしょうか
あと双子って書いたけどファイルシステムも入れて三つ子の印象です
良い:stringの使い方がうまい
オブジェクトのツリー中の特定のオブジェクトを指したい->"hoge/piyo/huga"
ファイルシステム中の特定のファイル取りたい->"hoge/piyo/huga"
どっかのオブジェクト内に作った設定のうち特定の項目取ってくる->"hoge"
良い:エディタのドッキングシステム
レイアウトを大きく変えるような操作は別ボタンになってて、テキスト選択しようとしたらバー持っててフロートしちゃったり、ウィンドウ動かそうとしたらドッキングしちゃったり、それらの操作をUndoできなくて萎えたりすることがない おい聞いてるかVisualなんとか
良くない:被参照obj->参照元obj集合、の検索できん
なんか設定変えると別のやつも変わるけどどれとどれとどれが変わってんのかわからーーーん
何かをコピペで増やしたあと、一部だけ変えたい場合はガンガンユニーク化してけって感じなんですかね?
良い:OSS
文句あんなら自分で実装しろってこと 良い