《超级购物袋》游戏技术配置与开发规范

74 阅读11分钟

《超级购物袋》游戏技术配置与开发规范 (PRD v2.1)

一、项目总览

1.1 核心玩法

玩家在每关中,从随机生成的商品列表中选择若干件装入购物袋,目标是在不超重的前提下,使总价值达到或超过关卡目标价值,从而通关并获得积分奖励。

1.2 设计铁律

  1. 动态生成,静态规则:每关物品随机,但关卡核心参数(购物袋上限、目标价值百分比)由固定公式计算,确保难度曲线可控、公平。
  2. 策略至上,数值平衡:通过严谨的物品属性范围和生成规则,确保无“必选”或“必不选”的破坏性物品,所有选择均存在策略权衡。
  3. 商业结合:物品池设计可体现公司商品的高性价比特性。

二、核心系统与公式

2.1 关卡参数公式

以下公式为游戏平衡的基石,开发中必须严格实现。

参数计算公式说明计算结果示例
购物袋上限 (kg)160 + N * 15 + floor(N^1.7)N为当前关卡(1-5),floor为向下取整。此公式确保第5关可容纳最重物品。第1关: 176kg
第2关: 193kg
第3关: 211kg
第4关: 230kg
第5关: 250kg
目标价值百分比70% + (N - 1) * 7.5%用于计算每关目标价值,难度线性递增。第1关: 70%
第2关: 77.5%
第3关: 85%
第4关: 92.5%
第5关: 100%

2.2 目标价值计算流程

  1. 根据“3.2 关卡生成规则”生成本关物品列表。
  2. 对该列表使用贪心算法(按价值/重量降序拿取,不超上限)得到一个“近似最优解”的价值 GreedyValue
  3. 本关目标价值 = GreedyValue * 本关目标价值百分比 (结果向上取整)。

2.3 积分与评级系统

  • 单关积分公式本关得分 = 30 + (实际达成价值 / 本关目标价值) * 60 (计算结果四舍五入取整)。 (注:单关满分约为90分,五关完美总分约509分)
  • 总分与评级:游戏结束时,根据累计总分是否通关第五关确定最终评级及奖励。
评级达成条件奖励用户积分
S1) 通关第五关;2) 总分 ≥ 450200
A总分 ≥ 350100
B总分 ≥ 25050
C总分 < 2500

三、物品系统与关卡生成

3.1 物品属性定义与约束

所有物品必须在后台配置以下字段,并严格遵守以下数值范围约束,这是防止游戏性被破坏的第一道防线。

{
  “id”: 1,                     // 数字,唯一标识
  “name”: “健身袜”,            // 字符串,商品名称
  “image”: “socks.png”,       // 字符串,图片资源路径
  “value”: 300// 数字,价值。范围建议 50 - 3000
  “weight”: 10// 数字,重量。**最大不得超过250**
  “type”: 1// 数字,性价比类型 (1-5)
  “unlock_level”: 1            // 数字,解锁关卡。默认1,表示第1关即可出现
  ““rarity””: null             // null或者字符串,稀有度
}
🚨 物品添加四大铁律 (防崩坏规则 - v2.1修正)

后续任何新物品的添加,必须通过此清单审查:

  1. 物理法则:物品重量 weight 必须 ≤ 其 unlock_level 对应关卡的购物袋上限
    • 例如:若 unlock_level=1,则重量不得超过 176。
  2. 死局规避铁律
    • 大重量生存权:若物品重量 > 100,其性价比 (value/weight) 必须 ≥ 10
    • 说明:防止大重量低性价比物品占满购物袋导致 mathematically impossible to win。此类物品应作为“高价值但笨重”的策略品存在,而非纯陷阱。
    • 纯陷阱限制:若物品为 低性价比陷阱 (性价比 < 5),其重量必须 ≤ 20
    • 说明:真正的陷阱必须是小件物品,用于干扰决策,而不是直接摧毁游戏。
  3. 性价比平衡审查
    • 避免“超神”物品:新物品的价值重量比不应超过同类型(type)现有最优物品的1.5倍
  4. 策略定位明确:每个物品应有清晰的定位(如核心、主力、填充、陷阱)。
性价比类型 (type) 定义 (v2.1修正)

此类型是关卡生成模板的核心筛选依据。

type名称价值重量比范围策略定位示例物品 (价值/重量)
1极高性价比> 25核心策略品,重量极轻,是构建组合的基础。运动发带 (80/2=40)
2高性价比10 ~ 25主力得分品,需要权衡选择。速干T恤 (400/25=16)
3中性价比/填充品5 ~ 10灵活填充剩余空间。超轻跑鞋 (1000/100=10)
4高风险/策略品2.5 ~ 16包含两类
1. 小重量陷阱 (Ratio < 5):干扰项。
2. 大重量策略品 (Ratio > 10):高风险高回报。
陷阱: 纪念徽章(20/5=4)
策略: 露营帐篷(2500/170=14.7)
5特殊/平衡品变动范围特殊功能或平衡调整。智能手环 (350/5=70)

3.2 关卡生成规则

游戏采用 “通用物品池 + 生成模板 + 稀有度替换” 方案,并允许重复抽取同一物品

  1. 总物品池:包含所有已配置的物品(含普通物品和稀有物品)。
  2. 单关生成步骤: a. 筛选基础池:从总池中筛选出 unlock_level ≤ 当前关卡数N 的所有物品。 b. 按模板抽取普通列表:根据当前关卡N的“生成模板”(下表),从基础池的非稀有物品(rarity字段为null) 中,按类型要求随机抽取指定数量的物品,生成初始普通列表。 c. 稀有物品概率替换: i. 准备一个空的稀有物品候选列表。 ii. 遍历初始普通列表中的每一个物品槽位,为每个槽位独立进行概率判断: * 随机一个0-100的数。 * 若数 ≤ 0.5,则从基础池中随机选取一个符合当前关卡type要求SSR物品,加入候选列表。 * 若 0.5 < 数 ≤ 3,则随机选取一个SR物品加入候选列表。 * 若 3 < 数 ≤ 10,则随机选取一个R物品加入候选列表。 * 若数 > 10,则该槽位不产生稀有物品候选。 d. 应用稀有度数量限制(核心): i. 总量限制:若候选列表物品总数 > 4,则随机保留4个(优先级:SSR > SR > R)。 ii. 分档限制:检查保留后的列表,确保:SSR数量 ≤ 1, SR数量 ≤ 2, R数量 ≤ 3。若超出,随机舍弃多余的较低稀有度物品。 iii. 替换:将最终保留的稀有物品,按顺序替换初始普通列表中最早的那些未被标记为稀有的槽位物品,形成最终物品列表。 e. 最终验证:验证最终列表是否存在可行解(贪心算法检查)。若无解,则返回步骤b重新生成。

3.2.1 关卡生成模板

关卡(N)抽取物品数量类型模板要求 (type)策略目的
16-8件必须包含至少2件 type=1,其余从 type=2, 3 中抽取。开局即充满选择与迷惑。
28-10件从 type=1, 2, 3 中混合抽取。必须有1-2件 type=4引入干扰项,提升决策复杂度。
310-12件必须包含至少2-3件 type=4,其余从 type=1, 2, 3 中充分混合。强化对抗诱惑,规划核心组合。
412-14件从 type=1, 2, 3, 4 中按比例混合抽取,可包含1件 type=5全面计算考验,近乎真实的购物袋问题。
514-16件从所有类型(type=1-5)中充分混合抽取。终极策略博弈,寻找理论最优解。

四、预设物品池 (20件)

以下是可直接用于初始化数据库的、符合所有约束的20件商品配置。

[
  {“id”: 1, “name”: “健身袜”, “value”: 300, “weight”: 10, “type”: 1, “unlock_level”: 1, “rarity”: null}{“id”: 2, “name”: “运动发带”, “value”: 80, “weight”: 2, “type”: 1, “unlock_level”: 1, “rarity”: null}{“id”: 3, “name”: “透气鞋垫”, “value”: 150, “weight”: 5, “type”: 1, “unlock_level”: 1, “rarity”: null}{“id”: 4, “name”: “速干T恤”, “value”: 400, “weight”: 25, “type”: 2, “unlock_level”: 1, “rarity”: null}{“id”: 5, “name”: “瑜伽垫”, “value”: 600, “weight”: 40, “type”: 2, “unlock_level”: 1, “rarity”: null}{“id”: 6, “name”: “运动水壶”, “value”: 180, “weight”: 15, “type”: 2, “unlock_level”: 1, “rarity”: null}{“id”: 7, “name”: “训练手套”, “value”: 220, “weight”: 20, “type”: 2, “unlock_level”: 1, “rarity”: null}{“id”: 8, “name”: “超轻跑鞋”, “value”: 1000, “weight”: 100, “type”: 3, “unlock_level”: 1, “rarity”: null}{“id”: 9, “name”: “综合训练器”, “value”: 800, “weight”: 90, “type”: 3, “unlock_level”: 1, “rarity”: null}{“id”: 10, “name”: “健身包”, “value”: 450, “weight”: 60, “type”: 3, “unlock_level”: 1, “rarity”: null}{“id”: 11, “name”: “跳绳”, “value”: 120, “weight”: 15, “type”: 3, “unlock_level”: 1, “rarity”: null}{“id”: 12, “name”: “运动毛巾”, “value”: 90, “weight”: 10, “type”: 3, “unlock_level”: 1, “rarity”: null}{“id”: 13, “name”: “高端休闲鞋”, “value”: 900, “weight”: 150, “type”: 4, “unlock_level”: 2, “rarity”: null}{“id”: 14, “name”: “限量联名外套”, “value”: 1500, “weight”: 250, “type”: 4, “unlock_level”: 2, “rarity”: null}{“id”: 15, “name”: “豪华运动套装”, “value”: 1200, “weight”: 220, “type”: 4, “unlock_level”: 2, “rarity”: null}{“id”: 16, “name”: “智能手环”, “value”: 350, “weight”: 5, “type”: 5, “unlock_level”: 3, “rarity”: null}{“id”: 17, “name”: “能量补给盒”, “value”: 200, “weight”: 30, “type”: 5, “unlock_level”: 1, “rarity”: null}{“id”: 18, “name”: “折叠自行车”, “value”: 2000, “weight”: 180, “type”: 5, “unlock_level”: 2, “rarity”: null}{“id”: 19, “name”: “运动护具套装”, “value”: 320, “weight”: 40, “type”å: 5, “unlock_level”: 1, “rarity”: null}{“id”: 20, “name”: “团队运动球”, “value”: 500, “weight”: 70, “type”: 5, “unlock_level”: 1, “rarity”: null}
]

五、游戏流程与交互

5.1 主要游戏流程

  1. 开始游戏 -> 加载第1关(按3.2规则生成物品、计算上限与目标)。
  2. 玩家选择物品 -> 实时显示当前总重量/总价值。
  3. 玩家可随时:A) 使用“超级手”道具移除物品;B) 点击“提前结算”结束游戏;C) 点击“提交”验证。
  4. 提交后验证:
    • 超重 -> 失败。
    • 未超重但价值不足 -> 失败。
    • 均达标 -> 成功,结算本关积分,进入下一关。
  5. 失败或主动结算时,弹出结算窗口,根据累计总分显示评级与奖励。

5.2 道具系统

  • 名称:超级手
  • 功能:移除一个已选中的物品。
  • 获取:初始赠送2个。可用 50用户积分 购买。
  • 使用规则:随时点击使用,再点击目标物品即可移除。移除后不强制提交。

5.3 前端交互关键点

  • 主界面布局:顶部状态栏(关卡/上限/目标)。中部物品图标网格。底部状态栏(当前重量/价值)。底部按钮组(提前结算、提交、使用超级手)。
  • 结算弹窗
    • 标题:闯关结束!
    • 正文:当前评分:[S/A/B/C]
    • 按钮(从上到下垂直排列):
      1. 使用超级手 (仅当拥有道具时显示)
      2. 重新开始 (点击后游戏重置,从第一关开始)
  • “提前结算”按钮:位于按钮组最左侧,需二次确认。

六、数据上报 (供省份排名)

游戏结束时(无论成功失败),前端上报以下数据:

{
  “user_id”: “用户唯一标识”,
  “session_id”: “本次游戏会话ID”,
  “final_score”: 380// 最终总积分
  “rating”: “A”,             // 最终评级
  “province”: “浙江省”,       // 用户所在省份
  “timestamp”:2023-10-27T10:30:00Z”
}

7. 图鉴与稀有度系统

7.1 物品属性扩展 在物品基础配置中,需增加 rarity(稀有度)字段。

{// 原有字段 (id, name, value, weight, type, unlock_level)
  “rarity”: “SSR”, // 稀有度标签。可选值: null(普通), “R”, “SR”, “SSR”
}
  • 稀有度定义R(稀有), SR(超稀有), SSR(特级稀有)。
  • 核心规则稀有度与物品的强度(性价比类型 type)完全独立。一个SSR物品可以是低性价比陷阱(type=4),一个普通物品(rarity: null)也可以是极高性价比(type=1)。

7.2 稀有物品生成规则 此规则与 3.2 节 的流程配合,共同作用。

  1. 出现概率:在生成每关物品列表时,每个物品槽位有独立概率被稀有物品替换:
    • SSR: 0.5%
    • SR: 3%
    • R: 10%
  2. 数量限制(必须遵守)
    • 单关内,SSR最多出现1个,SR最多2个,R最多3个
    • 单关内,所有稀有物品总数不超过4个
    • 稀有物品的性价比类型(type) 必须符合当前关卡的生成模板要求。
  3. 生成流程:详见 3.2 节 的步骤c与d。

7.3 图鉴系统

  1. 解锁条件:当一件物品被玩家成功装入购物袋并完成关卡提交后,无论本关成功与否,该物品即在玩家的个人图鉴中永久解锁。
  2. 图鉴界面
    • 以网格形式展示所有物品的图标。
    • 已解锁:彩色显示,点击可查看详情(名称、价值、重量、稀有度、趣味描述)。
    • 未解锁:灰色显示并带有“?”遮挡。
    • 显示总收集进度:已收集:X / 总数