ET Game Development Framework

repository·master·Indexed 27 days ago

https://github.com/egametang/et

A high-performance, distributed game development framework for large-scale MMOs. ET10 focuses on the 'AI-native' era, featuring a Unity bridge and tools for AI agents. Key components include ConditionExpr for compiling conditional expressions into behavior trees via Luban, and ET.ExcelMcp, an Excel Model Context Protocol (MCP) server based on EPPlus 7.5.2 that enables AI tools to perform complex Excel operations, including cell manipulation, pivot tables, and conditional formatting.

Tokens
60.5K
Snippets
109
Records
334
Agent score
94%

What's inside ET

  1. Overview of ET.Item Module

    master
    ET.Item is a complete item and backpack management module for the ET framework. It provides functionality for item management (add, remove, use), backpack capacity and slot management, automatic item stacking, and item movement (similar to World of Warcraft). The system follows a server-authoritative architecture where the server controls all item changes and automatically synchronizes data to the client.
  2. Overview of Luban game configuration solution

    master

    Luban is a powerful, stable, and elegant game configuration solution designed to handle workflows ranging from small to ultra-large game projects. It standardizes the game configuration development workflow to improve efficiency between designers and programmers.

    Key Capabilities:

    • Rich Source Formats: Supports Excel family (csv, xls, xlsx, xlsm), JSON, XML, YAML, and Lua.
    • Diverse Export Formats: Generates binary, JSON, BSON, XML, Lua, and YAML.
    • Advanced Data Modeling: Supports complex nested structures (lists, sub-structures, deep nesting) and OOP type inheritance for modeling complex gameplay data like behavior trees, skills, and dungeons.
    • Multi-Language Support: Built-in code generation for C#, Java, Go, C++, Lua, Python, JavaScript, TypeScript, Rust, PHP, Erlang, and Godot. Other languages can be supported via Protobuf or Flatbuffers.
    • Message Schema Support: Supports Protobuf (schema + binary + json), Flatbuffers (schema + json), and Msgpack (binary).
    • Robust Validation: Includes reference checking (ref), path resource checking, and range checking.
    • Engine & Platform Compatibility: Supports Unity, Unreal, Cocos2x, Godot, and WeChat Mini Games across Windows, Linux, and Mac.
    • Hot-Update Friendly: Compatible with HybridCLR, ILRuntime, Lua (x, t, s), and Puerts.
    • Obfuscation Friendly: Generated code avoids reflection, making it compatible with Obfuz, Obfuscator, Confuser, and .NET Refactor.
  3. Overview of the YIUI Framework

    master

    YIUI is a framework designed for use within the ET ecosystem. For detailed technical documentation, implementation guides, and API references, please refer to the official YIUI documentation hosted on Feishu.

    If you are specifically looking for the version compatible with ET 9.0, you can find the dedicated branch on GitHub.

  4. Overview of ET Framework features

    master

    ET is an open-source, dual-platform (Unity3D client and C# .NET Core distributed server) game framework. Key features include:

    • Component-based Distributed Architecture: Servers are composed of modular components, allowing a single process to act as a full distributed cluster (N-to-1) or easily splitting into multiple specialized server processes (1-to-N).
    • Cross-Platform: The C# server runs on Linux via .NET Core without code changes.
    • Code Sharing: Client and server share logic and network message definitions, reducing development overhead.
    • Hot Reloading/Updating: Supports server-side hot-patching via DLL reloading and client-side hot-updates (via C# hot-update solutions like ILRuntime or Lua).
    • Network Protocols: Supports TCP, KCP, and ENet (reliable UDP) with seamless switching.
    • Advanced Systems: Includes 3D Recast pathfinding, an Actor-based messaging system, an AI framework, and a protocol-level testing framework.
  5. Overview of the YIUI Framework

    master

    YIUI is a UI framework designed for the ET ecosystem. It provides a suite of packages for UI management, state synchronization, resource management, and common UI components like infinite scrolling lists, red dots, and localization.

    Key components include:

    • Core: cn.etetet.yiuiframework (the main framework) and cn.etetet.yiui (framework generation).
    • State Sync: cn.etetet.yiuistatesync for synchronizing UI states.
    • UI Utilities: Packages for infinite scrolling (cn.etetet.yiuiloopscrollrectasync/sync), red dots (cn.etetet.yiuireddot), tips (cn.etetet.yiuitips), and UI effects (cn.etetet.yiuieffect).
    • Integrations: Support for YooAsset (cn.etetet.yiuiyooassets) and Luban configuration (cn.etetet.yiuiluban).
  6. Overview of HybridCLR for Unity Hot Updates

    master

    HybridCLR is a high-performance, low-memory C# hot update solution for Unity. It transforms the standard il2cpp AOT (Ahead-of-Time) runtime into a hybrid AOT+Interpreter runtime. This allows for the dynamic loading of assemblies across all platforms supported by il2cpp, including iOS, Android, Consoles, and WebGL.

    Key capabilities include:

    • Seamless Integration: Supports hot-updating MonoBehaviour, ScriptableObject, and DOTS technology without changing standard Unity development habits.
    • Advanced C# Support: Full support for multithreading (async Task, ThreadStatic, volatile), generics, and reflection.
    • Differential Hybrid Execution (DHE): Optimizes performance by running unchanged functions in AOT mode and modified/new functions in interpreter mode.
    • Hot Reload: Supports 100% unloading of assemblies.
    • Security: Supports modern DLL encryption for code protection.
  7. Overview of ET.Quest module

    master

    ET.Quest is a task system module for the ET framework. It provides complete task management, objective tracking, and progress monitoring. Key features include:

    • Complete Task Lifecycle: Supports accepting, progressing, submitting, and abandoning quests.
    • Objective Management: Supports multi-objective quests with real-time progress tracking.
    • Client-Server Synchronization: Real-time data synchronization between client and server.
    • Event-Driven: Uses the ET event system to notify task state changes.
    • Modular Design: Follows the ET framework's ECS architecture.
    • Extensibility: Supports custom task types and objective handlers.
  8. Overview of Package Access Analyzer

    master

    PackageAccessAnalyzer is a Roslyn analyzer designed to enforce access control rules between Packages in the ET framework. It provides three main types of enforcement:

    1. Member Access Control (ET0120): Ensures that private and internal members of a class can only be accessed within their own Package. Public members can be accessed normally across packages.
    2. Circular Dependency Detection (ET0121): Detects and prevents bidirectional dependencies between Packages to avoid dependency loops.
    3. Unauthorized Access Detection (ET0122): Ensures that any access between Packages is explicitly declared in the dependency configuration.