Skip to content

Basic Concepts

This document introduces the core concepts in ETOfflineToolkit that are also applicable to ET.

What is ETOfflineToolkit?

Introduction

ETOfflineToolkit is a toolkit derived from the ET framework focusing on single-player game development. It inherits the excellent design philosophy of the ET Framework and provides developers with a complete set of development tools.

Core Features

  • Single-Player Specialized: The single-player portion extracted from the Unity Dual-End ET framework
  • Architectural Design: Fully preserves the powerful core architectural design and development philosophy of the ET framework
  • Feature-Rich: Retains powerful features from the ET EUI framework such as EUI system, object pool, and resource management
  • Developer-Friendly: An ideal choice for developers who want to use ET to develop single-player games

ECS Architecture Design

What is ECS?

ECS (Entity-Component-System) is a data-driven architectural pattern that breaks down game objects into three core concepts:

  • Entity: The basic object in the game, containing only a unique identifier
  • Component: Pure data attached to entities, defining entity properties and states
  • System: Logical units that process specific component combinations, responsible for game logic execution

ECS Tree Structure Design

ET's design creates a tree-like structure with clear hierarchy, making it very easy to understand the entire game architecture. The top layer Game.Scene, also known as Root, has different module data mounted on it. Root can then mount Scenes, referred to as CurrentScene, and each module itself can mount many data elements. When developing a new feature, you don't need to think too much about how to design classes, where to put data, whether mounting here will cause redundancy, etc.

Data Structure Design Diagram

Introduction

The ET framework uses a clear tree structure design, which makes the game architecture hierarchical, easy to manage and extend.

Overall Structure

Root
├── UIComponent
│   ├── MainUI
│   └── UIXXX
├── CurrentScene
│   ├── UIComponent
│   │   ├── FightUI
│   │   └── UIXXX
│   └── UnitComponent
│       ├── Unit1
│       ├── Unit2 (with MoveComponent)
│       └── Unit3 (with AIComponent)
└── UnitComponent
    ├── Unit1
    ├── Unit2
    └── Unit3

Core Node Description

Root (Root Node)

Root Node

  • Serves as the root node of the entire scene tree
  • Manages global components and systems
  • Can mount multiple top-level components

UIComponent (UI Component)

UI Management

  • Responsible for managing all UI-related content
  • Can exist at both Root and CurrentScene levels
  • UIComponent under Root manages global UI
  • UIComponent under CurrentScene manages scene-related UI

CurrentScene (Current Scene)

Scene Management

  • Represents the currently active game scene
  • Contains scene-specific UI and units
  • Serves as a container for scene-related components

UnitComponent (Unit Component)

Unit Management

  • Manages all game units in the scene
  • Can exist at both Root and CurrentScene levels
  • Supports mounting specific functional components (such as MoveComponent, AIComponent)

Design Advantages

Architecture Benefits

  1. Clear Hierarchy

    • Tree structure is intuitive and easy to understand
    • Component relationships are clear at a glance
    • Easy to understand and maintain
  2. Strong Extensibility

    • Easy to add new components
    • Supports dynamic mounting and unmounting
    • Flexible component combinations
  3. Convenient Management

    • Unified component management method
    • Clear lifecycle control
    • Convenient component finding and accessing
Data Structure Design Diagram

Component Lifecycle

Node Removal

  • If an entity or component is removed (Disposed), all components and child entities under it will also be removed (Disposed)
  • Removed components will trigger the corresponding Dispose callback

Technical Support

Get Help

  • 💬 Join QQ group for discussion (ET Framework Group): 474643097
  • ⭐ Follow the project on GitHub for the latest updates

Released under the MIT License.