tylearymf's recent timeline updates
tylearymf

tylearymf

V2EX member #620695, joined on 2023-03-24 21:49:55 +08:00
tylearymf's recent replies
2 days ago
Replied to a topic by graetdk 游戏 Agentank 更新搜打撤玩法(出击模式)
666
3 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
@graetdk 代码分支里咋多了个多人分支,是准备出多人混战了吗
3 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
@zhuawadao 哈哈哈哈
3 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
这不是神经网络训练,更像是 AI 辅助的规则系统进化。优势是可解释、可复盘、可精准修 bug 。每次输在哪,我都能定位是哪类规则没有覆盖,而不是面对一个黑盒模型。

我给每个动作都打了一个行为标签,比如“躲弹”“抢星”“隐身换位”“边缘脱离”。这样回放时我能知道它当时为什么这么走。
这很像日志系统。偏工程的人会懂,没有 observability 的系统很难调。

业务逻辑先决定想做什么
安全层再确认能不能做

规则尽量窄
只处理一种失败模式
放到正确优先级
用回放验证有没有误伤

这套系统强在可解释和可迭代,但也有局限。规则多了以后,优先级管理会越来越重要;一些非常长线的策略可能还不够全局;面对新类型对手,仍然要靠回放继续补模式。
3 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
下班前再来一波分享
4 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
代码发布直接 code is too long 了😂😂😂
4 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
4 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
@graetdk 能搞个模拟测时支持设定敌方技能和地图吗,现在有些东西测试不到
4 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
## 几个有意思的设计点

### 1. 未来一帧死亡预测器

早期我只判断“当前位置有没有危险”,后来发现不够。
有些格子现在看起来安全,但我一走过去,敌人下一步就能对齐我,然后转头开火。

所以我加了一个短期预测:

- 我走到这个格子
- 敌人按照当前方向走一步
- 敌人是否能和我同线
- 敌人转头需要多久
- 子弹飞到我这里需要多久
- 我从这个格子脱离炮线需要多久

如果敌人击杀我的时间更短,这个格子就被视为危险。

这个点最有意思的是:
它说明“地图上能走”不代表“战术上能走”。

---

### 2. 隐身不是按钮,而是状态机

这辆坦克有隐身技能,但我很快发现,原地隐身没有意义。
敌人虽然看不见我,但它知道我上一帧的位置,子弹还是能打到那里。

所以我把隐身拆成几步:

1. 判断是否值得开隐身
2. 开隐身后立刻离开暴露点
3. 侧向换位,避免仍在原炮线
4. 判断是否已经形成击杀窗口
5. 如果没有击杀窗口,就继续换位或脱离

隐身的核心不是“消失”,而是制造位置差。

---

### 3. 草丛反击和抢星会打架

有一类局面很有意思:敌人藏起来,我的系统会进入反伏击模式。
但如果星星就在附近,反伏击未必是第一优先级。

早期有一局就是这样:系统为了处理隐藏敌人,错过了更重要的星位。
后来我加了一个仲裁逻辑:

> 在关键星位附近,控星优先于反伏击。

这不是说反伏击不重要,而是说不同规则之间必须有优先级。
很多 bug 不是规则本身错,而是规则排队顺序错。

---

### 4. 躲子弹本质是时间竞速

子弹一帧飞两格,所以不能只看“子弹现在在哪”。
真正要算的是:

- 子弹几帧后到我这里
- 我转向需要几帧
- 我移动出炮线需要几帧
- 我移动过程中会不会穿过子弹轨迹

如果子弹到达更快,我就不能选择那个动作。

这让躲弹从简单坐标判断,变成了一个时间问题。

---

### 5. 星星不可达时,先创造条件

有些地图里星星被土堆挡住,直接寻路会失败。
早期系统会在附近绕圈,因为它知道星星重要,但不知道怎么到达。

后来我加了一个目标分解逻辑:

- 如果星星当前不可达
- 找一块打掉后能打开路线的土堆
- 先走到能射击那块土堆的位置
- 打通路线后再重新追星

这其实就是从“追目标”变成了“先创造追目标的条件”。

---

### 6. 每次输局都变成一个窄规则

我不是一次性写一个大而全的智能体。
后期基本是:

- 看失败回放
- 找死亡前几帧
- 判断是哪类失败
- 抽象成一个小规则
- 加进决策流水线
- 再用模拟验证

每条规则都尽量窄。
比如不是“不要靠边走”,而是“不要走进敌人下一步能对齐、转头、开火,而我又来不及脱离的边缘格”。

窄规则的好处是副作用小,也更容易验证。
4 days ago
Replied to a topic by tylearymf 游戏 终于训练出最强坦克了
@phpcyy 本来 61 的胜率,昨晚打完你之后,变成 59 了😭😭😭
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2618 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 10:29 · PVG 18:29 · LAX 03:29 · JFK 06:29
♥ Do have faith in what you're doing.