Erfahrung hab ich keine - aber Godot ist mir als Engine trotzdem bekannt. Meines Wissens nach sollte diese btw auch C# unterstützen. Ich würde es mir zumindest mal anschauen (C# ist wirklich ne tolle Sprache!).
Ich hab noch nicht mit Godot gearbeitet - glaube aber, dass ich in Unity eine ähnliche Vorgehensweise habe wie Leute es bei Godot gewohnt sind. Denn für mich klingt es, als ob Godot und Unreal sich da ziemlich ähnlich sind (und ich hab mein Vorgehen ja durchaus von Unreal übernommen). Denn Godot und Unreal behandeln Ihre Assets mehr als Bausteine. In Unity sieht man aber häufig ziemlich heftige Abhängigkeiten (was imho eine ziemlich beschissene Architektur ist).
Aufgrund dessen würde ich erwarten, dass der Einstieg in Godot einfacher und sich „richtiger“ anfühlt - als bei Unity. Deswegen weiß ich auch gar nicht, ob ich hier viele Tipps geben kann, weil du mit Godot aus architektonischer Sicht schonmal einen der imho größten Fehler gar nicht erst begehen wirst.
Deswegen vllt mal etwas, wie ich meine Sachen aufbaue. Ich denke du wirst auch oft genug eigene Komponenten schreiben. Zu Anfang hatten die bei mir schon z.T. Spiellogik mitbekommen. Es ist extrem verführerisch das zu tun! Deswegen würde ich generell drauf achten Komponenten so dumm wie möglich zu halten! Ich versuche mittlerweile immer im Hinterkopf zu haben die Dinger so zu schreiben, dass ich sie in ein anderes Projekt möglichst einfach kopieren könnte. Generell würde ich auch immer drauf achten, dass die Komponenten Data-Driven sind.
Natürlich kommst du früher oder später nicht um Logik drum rum. Aber diese würde ich bewusst in einem eigenen Layer halten. In meinem Fall sind das eigentlich immer irgendwelche Graphen (FlowGraph, FiniteStateMachineGraph, BehaviorTreeGraph). Was dir da Godot bietet weiß ich nicht, aber könnte natürlich auch eine (oder mehrere) dedizierte Komponenten sein. Und spätestens hier merkst du dann den Vorteil einer Architektur die DataDriven ist. Deine Logikschicht kann sich einfach an deine „Dummen“ Komponenten ran hängen und Ihren Job machen.
Und solltest du mit FSM (FiniteStateMachines) arbeiten, dann kann dir ein DataDriven-Design gerade bei sowas wie SaveGames auch das Leben extrem erleichtern. Den Zustand einer FSM zu speichern ist (je nach FSM) nämlich gar nicht so einfach.
Hoffe ich konnte ein wenig helfen
- Bin auf jeden Fall mal gespannt, was du zu Godot zu berichten hast!