// the find
liangxiegame/QFramework
Godot/Unity3D System Design Architecture
QFramework is a layered architecture framework for Unity (and now Godot 4) built around MVC/CQRS principles: Controllers send Commands, Models fire Events, a Utility layer wraps third-party libs. The whole core is a single ~1000-line .cs file you can drop into any project. It targets solo devs and small teams building mobile or indie games who want some structure without standing up a full enterprise DI container.
The single-file core is a genuine design win — zero ceremony to adopt, easy to audit, and you can understand the whole thing in an afternoon. The layering rules are strict and explicit (Controllers can't mutate state directly, only via Commands), which prevents the spaghetti MonoBehaviour mess that kills mid-size Unity projects. BindableProperty gives you reactive data binding without pulling in UniRx. The Godot 4 port shows the architecture isn't Unity-specific glue code — the core concepts actually hold up across engines.
The Toolkits layer (AudioKit, ResKit, UIKit, etc.) is a lot of surface area bundled together with no clear versioning contract — upgrading one kit can break another, and the unitypackage distribution format makes dependency management painful compared to UPM. The English documentation is an afterthought; the README is mostly Chinese with a link to an English version that's consistently behind. No async/await story in the core architecture — Commands are synchronous, so anything involving asset loading or network calls pushes you off the pattern into workarounds. The 'ToolkitsPro' tier being paid and on the Asset Store creates an awkward split where community support answers assume features you may not have.