boardgame-core/src/samples/slay-the-spire-like/04-code-structure.md

1.8 KiB
Raw Blame History

文件结构

系统实现

  • system/:系统实现。
    • combat/:管理一次战斗内的战斗状态、流程、触发。
    • progress/:管理一次冒险的进度。
    • map/:管理地图生成。
    • grid-inventory/:管理背包状态。
    • deck/:管理卡组状态。

数据

  • data/:所有的数据文件
    • desert/:游戏的测试模组,沙漠区域的内容。
      • card.csv:所有的卡牌定义。
      • effect.csv:所有的效应定义。
      • encounter.csv:所有的遭遇定义。
      • enemy.csv:所有的敌人和意图定义。
      • item.csv:所有的玩家物品定义。
      • dialogues/yarn对话项目目录
        • dialogues.yarnprojectyarn对话项目入口
        • **.yarn具体的yarn对话文件代码不关心
      • index.ts:统一导出所有的数据。
      • trigger.ts:额外的触发器脚本,用于实现测试模组中涉及的效果。

开发流程

SRD / 系统设计

首先编写srd文档。srd文档描述游戏系统和规则并提供少量内联的基础游戏数据。

SRD是系统实现的基础系统实现只能基于SRD不能依赖具体的游戏内容。

Setting / 环境设定

使用SRD提供的特性来设计环境内容

  • 效应:效应在技术上不依赖其他类型内容,可以首先确定。但在创意上可能不会直接设计效应,而是从若干创意中提取共性,并创建一个效应来作为主题。
  • 卡牌:部分效应会创建卡牌或修改卡牌。在设计时需要注意。
  • 敌人和意图:结合效应与主题表达设计敌人。通常需要为每个敌人设计独特的效应。
  • 玩家物品:结合效应与主题表达设计物品。常见物品的效应容易找到替代,不常见物品则有特殊的效应。