# FishDice 框架分析总览

FishDice Framework Analysis
分析根目录：C:\Users\13999\Documents\Fishdice\FishDice

# FishDice / LuckyDice 游戏框架分析总览

这份报告分析的是当前仓库中已经落地的 Lucky Dice 玩法内核框架。它不是完整游戏壳，而是一个“纯 C# 可测试核心 + Unity Demo 表现层”的玩法流程框架。

结构与分层 Runtime、Demo、DemoEditor、Tests 的边界与依赖方向。 流程与生命周期从 Roll 请求到奖励、Lucky Dice、目标玩法入口的完整链路。 随机逻辑解释权重随机、分层池漏斗、状态沉淀与可观测 Trace 的决策图。 玩法与模块开发规则、Matcher、Action、候选、TargetMode 如何扩展。 资源管理当前资源策略、配置形态、Unity 资源接入缺口。 UI 管理 Demo UI 的组织方式，以及框架层尚未拥有的 UI 抽象。 设计精妙点纯核心、注入随机源、配置校验、可观测 Trace 等。 缺点与风险当前框架缺失的系统能力和后续落地风险。

## 一句话结论

FishDice 当前最强的设计点，是把 Lucky Dice 的核心决策链路压成无 UnityEngine 依赖的纯 C# 服务，并用配置、注册表、随机源注入和 Trace 让它可测、可回放、可扩展。
当前最明显的边界，是它还不是一个完整游戏框架：资源加载、UI 导航、场景生命周期、目标玩法启动器、远端配置与持久化服务都还停留在 Demo 或未来接入层。

## 宏观结构图

    Unity Demo / Scene
      -> LuckyDiceDemoController
      -> LuckyDiceDemoRunner
      -> LuckyDiceRuntimeFactory
      -> LuckyDiceRollFlowService
         -> DiceRollService
         -> ComboFactBuilder
         -> ComboRuleMatcher
         -> RollActionDispatcher
         -> LuckyDiceFlowService
         -> TargetModeResolver
         -> RollTrace

纯 C#
Runtime asmdef 设置 `noEngineReferences: true`，核心不依赖 UnityEngine。
7 层
Roll、Facts、Rules、Actions、LuckySelection、TargetMode、Trace。
Demo 外挂
UGUI、场景构建和 Unity 生命周期都在 Demo/DemoEditor 层。

## 如何阅读

先读 结构与分层，理解它为什么是“玩法内核”而不是“完整游戏框架”。再读 生命周期，顺着一次 Roll 的数据流看完整闭环。随后按工作目的进入模块开发、资源、UI、亮点或风险页面。

## 关键证据

- FishDice/Assets/FishDice/Runtime/FishDice.Runtime.asmdef:13 声明 `noEngineReferences: true`。
- LuckyDiceRollFlowService.cs:32 是核心流程入口。
- LuckyDiceRuntimeFactory.cs:24-59 统一装配配置、随机源、matcher、executor、服务。
- LuckyDiceDefaultConfig.cs:151-238 定义默认规则、候选和目标模式。
- LuckyDiceDemoController.cs:131-244 运行时构建 Demo UGUI，并只使用内置字体资源。