Game Framework includes 19 core modules that handle various aspects of game development:
- Config: Stores global read-only configurations (e.g., initial player speed).
- Data Node: Manages arbitrary data types in a tree structure during runtime.
- Data Table: Handles game data configured in external tables (e.g., Excel) with customizable formats.
- Debugger: Provides a window in the Unity Editor or development builds to view logs and debug info; allows registering custom features.
- Download: Manages file downloads with support for breakpoint resumption and configurable simultaneous downloaders.
- Entity: Manages dynamically created objects (entities) and groups, including visibility and attachment logic (e.g., attaching a weapon to a character).
- Event: A mechanism for firing and observing events to decouple game logic.
- File System: A virtual file system that manages files centrally and optimizes resource loading performance.
- FSM: Provides Finite State Machine functionality for state-based logic.
- Localization: Supports multi-language support for both text and assets (e.g., different visual effects for different regions).
- Network: Provides TCP socket connections (IPv4/IPv6). Supports multiple simultaneous connections. Users can implement custom protocols by inheriting from the
Packet class. - Object Pool: Caches objects to avoid frequent creation/destruction and improve performance.
- Procedure: An FSM that manages the entire game lifecycle (e.g., resource checking, login, gameplay). Users implement new procedures by subclassing
ProcedureBase. - Resource: A complete asynchronous resource loading system for everything from data tables to complex scenes and UIs. Includes customizable memory management strategies.
- Scene: Manages scene loading and unloading, supporting simultaneous loading of multiple scenes.
- Setting: Stores player data in key-value pairs using
UnityEngine.PlayerPrefs or direct disk storage. - Sound: Manages sounds and sound groups, supporting 2D/3D audio and binding audio to entities.
- UI: Manages UI forms and groups (show/hide, activation, depth). Users can use uGUI or NGUI by subclassing
UIFormLogic. - Web Request: Provides short-connection capabilities using GET or POST methods.