# 框架 **Repository Path**: tuita/Framework ## Basic Information - **Project Name**: 框架 - **Description**: Goap框架 SkillSystem框架 - **Primary Language**: C# - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Framework (Game AI & Skill System) ## 项目简介 这是一个功能强大的 C# 游戏开发框架,集成了目标导向动作规划 (GOAP)、实体组件系统 (ECS) 以及完善的技能系统。该框架旨在提供灵活、可扩展且高性能的 AI 和战斗解决方案,适用于各类游戏项目。 ## 核心特性 - **目标导向动作规划 (GOAP)**:通过定义目标 (Goals) 和动作 (Actions),让 AI 自主规划和执行行为序列。支持 A*、异步规划器以及机器学习增强规划器。 - **实体组件系统 (ECS)**:GoapFrameworkECS 模块提供了高性能的数据导向设计,便于管理大量实体及其组件。 - **模块化技能系统**:SkillSystem 提供了完整的技能生命周期管理,支持主动技、被动技、触发技及技能链。包含属性系统、增益系统 (Buff)、效果系统 (如 DOT, 护盾) 和碰撞检测。 - **高性能优化**:内置对象池、缓存系统、智能规划缓存和分层更新策略,有效降低内存分配和 CPU 开销。 - **丰富的示例**:提供了战斗 (Combat) 和生存 (Hunger) 场景的完整示例代码,帮助快速上手。 ## 项目结构 该项目由三个主要模块和一个示例项目组成: - **GoapFramework**: 核心 GOAP 框架。 - **GoapFrameworkECS**: 基于 ECS 架构的 GOAP 实现。 - **SkillSystem**: 独立的技能系统,可与 GOAP 框架配合使用。 - **Examples**: 演示如何集成使用上述模块的示例程序。 ## 快速开始 ### 环境要求 - .NET 6.0 SDK 或更高版本 ### 构建与运行 1. 克隆仓库。 2. 使用 Visual Studio 或 .NET CLI 打开 `src/Framework.sln` 解决方案。 3. 构建 `Examples` 项目并运行即可看到演示效果。 ## 模块详解 ### 1. GoapFramework (GOAP AI 框架) 提供经典的 GOAP 实现。 - **核心组件**: - `AbstractAgent`:AI 代理基类,负责管理目标和执行规划。 - `AbstractAction`:动作基类,定义前置条件 (Preconditions) 和效果 (Effects)。 - `AbstractGoal`:目标基类,计算效用 (Utility) 并判断是否达成。 - **规划器**: - `AStarPlanner`:基于 A* 算法的标准规划器。 - `AsyncAStarPlanner`:异步规划器,避免阻塞主线程。 - `HighPerformanceAStarPlanner`:针对大量 Agent 优化的高性能规划器。 - `MachineLearningPlanner`:集成机器学习的预测规划器。 - **系统与工具**: - `GoapSystem`:全局 GOAP 系统管理器。 - `PerformanceMonitor`:性能监控与指标统计。 - `EnhancedGoapObjectPools`:高性能对象池管理。 ### 2. GoapFrameworkECS (ECS 架构) 结合 ECS 模式的高性能实现。 - **组件 (Components)**: - `CombatComponent`、`MovementComponent`、`AIComponent` 等游戏逻辑组件。 - `GoalComponent`、`ActionComponent` 将 GOAP 元素转化为 ECS 组件。 - `WorldStateComponent`:全局世界状态组件。 - **系统 (Systems)**: - `PlannerSystem`:负责并行规划 (`IPlannerSystem`)。 - `CombatSystem`、`MovementSystem` 处理具体逻辑。 - `AISystem`:集成 GOAP 的 AI 决策系统。 - **管理 (Managers)**: - `EntityManager`:实体生命周期与对象池管理。 - `ComponentManager`:组件数据的存储与查询。 - `GoapConfig`:全局配置管理。 ### 3. SkillSystem (技能系统) 独立且完善的技能系统,支持复杂的战斗逻辑。 - **技能类型**: - `ActiveSkill`:需要施法时间的主动技能。 - `PassiveSkill`:满足条件自动触发的被动技能。 - `TriggerSkill`:特定条件触发的一次性技能。 - `SkillChain`:将多个技能串联成组合技。 - **效果系统 (Effects)**: - `DamageOverTimeEffect` (DOT)、`BuffEffect`、`HealOverTimeEffect`、`ShieldEffect`、`SlowEffect` 等。 - 支持效果依赖 (Dependencies) 检查和生命周期 (Lifecycle) 管理。 - **属性系统 (Attributes)**: - `AttributeManager`:管理基础属性和修饰符 (Modifiers)。 - 支持多种属性公式 (`LinearFormula`, `ExponentialFormula`, `CustomFormula` 等)。 - **碰撞系统**: - `CollisionDetector`:支持矩形、圆形和射线 (Ray) 碰撞检测。 - `HitBox`:灵活的命中盒定义。 - **配置与资源**: - 支持 JSON 格式加载技能配置 (`JsonSkillConfigLoader`)。 - `ResourceManager`:资源缓存与管理。 - **中断系统**: - `InterruptHandler`:处理技能和效果的中断逻辑。 ## 示例代码 在 `Examples` 项目中包含了两个典型的场景演示: 1. **Combat (战斗)**:展示了如何在战斗场景中使用 GOAP 规划攻击 (`BasicAttackAction`)、重击 (`HeavyAttackAction`) 和防御 (`ParryAction`),以及如何使用技能系统。 2. **Hunger (生存)**:演示了带有饥饿度、能量和进食逻辑的生存 AI Agent (`HungerAgent`),展示了工作 (`WorkAction`)、进食 (`EatAction`) 和休息 (`SleepAction`) 的行为规划。 ## 性能优化 框架在设计之初就考虑了性能需求,特别适合需要大量 AI 和技能判定的游戏: - **对象池 (Object Pooling)**:通过 `EnhancedGoapObjectPools` 和 `SkillEffectPool` 复用对象,极大减少 GC (垃圾回收) 压力。 - **智能缓存 (Smart Caching)**:规划结果缓存 (`SmartCacheSystem`) 避免重复计算最近规划过的路径。 - **异步处理**:异步规划器 (`AsyncAStarPlanner`) 将计算密集型任务移至后台线程,避免卡顿。 - **内存优化**:提供 `MemoryOptimizationSystem` 监控内存使用并提供优化建议。 - **高效数据结构**:使用 LRU 缓存 (`LRUCache`) 和位掩码 (Bitmask) 加速查询。 ## 许可证 本项目遵循开源协议。请查看 [LICENSE](LICENSE) 文件获取更多详细信息。