分类: Minecraft 插件

用 AI 团队打造 Minecraft 服务器#3数值 ×10、12 小时经验曲线、6 个职业模拟!📊

本文译自韩语原文。

要点速览

这是把一句"伤害和血量都要打得爽快"变成实际数字的过程。所有设置放大 10 倍、但不动管理员改过的值的一次性迁移,用 Excel 就能修改的经验表,以及用模拟分析"基础武器太强"这一意见后,发现原因不在公式而在武器攻速的故事。

  • Paper 1.21.11 · 服务器配置文件 · 2026-09-28~30 实际应用并模拟
  • ×10 迁移只把"仍是旧默认值的项"改一次,并记录 number-scale: 10 —— 管理员改过的值保持不变
  • 经验曲线目标:1→30 级约 12 小时,前期升级快 · 每个阶段都有平缓区间
  • 职业 DPS 差距 ±40% 的主要原因不是公式,而是武器攻击速度的差异(斧 0.8 次/秒 vs 剑 1.6 次/秒)
目录9 项

大家好!我是 Mojangcam 😎

上一篇 #2 讲了插件结构和 1000029 伤害事件。这一篇聊的是游戏里的数字。

做 RPG 服务器的时候,经常会听到这样的话。

"希望伤害打得爽快,血量也涨得爽快。"

方向很好,但要把它变成实际的数字,其实相当棘手。这一篇会整理

  • 🔢 把生命值和伤害一次性放大 10 倍的方法
  • 📈 打造"30 级只要 12 小时"的经验曲线
  • ⚖️ 用模拟来分析"基础武器太强"这一意见的结果

这几件事。定数字的是策划组 AI,写进代码的是各个开发组,做选择的是人。


📌 第 1 步 - 数值 ×10:放大"看得见的数字" 🔢

哪些要放大 10 倍

放大 10 倍(固定值) 保持不变(比例及其他)
生命值、攻击力、魔法攻击力 % 属性、倍率
武器基础伤害、固定附加伤害 防御力(因为是比例公式)
药水固定回复量、怪物生命值和伤害 法力、经验值、金币

防御力不能放大 10 倍的原因很有意思。防御公式是 방어 / (방어 + 100)(即 防御 ÷ (防御 + 100)),如果把防御 25(减伤 20%)变成 250,就会变成减伤 71%。代入比例公式的值一旦乱动,平衡就会崩掉。

已经在运行的服务器要怎么改

最难的是已经有配置文件的服务器。因为管理员可能已经在游戏里直接改过怪物的生命值。所以我让所有模块都按同一套规则,只迁移一次。

Python
# 每个模块在服务器启动时执行一次的操作(实际是 Java,这里只用 Python 展示流程)
if config.get("number-scale", 1) != 10:
    backup(config_file)                      # 1) 修改前先备份
    for key, old_default in OLD_DEFAULTS.items():
        if config[key] == old_default:       # 2) 只改"仍是旧默认值"的项
            config[key] = old_default * 10   #    放大 10 倍
        else:
            log(f"{key} 是管理员改过的值,保持不变")
    config["number-scale"] = 10              # 3) 做标记 → 以后不再执行
    save(config)

逐条拆开来看 💡

  • 记录 number-scale:服务器启动两次也不会变成 100 倍。
  • 只改旧默认值:管理员动过的值被视为有意为之,保留下来。不过会在日志里列出清单,让人亲自确认。
  • 先备份:就算迁移出错也能恢复。

实际重启一次服务器后,core、战斗、物品、等级、怪物模块全都在日志里留下了"×10 迁移",错误为 0 个。

一起定下来的修正还有这些。

项目 值
暴击倍率 ×1.5 → ×2.0
普通怪物生命值 等级倍数 1.0 → 0.9(普攻 4 下打死)
怪物等级比我高时造成的伤害 差距 ≤2:100% · 3:80% · 4:50% · 5 及以上:固定 1
最后一击经验上限 最多到比我高 4 级怪物的经验值(防止抢高等级怪物的最后一击)

📌 第 2 步 - 经验曲线:1→30 级 12 小时 📈

目标是 1→30 级约 12 小时,并且前期升级要快。前期太慢的话,玩家就会流失。

一开始做的是一条平滑的曲线,后来我又让策划组 AI 重新做一条"每个阶段感觉都不一样的曲线"。结果是这样的形状。

区间 形状 意图
Lv 1~9 人工设定的值,非常快 前 30 分钟内升好几级
Lv 10~14 平缓区间 适应新的练级场地
Lv 15~29 每级约 ×1.2 递增 感受到成长
Lv 30 以后 每 5 级一个平缓区间 + 倍率逐渐减小(×1.08 → ×1.075 → …) 避免无止境地变陡
  • 结果:1→30 累计 12.0 小时,总经验值 281,150
  • 只有 exp_table.csv 一个文件,用 Excel 打开就能改,输入 /리로드 level(重载命令)立刻生效

在此基础上,我又加了等级差经验惩罚。打比自己低很多的怪物,经验会变少。

怪物比我低几级 0~3 4 5 6 7 8 9 10+
获得的经验 100% 90% 60% 45% 30% 20% 15% 10%

📌 第 3 步 - "基础武器太强" → 模拟 ⚖️

测试的玩家之间出现了"职业基础武器太强"的意见。大家希望的方向是这样的。

武器伤害在前期强,到了后期,攻击力、穿透和职业属性要重要得多。

组长先拟了公式草案,然后让策划组 AI 计算 6 个职业 × 7 个等级段 × 2 种属性分配 × 3 种公式 = 252 种情况。

提出的公式(草案)

Python
# 攻击力:等级、装备、属性不断叠加的部分
ATK = (base_attack + growth_attack(level) + gear_flat_attack) \
      * (1 + main_stat * 0.005 + sub_stat * 0.002)

# 基准伤害:武器伤害不受属性影响
B = weapon_damage + ATK

# 防御:等级越高,同样防御力的效率会一点点下降
effective_def = max(0, defense - flat_pen) * (1 - pct_pen)   # 先算固定穿透,再算 % 穿透
K = 100 + attacker_level * 5
damage = B * K / (K + effective_def)

模拟结果

项目 现在的公式 只改公式 公式 + 统一攻速(推荐)
武器所占比重 Lv1 → Lv30 100% → 14~21% 4558% → 1016% 58% → 7%
职业之间的 DPS 差距 −41% ~ +43% −43% ~ +44% −7% ~ +11%
普攻打死普通怪物所需次数 Lv15 时 5 下 Lv15 时 5 下 所有等级 4 下

有意思的是中间那一列。只改公式的话,DPS 差距几乎不变。深挖原因后发现,问题不在公式,而在武器的攻击速度。

  • 斧:每秒 0.8 次
  • 剑、匕首:每秒 1.6 次
  • 魔法弹:每秒 1.67 次

单次伤害再怎么调平,斧头也只能打出一半的次数,DPS 自然会拉开。所以推荐方案是先统一攻速(斧、弓 1.0 次,剑、匕首、魔法弹 1.25 次)。

玩家觉得"基础武器太强",其实是因为前期的伤害 100% 来自武器,而属性每 10 点只提升 1%,除了武器之外没有什么能感受到的东西。感觉是对的,只是原因在别处。

⚠️ 这个公式 v2 目前还处于提案阶段。第一次整合测试会用现在的公式,等决定之后再应用。


📌 使用 AI 策划组的感想 💬

  1. 很擅长把"感觉"翻译成数字。 它会把"爽快"变成"Lv1 一下 101 → Lv30 1,937,普攻 4 下"这样的表格。
  2. 一定要让它写出假设。 攻速、装备强化等级、刷怪速度这些它会自己设定后再计算,所以报告里如果没有"假设"表,结果就很难让人信服。
  3. 决定权在人。 AI 会给出好几个推荐方案,连受影响的模块都整理好,但选哪个,得由做游戏的人来决定。

📌 总结

  • 数值 ×10 只针对固定值,迁移只做一次,管理员改过的值保留
  • 经验值是一张用 Excel 就能改的表,1→30 级 12 小时
  • 平衡不满的原因不是公式,而是攻击速度 —— 要不是做了模拟,我大概还在一直改公式

下一篇讲的是美术。我会介绍让 ChatGPT 负责 GUI、图标、武器贴图,再由 Claude 审核的流水线,以及审核中拦下的事故(名字互换的弓、不显示的背景、闪烁的弓)。敬请期待 🙌

这篇文章由我定方向,并和 Claude 一起整理而成。这个服务器是个人项目,不是 Minecraft 官方内容,与 Mojang、Microsoft 无关。

连载 · 共 5 篇中的第 3 篇

用 AI 团队打造 Minecraft 服务器

  1. #11 名 AI 组长 + 15 名组员,打造 MMORPG 插件的结构!🤖
  2. #2一个插件装下 13 个模块!core 结构与"1000029 伤害"事件 🧩
  3. #3数值 ×10、12 小时经验曲线、6 个职业模拟!📊当前文章
  4. #4ChatGPT 画图、Claude 审核的资源包流水线!🎨
  5. #5用 Discord 机器人运营开发团队!决策论坛·命令列表·资源包频道 🤝

作者

Mojangcam

亲手写代码、跑服务器、解决卡住的报错,把一路学到的东西记录下来的开发与 IT 实战博客