Skip to content

About

Unity client of the GameFrameX framework: HybridCLR hot-update, YooAsset, FairyGUI and ProtoBuf networking — connects to the .NET game server out of the box. | GameFrameX 的 Unity 客户端:HybridCLR 热更、YooAsset、FairyGUI、ProtoBuf 网络,开箱即连 .NET 服务器。

Topics

Resources

Stars

215 stars

Watchers

6 watching

Forks

Repository files navigation

GameFrameX Logo

GameFrameX Unity

Version License Documentation

All-in-One Solution for Indie Game Development · Empowering Indie Developers' Dreams

📖 Documentation · 🚀 Quick Start · 💬 QQ Group: 467608841


🌐 Language: 简体中文 | 繁體中文 | English | 日本語 | 한국어


Project Overview

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.

Features

  • 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

Quick Start

1. Configure Scoped Registry

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"
  }
}

2. Add Components

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"
  }
}

Component List

Version numbers are fetched automatically from the GameFrameX UPM Registry. Packages marked with - are third-party components installed via Git URL.

Core Framework

Package Description Version
com.gameframex.unity Core runtime and editor base (event pool, reference pool, task pool, object pool, variable system, etc.) version
com.gameframex.unity.entry Framework entry component version
com.gameframex.unity.event Event system version
com.gameframex.unity.fsm Finite state machine version
com.gameframex.unity.procedure Procedure management version
com.gameframex.unity.mono MonoBehaviour wrapper version
com.gameframex.unity.coroutine Coroutine component version
com.gameframex.unity.timer Timer version
com.gameframex.unity.entity Entity component system version
com.gameframex.unity.globalconfig Global configuration management version
com.gameframex.unity.debugger Debugger version

Asset Management

Package Description Version
com.gameframex.unity.asset Asset loading and management version
com.gameframex.unity.download File download component version
com.gameframex.unity.tuyoogame.yooasset YooAsset asset management (customized) version
com.gameframex.unity.gwiazdorrr.betterstreamingassets StreamingAssets direct access version
com.gameframex.unity.builder Build pipeline tools version

UI Framework

Package Description Version
com.gameframex.unity.ui UI base framework version
com.gameframex.unity.ui.fairygui FairyGUI adapter version
com.gameframex.unity.ui.ugui UGUI adapter version

Networking

Package Description Version
com.gameframex.unity.web HTTP network requests (with async/await) version
com.gameframex.unity.web.protobuff ProtoBuf network communication version
com.gameframex.unity.psygames.unitywebsocket WebSocket networking library version
com.gameframex.unity.webview WebView embedded browser version

Data & Configuration

Package Description Version
com.gameframex.unity.config Configuration management version
com.gameframex.unity.localization Localization / i18n version
com.gameframex.unity.focus-creative-games.luban Luban config data generation version
com.gameframex.unity.google.protobuf Protocol Buffers serialization version
com.gameframex.unity.google.flatbuffers FlatBuffers serialization version
com.gameframex.unity.json.simplejson SimpleJSON library version
com.gameframex.unity.xincger.litjson LitJSON library version

Audio & Animation

Package Description Version
com.gameframex.unity.sound Audio playback and management version
com.gameframex.unity.demigiant.dotween DoTween animation plugin version
com.gameframex.unity.esotericsoftware.spine.spine-unity Spine animation runtime version

Scene & Settings

Package Description Version
com.gameframex.unity.scene Scene management version
com.gameframex.unity.setting Settings management version

Hot Update

Package Description Version
com.gameframex.unity.tencent.xlua XLua (Tencent version) version
com.gameframex.unity.xlua XLua adapter version

Advertising

Package Description Version
com.gameframex.unity.advertisement Advertising base component version
com.gameframex.unity.advertisement.csj CSJ (穿山甲) Advertising version
com.gameframex.unity.advertisement.topon TopOn aggregated advertising version
com.gameframex.unity.advertisement.wechatminigame WeChat Mini Game ads version
com.gameframex.unity.advertisement.douyinminigame Douyin Mini Game ads version
com.gameframex.unity.advertisement.alipayminigame Alipay Mini Game ads version
com.gameframex.unity.advertisement.kuaishouminigame Kuaishou Mini Game ads version

Payment

Package Description Version
com.gameframex.unity.payment Payment base component version
com.gameframex.unity.payment.alipay Alipay payment version
com.gameframex.unity.payment.apple Apple in-app purchase version
com.gameframex.unity.payment.google Google Play in-app purchase version

Login

Package Description Version
com.gameframex.unity.login.apple Apple Sign-In version
com.gameframex.unity.login.facebook Facebook Login version
com.gameframex.unity.login.google Google Sign-In version
com.gameframex.unity.login.qq QQ Login version
com.gameframex.unity.login.wechat WeChat Login version

Analytics

Package Description Version
com.gameframex.unity.gameanalytics Analytics base version
com.gameframex.unity.gameanalytics.gameanalytics GameAnalytics SDK version
com.gameframex.unity.gameanalytics.gravity-engine Gravity Engine version
com.gameframex.unity.gameanalytics.talkingdata TalkingData version
com.gameframex.unity.gameanalytics.talkingdata.sdk TalkingData SDK version
com.gameframex.unity.gameanalytics.grafanaloki Grafana Loki logging version
com.gameframex.unity.gravityinfinite.gravity-engine Gravity Engine adapter version
com.gameframex.unity.sentry Sentry error tracking version
com.gameframex.unity.adjust Adjust attribution analytics version

Object Storage

Package Description Version
com.gameframex.unity.objectstorage Object storage base version
com.gameframex.unity.objectstorage.aliyun Alibaba Cloud OSS version
com.gameframex.unity.objectstorage.qiniu Qiniu Cloud Kodo version
com.gameframex.unity.objectstorage.tencent Tencent Cloud COS version

Mini Games

Package Description Version
com.gameframex.unity.minigame.wechat WeChat Mini Game adapter -
com.gameframex.unity.tuyoogame.yooasset.minigame.alipay YooAsset Alipay Mini Game version
com.gameframex.unity.tuyoogame.yooasset.minigame.taptap YooAsset TapTap Mini Game version
com.gameframex.unity.tuyoogame.yooasset.minigame.tiktok YooAsset Douyin Mini Game version

Platform Tools

Package Description Version
com.gameframex.unity.getchannel Channel information retrieval version
com.gameframex.unity.operationclipboard Clipboard operations version
com.gameframex.unity.readassets StreamingAssets file reading version
com.gameframex.unity.xcode Xcode post-build auto configuration version
com.gameframex.unity.systeminfo Device unique identifier (OAID/IDFA) version
com.gameframex.unity.sharesdk ShareSDK social sharing version
com.gameframex.unity.android Android native tools version

Development Tools

Package Description Version
com.gameframex.unity.yasirkula.debugconsole Runtime debug console version

Third-party Libraries

Package Description Version
com.gameframex.unity.cysharp.unitask UniTask async/await version

Ecosystem Architecture

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
Loading

Core Projects

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

Peripheral Systems

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 & Resources

All mirror sites have identical content.

Community & Support

  • QQ Group: 467608841

License

Apache License 2.0


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.

About

Unity client of the GameFrameX framework: HybridCLR hot-update, YooAsset, FairyGUI and ProtoBuf networking — connects to the .NET game server out of the box. | GameFrameX 的 Unity 客户端:HybridCLR 热更、YooAsset、FairyGUI、ProtoBuf 网络,开箱即连 .NET 服务器。

Topics

Resources

Stars

215 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages