Grundsätzlich ist Duality sowohl für Anfänger als auch erfahrenere Entwickler geeignet, ich sehe da keine Bevorzugung einer bestimmten Gruppe. natürlich bietet es den Vorteil, dass viele Dinge visuell editierbar sind und der Großteil der nötigen Infrastruktur einer Game Engine bereits mitgeliefert wird und man sich um Vieles gar nicht erst kümmern muss. Wer eine Engine entwickeln will, sollte sich vielleicht besser eine andere Grundlage suchen - Duality ist für diejenigen da, die Spiele entwickeln wollen
Es sei aber dazugesagt, dass du auch bei Duality noch genug zu programmieren hast. Duality ist kein GameMaker oder Tool um sich schnell ein Spiel zusammenzuklicken. Der Editor arbeitet mit den Dingen, die der Entwickler ihm in Form seines Game Plugins beibringt!
Edit: Schade, dass es Duality nicht für C++ gibt
Ich denke, es wäre für mich als einzelner Entwickler gar nicht möglich gewesen, ein Projekt in der Größe von Duality innerhalb vergleichbarer Zeit auf Basis von C++ umzusetzen. Vor allem liegt bei C++ die durchschnittliche Zeitdauer zur Umsetzung einer üblichen Task deutlich höher als in C#. Es ist schwerer zu handhaben / instandzuhalten, kompiliert bei großen Projekten um einiges langsamer, bietet deutlich weniger Sprachfeatures und verfügt im Vergleich zu DotNet über eine kaum nennenswerte Standardbibliothek. Wenn man diese Punkte zusammennimmt halte ich es für unwahrscheinlich, dass ich in zwei Jahren auch nur annähernd so weit gekommen wäre
Außerdem, und das ist auch nicht ganz unwesentlich, basieren viele wesentliche Features von Duality und dem Duality Editor auf Reflection und den Möglichkeiten die sich daraus ergeben. Ohne Reflection hätte ein Großteil der Subsysteme insbesondere des Editors völlig anders konzipiert werden müssen, was in den allermeisten Fällen auf eine manuelle Emulation von Reflection-artigen Features hinausgelaufen wäre.
Dinge wie Serialisierung / Cloning, Darstellung und Zugriff im Object Inspector oder Prefab-Kompatibilität laufen bei Nutzerkomponenten erstmal vollautomatisch ab, solange nicht explizit anders gehandhabt. Das geht aber nur weil Duality via Reflection in den Nutzerkomponenten herumstöbern kann