FishDice / LuckyDice 游戏框架分析总览
这份报告分析的是当前仓库中已经落地的 Lucky Dice 玩法内核框架。它不是完整游戏壳,而是一个“纯 C# 可测试核心 + Unity Demo 表现层”的玩法流程框架。
一句话结论
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,并只使用内置字体资源。