 joywayerandClaude Opus 5
|
71240931af
|
perf(homing): 退避到期时刻加抖动,消除每 12 帧复发的集体重试尖峰
二次发现:固定 200ms 退避并没有消除尖峰,只是让它变成周期性复发。按真实 60fps
起搏复测,1500 弹 visited 场景逐帧耗时在第 1/13/25/37 帧稳定出现 ~21ms,永不衰减:
21.9 2.8 2.9 ... 3.1 | 21.8 2.8 ... | 21.0 2.9 ... | 20.9 3.7 3.9 3.8
根因是朴素退避会把子弹锁进同相而非打散 —— 同帧失败的子弹拿到同一个 now,到期时刻
完全相同,一个退避周期后又整齐地一起重试;同波齐射本就天然同相,此后再无机会错开。
摊薄后的均值数字恰恰掩盖了这一点。
修法是抖动到期时刻,铺满 [200,400) ms ≈ 恰好一个退避周期 ≈ 12 帧。
用「bullet_idx 在活跃弹数中的占比」而非 bullet_idx % HOMING_RETRY_MS:后者在弹数少于
窗口宽度时只铺开 _active_count 毫秒(20 颗弹 → 20ms ≈ 1.2 帧,等于没打散)。
实测打散质量:1500 颗同帧集体失败 → 互异到期值 1493 个、覆盖 14 帧、单帧最多 120 颗
(理想 125)。
单帧峰值(60fps 起搏 40 帧,稳态即排除初次锁定帧):
① 全射程外 1500 13.6~15.7ms 复发 → 4.40ms 300 3.2ms → 0.92ms
② 全 visited 1500 20.9~21.9ms 复发 → 5.61ms 300 4.6ms → 1.15ms
稳态超 16.67ms 的帧数均为 0/39。
首次锁定即时的行为未受影响(抖动只作用于失败后的重试),速率守恒、单帧转角上限、
退避窗口内零查询、到期后重试成功并 erase 键,断言全绿。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 16:12:40 +08:00 |
|
 joywayerandClaude Opus 5
|
3bf04c9fc0
|
docs(spec): R-H1 由「暂不实现」改为「已实测触发并启用」,补两种病态状态实测数据
如实记录:
- 原风险分析只预见「敌人全在射程外」,漏掉「射程内敌人全在 visited_targets 里」——
后者经 bounce+homing 组合是该子弹的永久状态而非瞬态,且成本更高,是本次发现;
原文把 R-H1 定性为瞬态尖峰不准确。
- 实测两种场景在 300 弹规模已达 3.14 / 4.34 ms,越过本节自定的 2.0 ms 触发线,
故方案 3(0.2s 退避)随 Task 2 落地,摊薄约 12×。
- 残余未收敛项另立 §5.4:1500 弹摊薄后仍 3.9 / 4.5 ms,且退避会使同波齐射的
子弹同步重试、留下 15.9 / 22.2 ms 单帧尖峰;错帧方案待决策,本次未擅自扩大范围。
§2.4 补一句指向 §5,避免「一生只查 1–2 次」与失败路径重试自相矛盾。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 16:04:03 +08:00 |
|
 joywayerandClaude Opus 5
|
c9786eba50
|
fix(bullet): _swap_and_pop 回收末尾子弹时遗留冷数据,被下一颗复用槽位的子弹继承
pre-existing bug(非本期归航引入):冷数据的搬移与擦除都写在 if idx != last 分支内,
故 idx == last(回收最后一颗子弹)时它的 _bullet_contexts[idx] 被原样留在该 key 上,
下一颗复用该槽位的普通子弹会继承整份冷数据。运行时已复现:
after recycle: active=0 ctx_keys=[0]
plain bullet idx=0 inherits_cold=true cold={"homing_strength":3.0,...,"pierce_remaining":7}
归航之前症状只是一次隐形的多余穿透,故长期未被发现;归航把它放大成肉眼可见的
「普通子弹拐弯追敌」,且继承 homing 的幽灵弹会持续走重选路径付出查询开销。
修法是把 erase 移出该 if(缺键时 erase 为安全 no-op),idx != last 的搬移行为一行不改。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 16:02:39 +08:00 |
|
 joywayerandClaude Opus 5
|
2f9cb76308
|
perf(homing): 重选失败退避 0.2s + homing 判别提到调用方
评审实测发现两种病态状态下重选会每帧无限重试,query_circle(r=400) 进入热路径:
① 敌人在场但全在 homing_range 外;② 射程内敌人全在 visited_targets 里
(bounce+homing 打空小簇后是该子弹的永久状态,原 spec 风险分析漏掉了这种)。
1500 弹实测 15.8ms / 22.0ms,300 弹 3.1ms / 4.3ms,均越过 spec §5 的 2.0ms 触发线,
故 spec §5 记录的逃生方案(方案 3)提前落地:重选失败写 homing_retry_at 时间戳,
HOMING_RETRY_MS(200ms) 内直行不再查询,60fps 下摊薄约 12×。
首次锁定不受影响(无该键时 get 返回 0 必小于 now),手感不回退;
重选成功即 erase 该键,恢复零查询稳态。
homing 判别 _bullet_contexts[i].has("homing_strength") 提到 _gd_integrate 调用方:
带冷数据但不归航的子弹(纯 pierce/bounce/状态/荷载,真实 build 里占多数)不再
为发现自己不归航而付一次完整函数调用 —— 1500 纯 pierce 弹实测 2.107→1.812ms。
_apply_homing 内的 strength <= 0.0 早退保留作防御性下限。
同步订正两处失准注释:_find_nearest_unvisited 现也是归航选目标器;
_apply_homing 文档注释补齐失败路径的重试/退避策略。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 16:01:31 +08:00 |
|
 joywayerandClaude Opus 5
|
b3b04fcbda
|
feat(homing): bullet_manager 受限角速度转向 + 锁定式目标重选 + bounce 协同; 删除无人消费的位置快照
_apply_homing 在位置积分前把速度矢量朝目标旋转,单帧转角上限 strength*delta,
rotated() 保持速率不变;wrapf 取最短转向方向。
目标仅在失效或首帧时经 _find_nearest_unvisited 重选,配 get_active_count()==0
空场守卫,避免 query_circle(r=400) 进入每帧热路径。
bounce 命中重定向时改写 homing_target_id,由 bounce 选目标 homing 追上去。
删除 _enemy_pos_snapshot 及 EnemyManager.fill_pos_snapshot(全项目唯一调用方)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 15:40:55 +08:00 |
|
 joywayerandClaude Opus 5
|
0a6f0e95d5
|
style(homing): 评审抛光——JSON 列对齐 + 注释精度(无行为变更)
1. spells.json: modifier_homing 的 description 补一空格对齐到第 72 列,
与相邻 type 1 条目一致,避免错位被复制传播。
2. cast_stats.gd: homing_add 注释改用全角括号与相邻行统一;措辞明确为
「最大转向角速度」——按 spec §2.1 该值是 clampf 上界而非实际角速度,
原措辞可能误导调平衡的人设错值。
3. spell_evaluator.gd: 分支快照注释点明 pierce_add 是已知 pre-existing
遗漏而非笔误,防止后来人把「10 字段」误读为「全部字段」。
4. spell_evaluator.gd: 归航冷数据块加注 homing_range 同 bounce_range/
bounce_decay 仅从 ACTION meta 读取,MODIFIER 覆盖静默失效(一致行为,
非回归),省掉后来人一次 debug。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 15:35:56 +08:00 |
|
 joywayerandClaude Opus 5
|
5663dedc12
|
feat(homing): CastStats.homing_add + 修饰器折叠 + 发射写归航冷数据 + 分支快照; modifier_homing 词条
homing_add 为 float(角速度,弧度/秒),镜像 bounce_add 的 int 累加路径。
发射时不解析目标,homing_target_id 留 -1 由 bullet_manager 首帧惰性获取,
使 spell_evaluator 不必接触 SpatialGrid。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 15:24:17 +08:00 |
|
 joywayerandClaude Opus 5
|
364ebe4c62
|
docs(plan): E1-③ 子弹归航逐任务实现计划(5 任务 · 含 wrapf 跨 ±π 判据与 R-H1 性能守卫)
Task0 建分支 / Task1 法术 VM 侧 / Task2 bullet_manager 转向+删死快照 /
Task3 设计器字段(含补漏的 bounce)/ Task4 MCP 运行时验收。
验收脚本全部用确定性数值断言:单帧转角上限、速率守恒、跨 ±π 的最短转向
(该摆位下有无 wrapf 会给出符号相反的结果,是有效判据)、目标失效重选、
空场直行、bounce 协同改写 homing_target_id、两层折叠 6.0。
Task4 Step7 实测 spec R-H1 病态场景(50 敌全在射程外 + 300 归航弹),
超 2ms/帧则按 spec §5 启用失败退避逃生方案。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 13:51:18 +08:00 |
|
 joywayerandClaude Opus 5
|
049d1dda1b
|
docs(spec): E1-③ 子弹归航设计——受限角速度中度制导 + 锁定式目标 + 删除无人消费的位置快照
手感定位为中度制导:homing_strength 即最大转向角速度(rad/s),
单层词条 3.0(350 速度下转弯半径 117px),rotated() 保持速率不变。
目标策略为发射后锁定,仅在目标死亡(get_pos_by_id 返回哨兵)或首帧时
经 _find_nearest_unvisited 重选,配 get_active_count()==0 空场守卫,
避免 query_circle(r=400, 约196格且每次新建数组)进入每帧热路径。
与 bounce 协同:bounce 命中重定向时改写 homing_target_id,
由 bounce 选目标、homing 追上去;复用 visited 过滤规避"绕已命中敌打转"死循环。
偏离路线图原文:锁定语义需 entity_id,而 _enemy_pos_snapshot 按槽位存位置
不含 id,无法支撑,故快照连同 EnemyManager.fill_pos_snapshot 一并删除
(全项目唯一调用方),净减每帧 O(敌人数) 开销。
顺带补设计器 MODIFIER schema 遗漏的 bounce 字段(现掉在 JSON 逃生舱里)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-30 13:36:42 +08:00 |
|
joywayer
|
d6061d0f50
|
更新mcp client
|
2026-07-30 11:41:08 +08:00 |
|
 joywayerandClaude Opus 4.8
|
04e8cf9c09
|
docs(spec): 明确 bounce+pierce 组合语义——visited 持续使每敌至多命中一次(刻意,非bug)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 15:28:31 +08:00 |
|
 joywayerandClaude Opus 4.8
|
bf9bea78d8
|
docs(roadmap): E1-② 子弹弹跳完成,勾除现状项 + 修正 Step3 为确定性速度判据
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 15:21:26 +08:00 |
|
 joywayerandClaude Opus 4.8
|
3eb6049b39
|
feat(bounce): bullet_manager 命中弹跳分支(优先于pierce)+跳过已访问+_find_nearest_unvisited 寻的
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 15:11:16 +08:00 |
|
 joywayerandClaude Opus 4.8
|
6b910697a9
|
feat(bounce): CastStats.bounce_add + 修饰器折叠 + 发射写弹跳冷数据 + 分支快照; modifier_bounce 词条
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 15:00:27 +08:00 |
|
joywayer
|
e5cf6089ed
|
docs(spec): 弹跳补充——命中循环跳过已访问敌人(防密集群重复命中)
|
2026-07-24 14:56:49 +08:00 |
|
joywayer
|
9403f80aa4
|
docs(plan): E1-② 子弹弹跳逐任务实现计划(3 任务·含密集群跳过已访问·SpatialGrid.insert 实测)
|
2026-07-24 14:56:37 +08:00 |
|
 joywayerandClaude Opus 4.8
|
4a86ffb2c4
|
docs(spec): E1-② 子弹弹跳设计——镜像 pierce 管线 + 命中弹向最近未命中敌+伤害递减
缺失功能路线图 E1 子计划②。冷数据 bounce_remaining/visited_targets/decay/range;
CastStats.bounce_add + _apply_modifier 折叠 + _push_projectile 写 cold(含分支快照);
_check_collision 弹跳分支(bounce优先于pierce)+_find_nearest_unvisited;modifier_bounce 词条。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 14:44:53 +08:00 |
|
 joywayerandClaude Opus 4.8
|
cd5f4d5892
|
docs(roadmap): E1-① 元素抗性完成,勾除现状项(含 DOT 抗性已知限制→E2)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 12:12:32 +08:00 |
|
 joywayerandClaude Opus 4.8
|
a17e3aa2af
|
feat(resist): 设计器敌人页增元素抗性网格(6×5) + _save 写 resistances(全0省略)
主表下方加 6原型×5元素(火/冰/雷/毒/奥) SpinBox 网格(-0.9~0.9);_save 汇总
非零抗性写入 resistances,全0则省略键。读写往返 MCP 实测 FAILS=0
(读种子 fire0.5/ice-0.5,写非零、零值省略、负值保留)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 12:08:11 +08:00 |
|
 joywayerandClaude Opus 4.8
|
fe1d1f690f
|
feat(resist): EnemyManager 元素抗性加载+命中查表;enemies.json Fast 种子抗火弱冰
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 11:51:53 +08:00 |
|
joywayer
|
abe057edf8
|
docs(plan): E1-① 元素抗性逐任务实现计划(3 任务 · lambda-MCP 实测)
|
2026-07-24 11:49:51 +08:00 |
|
 joywayerandClaude Opus 4.8
|
e87e453abf
|
docs(spec): E1-① 元素抗性设计——apply_damage_from_context 查表 + enemies.json resistances + 弱点(负抗)
缺失功能路线图 E1 子计划①。元素链路已通,仅补敌人抗性数据+命中查表:
enemies.json 每型可选 resistances{元素名:-0.9~0.9},EnemyManager 按 ctx.damage_type
查表传入 calc_damage(0,res);护甲不动;物理无抗性;设计器加抗性网格。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 11:45:28 +08:00 |
|
 joywayerandClaude Opus 4.8
|
83dc1196ae
|
docs(roadmap): E6-a 玩家无敌帧完成,勾除现状项
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 09:32:02 +08:00 |
|
 joywayerandClaude Opus 4.8
|
e490e6075a
|
feat(iframe): 设计器平衡页增 player_iframe_sec 栏;_save 改合并式修复丢键
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 09:27:28 +08:00 |
|
 joywayerandClaude Opus 4.8
|
f204b919ff
|
feat(iframe): 无敌期间玩家节点 8Hz 方波闪烁反馈
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 09:23:01 +08:00 |
|
 joywayerandClaude Opus 4.8
|
23644bb40b
|
feat(iframe): PlayerStats.take_damage 时间戳门控无敌窗口 + 复活 PLAYER_DAMAGED emit;移除死订阅
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 09:18:54 +08:00 |
|
 joywayerandClaude Opus 4.8
|
daf34ac1bb
|
feat(iframe): balance.json 增 player_iframe_sec 键 + SettingsManager 访问器(默认0.5s)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 09:15:48 +08:00 |
|
joywayer
|
c756423d57
|
docs(plan): E6-a 玩家无敌帧逐任务实现计划(5 任务 · TDD-MCP 实测)
|
2026-07-24 09:11:33 +08:00 |
|
 joywayerandClaude Opus 4.8
|
383791db14
|
docs(spec): E6-a 玩家无敌帧设计——take_damage 单点门控 + 复活 hurt 反馈 + 数据驱动时长
缺失功能路线图 E6-a 先行小项。受击后 0.5s 无敌窗口(时间戳门控,
杜绝多弹同帧连扣血);顺带复活当前死代码的 PLAYER_DAMAGED emit 与
hurt 音效;spend_hp_cost 自伤不受影响;时长入 balance.json + 设计器。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-24 09:08:04 +08:00 |
|
 joywayerandClaude Opus 4.8
|
0fb2cf6646
|
chore(gdextension): 停止跟踪编辑器 ~ 临时交换 DLL 与 .obj.import 边车
aa69c0e 误将构建生成物纳入版本控制,其中编辑器 ~ 前缀临时交换 DLL 会被运行中的
Godot 锁定,导致切分支/合并时反复冲突(本次合并即因它中断)。改为:
- .gitignore 新增 gdextension/**/~* 与 gdextension/**/*.obj.import 规则;
- git rm --cached 三个生成物(保留本地文件):
bin/~libspellforge_native...dll、src/*.obj.import ×2。
保留已构建的 debug .dll(bin/libspellforge_native...dll)——按原 .gitignore 注释
「开箱即用」的既定意图,其内容稳定、不引发反复冲突。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 16:51:00 +08:00 |
|
 joywayerandClaude Opus 4.8
|
1215b08e88
|
docs(dev): 新增原生迁移笔记——GDScript 别名陷阱 + C#/C++ 激活期接缝一致性项
沉淀两类内容并登记 docs_dev 索引:
① GDScript 陷阱:PackedArray 返回值是活引用别名(非 CoW 副本),复用成员缓冲后 return
会被调用方遍历期间的嵌套调用就地覆写(query_circle 复用优化翻车、已回退的教训),
附实测证据 + 通用规则(默认每次新建;省分配用 out 参数+各调用点独立缓冲)。
② C#/C++ 激活期接缝一致性项:SpatialGridCs 网格常量已对齐(已修);
EnemyManager 原型字典 _SPEED/_ARMOR 内循环逐敌查,迁移期须在 C# 侧从 enemies.json
自建原生数组以守 ADR-L1 铁律(a),现在不改(避免投机 churn)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 16:38:55 +08:00 |
|
 joywayerandClaude Opus 4.8
|
2a7658e0e3
|
fix(hot-path): 回退 query_circle 复用缓冲优化——存在重入覆写 bug
上个提交 35c1742 让 query_circle 复用成员 _query_result 缓冲,实测有重入缺陷:
GDScript 的 PackedArray 返回值是活引用别名(非写时复制副本),当调用方遍历返回
的 hits 期间触发嵌套 query_circle(命中→SpellEvaluator.execute_sub 的区域法术),
嵌套调用的 clear()+append 会就地覆写外层正在遍历的同一缓冲,导致碰撞遍历读到错误
实体 ID。编辑器内已复现:外层期望 [10,20,30],重入后实得 [10,88]。
原优化仅省约 0.064ms/帧(帧预算 ~0.4%),不值得为其做跨 4 处调用点的 out 参数
+ 各自持久缓冲的重入安全改造,故回退为每次新建数组。
BulletManager 无冷数据命中快路径无重入问题,保留。
并加注释说明此处禁止复用缓冲的原因。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 16:35:31 +08:00 |
|
 joywayerandClaude Opus 4.8
|
7038505880
|
fix(csharp): SpatialGridCs 网格常量/坐标偏移对齐 GDScript 外壳(激活陷阱)
休眠的 C# 内核 SpatialGridCs 与权威外壳 spatial_grid.gd 三处不一致,
一旦按 ADR-L1 激活即塌:
- 网格尺寸 64×64 → 128×128(覆盖 4096²→8192²,与 GDScript 一致)
- 补 GridOffset=4096:Insert / QueryCircle 的格映射改为 (coord±radius+4096)/64,
修复负坐标实体全塌到 0 格、覆盖范围减半的问题。
两骨架 BulletManagerCs/EnemyManagerCs 仅读 _active_count 打计时,无 SoA 常量对齐问题。
dotnet build 通过(0 警告 0 错误)。保持休眠(_cs_node 仍恒 null,GDScript fallback 运行)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 16:32:39 +08:00 |
|
 joywayerandClaude Opus 4.8
|
35c1742b4c
|
perf(hot-path): SpatialGrid.query_circle 复用结果缓冲 + BulletManager 无冷数据命中快路径
纯 GDScript 层零成本优化(不引入 C#/C++,遵循「先测量后优化」):
- spatial_grid.gd: query_circle 改用持久成员 _query_result(clear()+append 就地填充后返回),
避免每次调用(每帧 1500+ 次)新建 PackedInt32Array。经引擎实测 ~11% 提速、逐点校验
2000 次查询结果与原实现完全一致;CoW 语义保证嵌套查询(命中→SpellEvaluator 区域查询)
不破坏调用方正在遍历的旧结果。
- bullet_manager.gd: _check_collision 命中处理为无冷数据的普通子弹加快路径,
避免 _bullet_contexts.get(bullet_idx, {}) 每次命中都分配空字典默认值 + 5 次字典查。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 16:13:33 +08:00 |
|
joywayer
|
74c86b3431
|
c# c++的可行性
|
2026-07-23 16:03:10 +08:00 |
|
 joywayerandClaude Opus 4.8
|
aa69c0e2d4
|
chore(build): 搭建并验证 C# / C++(GDExtension) 原生构建环境(4.7.1 Mono)
为「GDScript→C#→C++」性能逃生梯备好可随时启用的工具链,运行时仍 100% GDScript。
C#:新增根 Rogue.csproj(Godot.NET.Sdk/4.7.1,net8.0,程序集名 Rogue);
csharp/ 下既有 3 个骨架 .cs 现可编译,dotnet build 与编辑器 --build-solutions 均 0 错通过。
C++:gdextension/ 下加 godot-cpp 子模块(master,因无 4.6/4.7 分支,配合本工程 dump 的
4.7.1 extension_api.json + gdextension_interface.h 经 custom_api_file 精确匹配 ABI);
SConstruct + 示例扩展 SpellforgeNative(含 PackedFloat32Array 零拷贝热路径写法);
SCons 自动探测 MSVC 构建出 debug .dll,headless 冒烟验证类注册/调用通过
(CLASS_EXISTS=true / multiply=42 / scale_inplace 正确)。
配套:.gitignore 忽略编译中间产物、保留 debug .dll 开箱即用;gdextension/README.md 记录构建/激活/升级流程;
CLAUDE.md 修正引擎版本 4.6→4.7.1 并更新「环境已就绪但休眠」现状。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 15:53:39 +08:00 |
|
 joywayerandClaude Opus 4.8
|
0561377492
|
docs(claude): 编程语言规范新增 C++(GDExtension)极限内核一级
将性能优化定义为逐级逃生梯 GDScript→C#→C++,仅当上一级 profile 证明不够才下探;
C++ 用于连 C# 都不够的 SIMD/手工内存密集内核,代价最高须实测背书;接口壳+原生内核回退模式与验证要求统一覆盖 C#/C++。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 15:25:50 +08:00 |
|
 joywayerandClaude Opus 4.8
|
2da6d6e94e
|
docs(claude): 新增编程语言规范(GDScript/C#)—— GDScript 为主力、C# 仅热路径逃生舱
明确双语定位与「用对语言而非用多语言」原则:记录运行时现状(100% GDScript、csharp/ 为死骨架)、
GDScript 性能纪律、C# 引入门槛(profile + .csproj + ADR-L1 三铁律)、跨界成本 R-08、两层回退模式。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 15:23:42 +08:00 |
|
 joywayerandClaude Opus 4.8
|
09b2e1dd1d
|
docs(roadmap): 缺失功能路线图 —— 7 史诗分组+优先级+切分+验收(战斗深度/经济/循环/Boss深化 为 P0/P1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 15:11:10 +08:00 |
|
joywayer
|
95e5587049
|
fix(boss): HUD 阶段提示改 tr(STATUS_BOSS_PHASE)+4语言 .po;register_boss 未知 boss_type push_error
|
2026-07-23 11:07:52 +08:00 |
|
joywayer
|
f8efdc639d
|
fix(boss): 防玩家死亡致命一击重入 —— EnemyBulletManager._swap_and_pop 负数守卫 + BossManager 循环内失效键跳过
|
2026-07-23 10:54:29 +08:00 |
|
joywayer
|
ef83e8191a
|
chore(boss): Boss 阶段+攻击模式系统验收通过(7 招式+敌弹+阶段/召唤/事件运行时实测)
|
2026-07-23 10:44:44 +08:00 |
|
joywayer
|
e06cdf8948
|
feat(boss): HUD Boss 阶段提示 + boss_design.md 现状更新为已实现
|
2026-07-23 10:32:27 +08:00 |
|
joywayer
|
3480255a5a
|
feat(boss): 游戏设计器 Boss 分页(类型/阶段/招式三级字段化表单,双语,禁手写JSON)
|
2026-07-23 10:27:57 +08:00 |
|
joywayer
|
aa516bcb50
|
feat(boss): wave_manager 接入 BossManager(移除旧内联阶段逻辑)+ combat_manager 重置敌弹/Boss
|
2026-07-23 10:22:25 +08:00 |
|
joywayer
|
af535f1ed0
|
feat(boss): 位移/蓄力/近战招式 dash/charge_up/melee(三段式+前摇预警+接管移动)
|
2026-07-23 10:17:18 +08:00 |
|
joywayer
|
c566eb16a0
|
feat(boss): 瞬时远程弹幕招式 ring/spread/aimed/spiral(经 EnemyBulletManager 发射)
|
2026-07-23 10:12:21 +08:00 |
|
joywayer
|
f8b05551e2
|
feat(boss): BossManager 阶段状态机+漂移移动+进阶召唤+BOSS_PHASE_CHANGED/KILLED(招式骨架)
|
2026-07-23 10:06:28 +08:00 |
|
joywayer
|
2ed7b625bb
|
feat(boss): data/bosses.json — Mini(4)/Final(5) 三阶段招式配置(7 种 kind 全覆盖)
|
2026-07-23 10:03:24 +08:00 |
|
joywayer
|
531706ba62
|
feat(boss): EnemyManager 外部驱动移动接口(register/unregister_external_mover + set_entity_pos + 跳过)
|
2026-07-23 10:00:14 +08:00 |
|
joywayer
|
d4291722e8
|
feat(boss): combat_s2 敌方子弹 MultiMesh 渲染层(红粉区分玩家弹)
|
2026-07-23 09:55:22 +08:00 |
|
joywayer
|
f5d94a52f0
|
feat(boss): 新增 EnemyBulletManager 敌方子弹子系统(SoA 池 + vs 玩家碰撞)
|
2026-07-23 09:49:32 +08:00 |
|
 joywayerandClaude Opus 4.8
|
f4b8afed8a
|
docs(boss): 标注 §2.1 旧草案 Boss 事件编号(15/16/17)已被 29/30 取代/未实现
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 09:47:28 +08:00 |
|
joywayer
|
29d387aebc
|
feat(boss): 事件常量 BOSS_PHASE_CHANGED=29 / BOSS_KILLED=30 + 目录同步
|
2026-07-23 09:43:44 +08:00 |
|
 joywayerandClaude Opus 4.8
|
fb90e13dd7
|
docs(plan): Boss 阶段+攻击模式系统实现计划(12 任务,MCP 运行时验证)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 09:39:25 +08:00 |
|
 joywayerandClaude Opus 4.8
|
049e5930d6
|
docs(spec): Boss 招式增加近战 melee(原地近身范围打击)
区别于 dash 横穿冲撞,melee 为原地劈砍/砸地:前摇预警→melee_radius
内判定扣血→后摇。同步更新范围/设计器 kind 列表/验证项。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 09:29:50 +08:00 |
|
 joywayerandClaude Opus 4.8
|
7989d8d0fd
|
docs(spec): Boss 阶段+弹幕/位移攻击模式系统设计
阶段状态机 + 攻击模式注册表(环/扇/瞄准/旋转 + 冲刺/蓄力)+ 新建
EnemyBulletManager 敌方子弹 + 保留召唤援军 + 事件 29/30 + bosses.json
与设计器 Boss 分页。范围外:场地机制/通关演出/无敌帧/.tres。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 09:17:40 +08:00 |
|
joywayer
|
ef65cba162
|
docs(handbook): 07 游戏设计器同步字段化表单/双语/行编辑器现状
|
2026-07-22 15:52:52 +08:00 |
|
joywayer
|
17f6ce2ff0
|
docs: CLAUDE.md 新增编辑器插件/游戏设计器开发规范(字段化、撑满、双语、验证)
|
2026-07-22 15:40:27 +08:00 |
|
joywayer
|
831bb8d2a5
|
merge(designer): edges/aether_thresholds 改整数元组行编辑器(去 JSON)
|
2026-07-22 13:41:10 +08:00 |
|
joywayer
|
3b36c6e20a
|
chore(designer): 追踪 tuple_list_editor.gd.uid(与其它组件一致)
|
2026-07-22 12:27:24 +08:00 |
|
joywayer
|
04b6781678
|
feat(designer): 平衡碎片阈值改行编辑器(去 JSON)
|
2026-07-22 12:17:33 +08:00 |
|
joywayer
|
3b4a5f674c
|
feat(designer): Core 电路边改行编辑器(去 JSON)
|
2026-07-22 12:15:19 +08:00 |
|
joywayer
|
0d6d511c86
|
feat(designer): 新增整数元组列表行编辑器组件
|
2026-07-22 12:09:47 +08:00 |
|
joywayer
|
064b225e0b
|
docs(designer): 修正计划 — 行编辑器成员变量不标注类型
|
2026-07-22 12:08:15 +08:00 |
|
joywayer
|
4fee708287
|
docs(designer): 整数元组列表编辑器实现计划
|
2026-07-22 12:05:56 +08:00 |
|
joywayer
|
0967b3f10b
|
docs(designer): 整数元组列表编辑器设计(edges/aether 去 JSON)
|
2026-07-22 12:02:46 +08:00 |
|
joywayer
|
2e9b4be702
|
merge(designer): UI 优化(输入框撑满 + 元素复选框 + 双语标签 + 共鸣元素下拉)
|
2026-07-22 11:59:40 +08:00 |
|
joywayer
|
f8e810a2c0
|
docs(spell-editor): 元素标签改复选框说明
|
2026-07-22 11:14:42 +08:00 |
|
joywayer
|
c08d526a18
|
feat(designer): 波次/Core/状态 枚举标签归一为中英双语
|
2026-07-22 11:13:54 +08:00 |
|
joywayer
|
d17a4579d5
|
feat(designer): 共鸣配方元素 A/B 改下拉 + 匹配方式双语
|
2026-07-22 11:12:51 +08:00 |
|
joywayer
|
95af2e1db6
|
feat(spell-editor): 元素标签改复选框 + 选项双语显示
|
2026-07-22 11:11:27 +08:00 |
|
joywayer
|
1f00720f44
|
feat(designer): 输入框撑满面板 + 共享元素词表常量
|
2026-07-22 11:01:22 +08:00 |
|
joywayer
|
7b0843d8a9
|
docs(designer): UI 优化实现计划
|
2026-07-22 10:57:43 +08:00 |
|
joywayer
|
48d417d049
|
docs(designer): 既有双语标签归一为「中文 English」序
|
2026-07-22 10:54:14 +08:00 |
|
joywayer
|
d95ed67e63
|
docs(designer): UI 优化设计(布局撑满 + 元素复选框 + 双语标签)
|
2026-07-22 10:39:52 +08:00 |
|
joywayer
|
fffacf35c5
|
4.7版本打开
|
2026-07-22 10:15:27 +08:00 |
|
joywayer
|
b05e5c1f35
|
项目设置
|
2026-07-22 10:07:11 +08:00 |
|
joywayer
|
ce54998cdb
|
merge(spell-editor): 法术编辑器并入 game_designer + 字段化表单
|
2026-07-21 16:17:06 +08:00 |
|
joywayer
|
ac8a4e4392
|
docs(spell-editor): 清理对已删除 spell_editor 目录的悬挂引用
|
2026-07-21 16:15:06 +08:00 |
|
joywayer
|
ed89387f2e
|
docs(spell-editor): 手册改为字段化表单 + game_designer 入口
|
2026-07-21 16:09:33 +08:00 |
|
joywayer
|
29efa986c5
|
chore(spell-editor): 追踪 spell_tab.gd.uid(与其它 tab 一致)
|
2026-07-21 16:08:13 +08:00 |
|
 joywayerandClaude Opus 4.8
|
3e189206d5
|
refactor(spell-editor): 并入 game_designer tab,移除独立 spell_editor 插件
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 16:07:26 +08:00 |
|
joywayer
|
d7e051ffde
|
feat(spell-editor): 新增 game_designer 法术 tab(字段化表单)
|
2026-07-21 16:04:53 +08:00 |
|
joywayer
|
1a86757a77
|
docs(spell-editor): 字段化表单实现计划
|
2026-07-21 16:00:14 +08:00 |
|
joywayer
|
c7b6c9c0fa
|
docs(spell-editor): 法术编辑器并入 game_designer + 字段化表单设计
|
2026-07-21 15:54:09 +08:00 |
|
 joywayerandClaude Opus 4.8
|
93dffd71e1
|
merge(mana): Mana 系统完整化(递增蓝耗+infinite卖血+多来源魔力虹吸+HUD+平衡)
11 任务全绿:balance/PlayerStats/PlayerManager/SpellEvaluator 统一扣蓝门控、
魔力虹吸多来源重算、wand_eternal/heavy_cost/mana_leech 数据、Core 编辑器可调、
HUD 蓝条数字+低蓝+过热、平衡调数值、docs 现状更新、复审 heat 覆盖 LOOP/CIRCUIT+死亡防重入。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 15:37:03 +08:00 |
|
 joywayerandClaude Opus 4.8
|
4725c57c72
|
fix(mana): heat 依真实扣蓝(ctx标记)覆盖 LOOP/CIRCUIT 子路径+卖血不升热;死亡防重入
复审 nit:
- heat 之前仅在主循环 cast_fired 记录,LOOP 体/CIRCUIT 分支扣蓝漏记 → 递增蓝耗对这两类拓扑失效。
改为 _charge_mana 真实 spend_mana 成功时置 ctx.mana_spent_this_cast,施法末据此升 heat。
- 顺带修正 infinite 卖血(未真实扣蓝)也升 heat 的问题:卖血不升热。
- combat_manager._on_player_died 加 GAME_OVER 防重入(子弹命中+卖血同帧双死不重复结算)。
MCP 实测:LOOP heat 0.010(修复前0)、卖血 heat 0、线性回归 0.010。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 15:35:11 +08:00 |
|
 joywayerandClaude Opus 4.8
|
0fd01caebb
|
chore(mana): 完整化验收通过(Godot 4.6 运行时实测各机制+回归全绿)
递增蓝耗 heat/95.5、infinite 扣血 hp99、heavy_cost hp90、
持久内存回归 [0,0,1,0]、击杀回蓝 +10、多来源 leech 重算 999→0、HUD 蓝条数字均实测通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 15:29:16 +08:00 |
|
joywayer
|
a3ab2aa6cd
|
docs(mana): §4.1/§5.A 现状更新为 Mana 完整化已实现
|
2026-07-21 15:27:08 +08:00 |
|
joywayer
|
81f53e9435
|
balance(mana): 提高基础回蓝(+3)+降 spark 蓝耗(→3),基础杖能持续突突
|
2026-07-21 15:23:04 +08:00 |
|
joywayer
|
9fb7131323
|
feat(mana): HUD 蓝条数字+低蓝暗红+过热泛红 + UI_MANA 键
|
2026-07-21 15:21:19 +08:00 |
|
joywayer
|
301f731e6c
|
feat(mana): Core 编辑器加击杀回蓝(mana_leech)栏
|
2026-07-21 15:19:42 +08:00 |
|
joywayer
|
37f4d45e9f
|
feat(mana): wand_eternal(infinite)+modifier_heavy_cost/mana_leech 数据
|
2026-07-21 15:18:07 +08:00 |
|
joywayer
|
b55e6eaadf
|
feat(mana): 魔力虹吸多来源(Core base + 卡组 meta.mana_leech 求和,换杖重算)
|
2026-07-21 15:16:37 +08:00 |
|
joywayer
|
6b60f6e073
|
feat(mana): _charge_mana 统一门控(热值乘算+infinite扣血)+heavy_cost+HP结算
|
2026-07-21 15:15:07 +08:00 |
|
joywayer
|
c9f560c757
|
feat(mana): PlayerManager 每帧衰减 mana_heat + 换杖清零
|
2026-07-21 15:12:00 +08:00 |
|
joywayer
|
a57348a9f7
|
feat(mana): PlayerStats mana_heat/leech+gain_mana/spend_hp_cost+击杀回蓝;SpellContext hp_cost_accum
|
2026-07-21 15:10:54 +08:00 |
|
joywayer
|
7025f283f8
|
feat(mana): balance.json mana_heat/infinite_spells 配置 + SettingsManager getters
|
2026-07-21 15:09:28 +08:00 |
|
 joywayerandClaude Opus 4.8
|
ea01ff1939
|
docs: Mana 完整化实现计划(11 任务,MCP 运行时验证)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 15:03:35 +08:00 |
|