NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/ProjectStructure.md

9.1 KiB
Raw Blame History

NLD项目架构文档

1. 项目概述

1.1 游戏类型

  • 即时制战棋游戏
  • 多系统交互的复杂游戏架构
  • 支持单人剧情、PVP对战和军团合作玩法

1.2 技术栈

  • 开发引擎Unity
  • 开发语言C#
  • AI框架Behavior Designer (行为树)
  • 网络:支持多人在线对战

1.3 核心玩法

  • 即时战棋对战
  • 军团协作系统
  • 营地建设养成
  • PVP竞技对战
  • 剧情故事体验

2. 系统架构

2.1 核心系统关系

graph TD
    A[Game Core] --> B[Battle System]
    A --> C[Story System]
    A --> D[Camp System]
    A --> E[Legion System]
    A --> F[PVP System]
    
    B --> B1[Unit System]
    B --> B2[Area System]
    B --> B3[Skill System]
    B --> B4[Battle UI]
    
    C --> C1[Timeline Track]
    C --> C2[Story Manager]
    C --> C3[I18N]
    
    D --> D1[Camp Building]
    D --> D2[Camp Units]
    D --> D3[Camp Edit]
    
    E --> E1[Legion Manager]
    E --> E2[Mercenary]
    E --> E3[Legion Data]
    
    F --> F1[PVP Manager]
    F --> F2[Team Prepare]
    F --> F3[Defender System]

3. 核心系统详解

3.1 战斗系统

战斗系统是游戏的核心玩法系统,采用即时制战棋玩法。战斗系统通过事件驱动机制与其他系统交互,支持多种单位类型(角色、载具、建筑等)的即时战斗。

主要特点:

  • 即时制战斗:所有单位同时行动,不受回合限制
  • 六边形网格基于TGS(TerrainGridSystem)的地形系统
  • AI控制使用Behavior Designer实现的行为树AI
  • 状态机使用FSM管理战斗、准备等不同状态

关键类:

  • LevelStateBattle: 战斗状态管理
  • GameUnitManager: 单位管理
  • AreaManager: 区域管理
  • SkillManager: 技能管理

3.1.1 单位系统

graph TD
    A[GameUnitManager] --> B[PrepareUnits]
    A --> C[InfightUnits]
    A --> D[DeadUnits]
    A --> E[CharacterManager]
    A --> F[VehicleManager]
    A --> G[SummonManager]

主要职责:

  • 单位生命周期管理
  • 战斗中的单位状态同步
  • 单位类型的差异化处理
  • AI行为控制

3.1.2 区域系统

graph TD
    A[AreaManager] --> B[MoveArea]
    A --> C[AttackArea]
    A --> D[SkillArea]
    A --> E[BoardView]

主要职责:

  • 六边形网格管理
  • 移动区域计算
  • 攻击范围显示
  • 技能影响区域

3.1.3 技能系统

  • 技能配置管理
  • 技能效果实现
  • 技能目标选择
  • 技能动画表现

3.2 军团系统Legion System

graph TD
    A[Legion System] --> B[Legion Management]
    A --> C[Mercenary System]
    A --> D[Legion Battle]
    B --> B1[Member Management]
    B --> B2[Resource Management]
    B --> B3[Task System]

主要职责:

  • 军团成员管理
  • 军团任务系统
  • 军团战玩法
  • 佣兵系统
  • 资源管理

3.3 营地系统Camp System

营地系统提供了玩家基地建设和资源管理的功能。使用网格化的布局系统,支持建筑放置和升级。

关键特性:

  • 网格布局:自由的建筑布置系统
  • 建筑功能:不同建筑提供不同的功能和加成
  • 资源管理:管理各类资源的产出和消耗
  • 营地防守设置防守布局应对PVP挑战

数据管理:

  • Camp核心管理类负责营地数据和逻辑
  • CampManager管理所有玩家营地
  • CampUnit营地内的功能单位
graph TD
    A[Camp System] --> B[Building Management]
    A --> C[Unit Arrangement]
    A --> D[Resource Production]
    B --> B1[Building Types]
    B --> B2[Building Functions]
    C --> C1[Unit Placement]
    C --> C2[Unit Functions]

主要职责:

  • 建筑建造与升级
  • 单位布置管理
  • 资源产出系统
  • 营地编辑功能

3.4 PVP系统Player VS Player

PVP系统实现了玩家之间的对战功能。包括排位赛、匹配系统等竞技玩法。

关键模块:

  • 匹配系统:基于分数的玩家匹配
  • 战斗准备:队伍编组、战术布置
  • 排位系统:段位划分和奖励发放
  • 录像回放:战斗记录和回放功能

实现细节:

  • PrepareTeamManager队伍准备管理
  • PVPManager核心玩法控制
  • PVPDefenderData防守数据管理
graph TD
    A[PVP System] --> B[Match Making]
    A --> C[Battle Preparation]
    A --> D[Defense Setup]
    B --> B1[Rank System]
    B --> B2[Reward System]
    C --> C1[Team Formation]
    C --> C2[Strategy Setting]

主要职责:

  • 匹配系统
  • 排位系统
  • 防守阵容设置
  • 战斗准备
  • 奖励发放

3.5 剧情系统Story System

剧情系统使用Timeline实现剧情演出支持分支剧情和多语言。

关键特性:

  • Timeline控制使用Unity Timeline管理剧情演出
  • 多语言支持完整的I18N系统
  • 分支系统:支持剧情分支选择
  • 过场动画CG和过场动画的播放控制

关键类:

  • StoryManager剧情管理器
  • TimelineTrackWrapperTimeline轨道封装
  • DialogueSystem对话系统

实现机制:

  • 使用ScriptableObject存储剧情数据
  • 事件驱动的剧情触发系统
  • 支持存档和读档功能
graph TD
    A[Story System] --> B[Story Timeline]
    A --> C[Dialogue System]
    A --> D[Cutscene System]
    B --> B1[Event Trigger]
    B --> B2[Story Progress]
    C --> C1[Character Dialogue]
    C --> C2[Choice System]

主要职责:

  • 剧情进度管理
  • 对话系统
  • 剧情动画
  • 过场演出
  • 多语言支持

3.6 UI系统

graph TD
    A[UI System] --> B[Battle Related]
    A --> C[Character Related]
    A --> D[System Related]
    
    B --> B1[LevelFight]
    B1 --> B11[BattleUI]
    B1 --> B12[FightReady]
    B1 --> B13[FightSceneUI]
    
    C --> C1[Team]
    C --> C2[Character]
    C --> C3[Vehicle]
    
    D --> D1[Common]
    D --> D2[Settings]
    D --> D3[Shop]

主要职责:

  • 战斗界面管理
  • 系统界面控制
  • 角色相关界面
  • 商店系统界面
  • 通用UI组件

4. 系统交互

4.0 事件系统Event System

事件系统是整个游戏的核心通信机制,采用观察者模式实现。

关键特性:

  • 事件注册与分发
  • 支持异步事件
  • 事件优先级管理
  • 自动事件清理

实现方式:

// 事件注册
EventManager.Instance.Register(EventName.INFIGHT_UNIT_DEAD, OnUnitDead);

// 事件发送
EventManager.Instance.Send(EventName.INFIGHT_UNIT_DEAD, deadUnit);

// 事件清理
EventManager.Instance.Unregister(EventName.INFIGHT_UNIT_DEAD, OnUnitDead);

4.1 战斗流程

4.1.1 战斗初始化

sequenceDiagram
    participant L as LevelManager
    participant U as UnitManager
    participant A as AreaManager
    participant E as EventSystem
    
    L->>U: 初始化单位
    U->>A: 注册单位位置
    A->>A: 计算区域
    E->>L: 通知战斗开始

4.1.2 即时战斗循环

sequenceDiagram
    participant GM as GameManager
    participant UM as UnitManager
    participant AI as AISystem
    participant ES as EventSystem
    
    loop Every Frame
        GM->>UM: LogicUpdate
        UM->>UM: UpdateUnits
        UM->>AI: UpdateAI
        AI->>ES: 发送行为事件
        ES->>UM: 更新单位状态
    end
sequenceDiagram
    participant P as Player
    participant BU as BattleUI
    participant BS as Battle System
    participant ES as Event System
    
    P->>BU: 选择单位
    BU->>ES: 发送单位选择事件
    ES->>BS: 通知战斗系统
    BS->>ES: 更新状态
    ES->>BU: 更新UI显示

4.2 系统间数据流

4.2.1 存档系统

  • 战斗数据序列化
  • 玩家进度保存
  • 营地状态保存
  • 军团数据同步

4.2.2 网络同步

  • 战斗状态同步
  • PVP数据传输
  • 军团数据更新
  • 排行榜刷新
graph TD
    A[Player Progress] --> B[Camp Development]
    A --> C[Legion Contribution]
    A --> D[Battle Records]
    A --> E[Story Progress]
    B --> F[Resource System]
    C --> F
    F --> G[Game Economy]

5. 代码规范

5.1 目录结构

  • Assets/Code/Scripts/Gameplay游戏核心逻辑代码
  • 按功能模块分类AI、Area、Battle、UI等
  • 每个模块下按照职责划分子文件夹

5.2 命名规范

  • 类名PascalCase
  • 方法名PascalCase
  • 私有变量_camelCase
  • 公有变量camelCase
  • 常量UPPER_CASE

5.3 代码组织

  • 使用命名空间管理代码
  • 单一职责原则
  • 接口优先
  • 组件化设计

6. 总结

6.1 系统特点

  • 采用事件驱动的架构设计
  • 高度模块化的系统划分
  • 清晰的数据流转路径
  • 完善的扩展性支持

6.2 优势分析

  • 即时战斗系统的实现既保证了策略性,又提供了实时性
  • 事件系统使各个模块解耦,便于维护和扩展
  • 完整的军团和PVP系统提供了丰富的多人玩法
  • 营地系统为玩家提供了个性化发展路线

6.3 注意事项

  • 战斗系统的性能优化需要特别关注
  • 网络同步的延迟处理要做好容错
  • 存档系统需要考虑向后兼容
  • AI行为树的配置需要经常调优

6.4 后续开发建议

  • 进一步优化战斗系统的即时性表现
  • 强化AI系统的决策能力
  • 扩展军团玩法的深度
  • 增加更多的社交互动功能