All-in-One Solution for Indie Game Development · Empowering Indie Developers' Dreams
📖 Documentation · 🚀 Quick Start · 💬 QQ Group: 467608841
🌐 Language: 简体中文 | 繁體中文 | English | 日本語 | 한국어
GameFrameX Unity is the Unity client implementation of the GameFrameX comprehensive solution, providing 90+ modular components covering the entire game development pipeline: from core framework, asset management, UI systems, and network communication to advertising, payment, login, data analytics, and more. Compatible with Unity 2019.4.40 and above.
- Modular Design — Each component is an independent package, import on demand
- Hot Update Support — Integrated HybridCLR for C# hot updates
- Multi-UI Solutions — Supports both FairyGUI and UGUI
- Async-First — UniTask-based async/await programming model
- Cross-Platform — iOS, Android, WebGL, WeChat/Douyin/Alipay mini games, and more
- Rich Operations Components — Advertising (CSJ, TopOn), Payment (Alipay, Apple, Google), Login (QQ, WeChat, Apple, Facebook, Google), Data Analytics, Object Storage, and more
Add the GameFrameX scoped registry to your project's Packages/manifest.json:
{
"scopedRegistries": [
{
"name": "GameFrameX",
"url": "https://gameframex.upm.alianblank.uk",
"scopes": [
"com.gameframex"
]
}
],
"dependencies": {
"com.gameframex.unity": "1.11.0"
}
}Add the packages you need under dependencies. Check the Releases page for available versions.
Example: Adding common components
{
"dependencies": {
"com.gameframex.unity": "1.11.0",
"com.gameframex.unity.asset": "2.0.0",
"com.gameframex.unity.ui": "2.1.1",
"com.gameframex.unity.ui.fairygui": "3.0.0",
"com.gameframex.unity.procedure": "1.0.4",
"com.gameframex.unity.event": "1.0.2",
"com.gameframex.unity.fsm": "1.0.3",
"com.gameframex.unity.network": "2.5.1",
"com.gameframex.unity.sound": "1.0.6",
"com.gameframex.unity.localization": "2.0.0"
}
}Version numbers are fetched automatically from the GameFrameX UPM Registry. Packages marked with - are third-party components installed via Git URL.
| Package | Description | Version |
|---|---|---|
| com.gameframex.unity.ui | UI base framework | |
| com.gameframex.unity.ui.fairygui | FairyGUI adapter | |
| com.gameframex.unity.ui.ugui | UGUI adapter |
| Package | Description | Version |
|---|---|---|
| com.gameframex.unity.scene | Scene management | |
| com.gameframex.unity.setting | Settings management |
| Package | Description | Version |
|---|---|---|
| com.gameframex.unity.tencent.xlua | XLua (Tencent version) | |
| com.gameframex.unity.xlua | XLua adapter |
| Package | Description | Version |
|---|---|---|
| com.gameframex.unity.yasirkula.debugconsole | Runtime debug console |
| Package | Description | Version |
|---|---|---|
| com.gameframex.unity.cysharp.unitask | UniTask async/await |
GameFrameX consists of the repositories below: the build-time toolchain generates protocol and config code, while game clients, game servers and the operations backend cooperate at runtime.
%%{init: {"flowchart": {"curve": "linear", "nodeSpacing": 30, "rankSpacing": 50}}}%%
flowchart TB
subgraph Toolchain["Build-time toolchain"]
direction TB
Luban["luban<br/>Luban fork"] -- "Luban.dll · daily sync" --> Config["Config<br/>Excel tables"]
Tools["Tools<br/>ProtoExport"] -- "ProtoExport.dll · weekly sync" --> Protobuf["Protobuf<br/>proto3 definitions"]
FairyGUI["FairyGUIProject<br/>UI source"]
end
subgraph Runtime["Runtime"]
direction TB
subgraph Clients["Game clients"]
direction TB
Unity["Unity<br/>Unity 2019.4.40+ · C#"]
Godot["Godot<br/>Godot 4.7 · C#"]
Cocos["CocosCreator<br/>Cocos 3.8 · TS"]
Laya["LayaBox<br/>LayaAir · TS"]
end
subgraph Backend["Backend"]
direction TB
Admin["Admin<br/>Admin · Client · Hub API"]
subgraph GameServers["Game servers"]
direction TB
Server["Server<br/>NuGet framework"]
ServerSource["Server.Source<br/>source framework"]
end
end
end
subgraph Infrastructure["Infrastructure"]
direction TB
subgraph Storage["Storage"]
direction TB
Mongo[("MongoDB<br/>game servers")]
Postgres[("PostgreSQL<br/>Admin")]
end
subgraph Libraries["Base libraries · NuGet"]
direction TB
Foundation["Foundation<br/>.NET base libraries"]
SuperSocket["SuperSocket<br/>socket framework"]
end
end
Toolchain -- "generated code · config data · UI packages" --> Runtime
Clients -- "TCP / WebSocket / HTTP" --> Backend
Admin -- "HTTP management API" --> GameServers
Runtime -- "data storage · NuGet packages" --> Infrastructure
| Project | Role | Tech Stack | Integration |
|---|---|---|---|
| Unity | Unity client project: assembles 90+ framework packages from the GameFrameX UPM registry, HybridCLR hot update, login / bag / room samples | Unity 2019.4.40+, HybridCLR, YooAsset, FairyGUI, UniTask | Consumes Protobuf / Config / FairyGUIProject output; TCP 29100 + HTTP 28080 to Server, HTTP 20808 to Admin Client API |
| Server | Actor-model game server: persistent Apps state layer strictly separated from the hot-updatable Hotfix logic layer; single- or multi-process deployment | .NET 10, MongoDB, Docker | Listens on TCP 29100 / WebSocket 29110 / HTTP 28080; HTTP management endpoints (mail, item grants, player management) for Admin |
| Admin | Multi-tenant operations backend: Admin (20802) / Client (20808) / Hub (20806) hosts + Vue console, covering game areas, announcements, mail, orders & payment, remote config, LiveOps | .NET 10, SqlSugar, PostgreSQL, Vue 3.5, PrimeVue | Calls Server through each game area's HttpManageUrl; Client API serves global info, login and payment callbacks to game clients |
| luban | GameFrameX fork of Luban: merged upstream v5.1.0, adds the gameframex table importer and cs-dotnet-json / cs-dotnet-bin code targets |
.NET 10, Scriban | Publishes Luban tar.gz and Docker image; synced daily into Config Tools/ |
| Config | Config table repository: Excel data tables + schema + localization tables, one-click scripts generate client and server code and data | Excel, Luban | gen-client-* → Unity; gen-server-json → Server; gen-server-bin → Server.Source; gen-godot-json / gen-cocos-json / gen-laya-json → Godot / CocosCreator / LayaBox |
| Protobuf | Unified network protocol definitions: proto3, messages and error codes grouped by the numeric module ID in each file name (positive = client↔server, negative = server-internal) | proto3 | Proto2CsExport_Server → Server; Proto2CsExport_Client → Unity; Proto2CsExport_Godot / Proto2TsExport_CocosCreator / Proto2TsExport_LayaBox → other clients; CI publishes a six-language Release on every push |
| Tools | ProtoExport protocol code generator: C# / TypeScript / C++ / Lua / Go, available as CLI, Avalonia GUI and Docker image | .NET 10, Avalonia 12 | ProtoExport.dll synced weekly into Protobuf Tools/; Docker image gameframex/gameframex-tools |
| Project | Role | Tech Stack | Integration |
|---|---|---|---|
| Foundation | Modular .NET libraries: localization, JSON, command-line options, logging, HTTP, encryption, hashing, ORM base entities, idempotency | .NET | NuGet packages referenced by Server, Server.Source, Admin, Tools |
| SuperSocket | GameFrameX fork of SuperSocket: .NET 10 targets, dependency injection, KCP / ReliableSession for weak-network game traffic | .NET 10 | NuGet: Server (ClientEngine), Server.Source (Server / Kcp / Udp / WebSocket) |
| Server.Source | Server variant with the framework as in-repo source: service discovery, cross-process RemoteMessaging (TCP / KCP), multi-process deployment | .NET 10, MongoDB, Docker | Receives Config gen-server-bin output; multi-process via docker-compose.multi.yml |
| Godot | Godot .NET client with reusable runtime modules, editor plugins and hot-update assemblies | Godot 4.7, C# | Config gen-godot-json, Protobuf Proto2CsExport_Godot; TCP 29100 / WebSocket 29110 to Server |
| CocosCreator | Cocos Creator client, migrated from the Unity version | Cocos Creator 3.8, TypeScript | npm run gen:proto / gen:config call Protobuf / Config scripts; WebSocket to Server |
| LayaBox | LayaBox client | LayaAir, TypeScript | Config gen-laya-json, Protobuf Proto2TsExport_LayaBox; WebSocket to Server |
| FairyGUIProject | FairyGUI editor project: design source of all game UI | FairyGUI Editor | Publishes UI packages to Unity Assets/Bundles/UI and code to Assets/Hotfix/UI/FairyGUI/ |
- Documentation: https://gameframex.doc.alianblank.com
- Mirror: https://gameframex-docs.pages.dev
- Mirror: https://gameframex.doc.cloudflare.alianblank.com
- Mirror: https://gameframex.doc.vercel.alianblank.com
All mirror sites have identical content.
- QQ Group: 467608841
Disclaimer: Some components are derived from open-source projects on the internet and are intended for learning and communication purposes only. If any infringement is involved, please submit an Issue or contact us via Email, and we will remove it promptly.
