QFramework is a system design architecture framework for Unity and Godot that provides a lightweight, layered approach to game development following SOLID principles and supporting domain-driven design, event-driven patterns, and data-driven workflows.
The framework addresses the problem of organizing game logic across multiple systems and layers by enforcing a four-layer architecture: a presentation layer for controllers handling input and state visualization, a system layer for shared logic like timers and shops, a data layer for model definitions and data operations, and a utility layer for infrastructure and third-party integrations. Communication between layers follows strict rules: controllers must use commands to modify system and model state, lower layers notify upper layers through events or bindable properties, and upper layers can query lower layers directly but not vice versa. The framework also introduces commands as a core concept that can access systems and models while sending events and other commands.
The tool suits developers building games in Unity who want architectural guidance without heavyweight dependencies. The entire framework consists of less than one thousand lines of code, making it simple to integrate directly into a project or even store in a notes application. Installation options include copying the core QFramework.cs file directly into a project, downloading example packages, or accessing extended toolkits. The framework supports Unity versions from 2018.4 through version 6, and Godot integration is also available.
The project maintains active development with regular updates to support new engine versions and provides comprehensive documentation through its homepage. The repository includes practical examples demonstrating the architecture in action, helping developers understand how to structure their game systems according to the framework's layered design principles.