finds.dev← search

// the find

liangxiegame/QFramework

★ 5,311 · C# · MIT · updated May 2026

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.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →