Star Force Documentation

repository·master·Indexed 21 days ago

https://github.com/ellanjiang/starforce

A demonstration project for Game Framework, a Unity-based framework designed to standardize game development through modularized systems. It serves as a reference implementation for the Game Framework's 19 core modules, including Resource, Scene, Network, UI, and Procedure management.

Tokens
883
Snippets
0
Records
6
Agent score
26%

What's inside Star Force

  1. Overview of Star Force

    master
    Star Force is a game demonstration project built using the Game Framework. Its primary purpose is to serve as a reference implementation, demonstrating how to effectively use the Game Framework in a real-world game development context.
  2. What is Game Framework?

    master
    Game Framework is a Unity-based game framework designed to encapsulate common game development modules. It aims to standardize the development process, increase development speed, and ensure product quality by providing a structured set of built-in modules.
  3. How to implement custom Procedures in Game Framework

    master
    The Procedure module acts as a Finite State Machine (FSM) for the entire game lifecycle. To add a new game state or lifecycle step (such as a login sequence or a menu state), you must derive from the ProcedureBase class and implement your own logic.
  4. How to implement custom UI logic in Game Framework

    master
    The UI module manages the visibility and lifecycle of user interfaces. To use your own UI system (like Unity's built-in uGUI or NGUI), you need to create a class that inherits from UIFormLogic and implement the specific UI logic for your form.
  5. Game Framework Built-in Modules Reference

    master

    Game Framework includes 19 core modules that handle various aspects of game development:

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