下载 App

AI 对手设计

06/238 浏览综合
神经网络原理 → 纸上谈兵 AI 对手设计 对应关系 AI/ML 概念 纸上谈兵中的映射 具体机制 梯度消失 玩家打了10个AI都不掉好东西,没成长感 保底掉落机制 梯度爆炸 某次捡到超强能量,后面碾压无脑 行动点软上限(BN层) 激活函数 AI 行为的非线性切换 血量<30%时AI暴走(ReLU) 自适应学习率 动态难度调节 根据玩家击杀速度调整刷新强度 残差连接 击杀积累不清零 掉落的材料可永久强化兵体 具体设计
  1. AI 蓝图生成(初始化 = Xavier/He) AI 兵的强度 = f(玩家当前核心数, 击杀数, 存活时间)
第1-3个AI:小型(3核心 + 2甲 + 1炮)→ "新手村" 第4-8个AI:中型(5核心 + 4甲 + 2炮) 第9+个AI:大型(8核心 + 6甲 + 3炮)
类似 He初始化:根据"网络深度"(玩家进度)合理设定初始值 不会开局就刷 BOSS,也不会永远刷小怪 2. AI 行为(激活函数式状态切换) lua
复制 -- 不是简单的 if-else,而是"激活函数"式的连续变化
-- ReLU 式行为:血量高于50%正常巡逻,低于50%切换为冲锋 aggression = math.max(0, 1 - hp_ratio) * 2 -- ReLU(1-hp)
-- Sigmoid 式逃跑:不是突然逃,而是逐渐倾向后退 flee_prob = 1 / (1 + math.exp(5 * (hp_ratio - 0.2))) -- hp=50% → flee_prob≈0.05(几乎不跑) -- hp=20% → flee_prob≈0.5(开始犹豫) -- hp=5% → flee_prob≈0.95(拼命跑) 3. 动态难度(Batch Normalization) 每击杀5个AI,系统计算一次"玩家表现方差":
表现值 = 击杀用时的平均 + 剩余血量的平均
如果表现太好(方差大,梯度爆炸): → 下一波AI加强 20%(类似BN把输出拉回正常范围)
如果表现太差(方差趋零,梯度消失): → 下一波AI减弱 20% + 额外掉落能量("恢复学习率")
目标:让玩家始终处于"有挑战但能赢"的甜区 4. 掉落机制(残差连接 + 保底) 击杀AI → 必掉能量块(+500行动点) 概率掉甲片碎片(后期:+1甲片格子)
残差连接思想:玩家的成长不会"归零"
  • 捡到的能量直接加到当前行动点(跨战斗保留)
  • 不像很多游戏"死了全丢"
保底机制(防梯度消失): 连续3次击杀无额外掉落 → 第4次必定掉稀有材料 5. 行动点软上限(梯度裁剪) 行动点上限 = 5000(由能量仓决定)
即使无限拾取能量掉落物: if 行动点 > 上限 then 超出部分转化为"暴击率" × 0.01(边际收益递减) end
类似梯度裁剪:限制最大值,防止"无限续命"破坏游戏紧张感 公式汇总 AI强度 = He初始化(玩家进度层数) AI行为 = ReLU(攻击) + Sigmoid(逃跑)
难度调节 = BatchNorm(玩家表现方差) 掉落保底 = 残差连接(累积击杀数) 行动点 = GradientClip(当前值, 上限5000) 一句话 把"训练一个AI模型"的过程,变成"玩家在游戏中成长"的过程——让玩家就是那个正在被训练的网络,而你设计的难度曲线就是优化器。
【求积分】
因为没有积分继续完善框架,目前测试连接进入游戏界面,可能需要如下操作:
1、先随意输入用户名,默认密码123点击“进入系统”
2、稍等一会儿,会读取到当前用户ID的用户名,默认密码123就可以进入了
3、进入游戏修改密码,下次默认密码就不是123了
如果大家都能帮忙来体验,可能这个便签墙上会有越来越多的便签,需要玩家来丰富便签墙截图
【求积分】 因为没有积分继续完善框架,目前测试连接进入游戏界面,可能需要如下操作: 1、先随意输入用户名,默认密码123点击“进入系统” 2、稍等一会儿,会读取到当前用户ID的用户名,默认密码123就可以进入了 3、进入游戏修改密码,下次默认密码就不是123了 如果大家都能帮忙来体验,可能这个便签墙上会有越来越多的便签,需要玩家来丰富便签墙
3 赞
7 回复
耦合性 V5
结论:主游戏业务耦合优化已经基本完成,可以收尾。 不是说项目里完全没有高入度/高出度模块,而是: 主要业务热点已经拆完 原 API 都保持兼容 每批拆分都通过了 LSP 每批拆分都通过了官方构建 每批局部依赖检查都没有循环 当前项目仍然构建成功 当前 Lua LSP errors = 0 当前验证状态 刚刚重新确认: Lua LSP errors = 0 官方构建成功 当前 Lua 文件数 = 4
官方
3 赞
耦合性 V4
当前游戏耦合性评估 结论:低到中低耦合。 经过多轮拆分后,原来的高入度 Facade / shim 基本已经清空业务依赖,当前主要热点已经转为“细粒度状态模块”和“流程编排模块”,结构比最初健康很多。 1. 当前核心指标 Lua 文件数: 200 内部 require 边数: 615 外部 require 引用: 79 平均内部出度: 3.08 循环节点: 0 关键结论: 循环依赖: 0 这是最重
官方
4 赞
耦合性 V2
目前耦合性已经从“偏高”降到了 中等偏低、可控。 简单评价: 大问题已经收口,剩下的是结构继续细分的问题。 当前不会再出现明显的全局入口乱写、页面直接抢 UI Root、Network 回调污染全局这类高风险耦合。但 State、App 启动层、投资数据页面仍有进一步拆分空间。 已明显改善的部分 1. 全局 UI Root 已收口 现在 UI.SetRoot 只剩一处: scripts/App/R
官方
4 赞
耦合性 V3
当前耦合性已经从“中低耦合”进一步改善到: 低到中低耦合;核心玩法聚合直连基本消除,剩余主要是状态 Facade 和数据 Store 的中心化耦合。 量化结果 只读扫描 scripts/: Lua 文件数:175 内部 require 边数:534 循环依赖数:0 关键聚合模块入度: Pages.纸上障碍 incoming = 0 Pages.怪物工坊.战斗机制 incoming = 0 Page
官方
4 赞
耦合 V1
已分析当前 scripts/ 用户代码,未修改文件。整体看,项目是一个 main.lua 主入口 + 投资页面模块 + 纸上谈兵插件模块 + 网络/数据代理模块 的结构,耦合点比较集中。 1. 主入口如何耦合其他模块 主入口是: scripts/main.lua 它分服务端和客户端两条启动路径。 服务端路径 main.lua 先判断服务端模式: scripts/main.lua:7:判断 IsSe
官方
4 赞
01:32
【号外:新游】《小韭成长记》截图
【号外:新游】《小韭成长记》
《小韭成长记》是一款“投资记录 + 游戏化成长”的复合型小游戏: 投资端:记录股票、资金流水、账户管理等投资行为,生成多维度分析(组合估值、融资成本、指数对比等)。 游戏特色:你可以给后面来踢馆的玩家制造麻烦! 游戏端:通过“纸上谈兵”将投资数据转化为游戏战力(核心、甲片、行动点等),支持造兵、闯关、建设安全屋,让投资成果可视化、趣味化。 股票操作:支持「买入/卖出/分红/融资借入/还款」,自
【申请积分】刚把架构搭建了一些,希望能申请一些积分把游戏跑通截图
【申请积分】刚把架构搭建了一些,希望能申请一些积分把游戏跑通
4 赞
3 回复