 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 |
|