posts

Posts

全部文章 Game Golang SaaS Rust 游戏开发 客户端开发 GameDev Lua 写作 小说
游戏开发

Godot 战斗输入缓冲窗口:按键早一点晚一点都要有解释

问题不是玩家按慢了,而是客户端没有记住他按过 动作游戏里最容易吵起来的反馈之一,是玩家说“我明明按了”,程序看日志却说“这一帧状态不允许”。两边都没错。玩家按下攻击键时,角色可能正在落地硬直、上一段普攻的收招、翻滚的无敌后摇,或者网络模式下等待本地预测确认。

10 分钟阅读
Godot 游戏客户端 输入缓冲
游戏开发

Godot HitStop 与时间停顿:打击感不是随手暂停几帧

HitStop 是动作游戏里最直接的打击感手段之一。命中瞬间停顿几帧,玩家会感觉攻击更重;格挡时短暂冻结,反馈会更清楚。但 HitStop 也很容易写坏:全局暂停导致 UI、网络、粒子和音频一起卡住;多个命中叠加让角色像掉帧;恢复时动画不同步;联网场景中本地停顿影响预测。

8 分钟阅读
Godot 游戏客户端 客户端开发

Phaser 塔防索敌系统:炮塔、仇恨权重和弹道不要只写最近目标

塔防的第一手感来自“塔为什么打它” 很多 Phaser 塔防原型一开始会用最简单的逻辑:遍历范围内敌人,选择距离炮塔最近的一个,然后发射子弹。这个规则可以让炮塔动起来,却很快会暴露问题。快到终点的敌人明明快漏了,炮塔还在打刚进入范围的小怪;高护甲敌人被低伤害塔一直锁定,浪费输出;飞行怪经过时,地面塔误打;玩家升级...

9 分钟阅读
游戏开发

Godot 崩溃前状态快照:Crash Log 之外,还要知道玩家当时在做什么

为什么要单独设计 崩溃日志能告诉你哪里崩了,却不一定告诉你玩家当时在做什么。是在切场景、打开背包、领取奖励、下载资源、还是进入 Boss 战?如果只有堆栈,很多问题仍然很难复现。崩溃前状态快照用一个小型环形缓冲记录最近的关键状态,崩溃后保存,下一次启动用于恢复和诊断。

9 分钟阅读
Godot 游戏客户端 崩溃诊断

游戏客户端调试菜单设计:给研发和测试一把可靠的手电筒

客户端调试菜单经常被做成一堆临时按钮:加金币、跳关、清缓存、开 FPS、传送、模拟断网。早期很方便,后期却可能变成新的风险源:测试不知道哪个按钮能用,研发忘记某个开关进了正式包,灰度问题无法导出完整上下文。一个好的调试菜单,应该是研发和测试共同使用的工程工具,而不是临时作弊面板。

8 分钟阅读
Game

Godot 编辑器数据与运行时存档:关卡元数据如何安全进入客户端

编辑器里填的数据,不等于玩家存档 Godot 编辑器很适合让开发者在场景里填数据:怪物出生点、宝箱掉落、NPC 对话、触发区域、相机边界、背景音乐、任务 ID。导出变量和 Resource 让这些数据很容易被内容人员编辑。问题是,很多项目没有区分“编辑器创作数据”和“运行时玩家状态”。

9 分钟阅读
Godot 编辑器数据 运行时存档
游戏开发

Godot 布娃娃倒地与起身恢复:物理演出结束后还要回到可控角色

为什么这个系统值得单独设计 布娃娃能让重击、爆炸、死亡更有冲击力,但活着的角色不能永远躺成一团。玩家被炸飞后,客户端要在物理演出、碰撞安全、姿态匹配、起身动画和控制权恢复之间做顺滑交接。Godot 的物理骨骼可以做出效果,真正难的是结束时回到可控角色,而且不穿地、不抽搐、不瞬移。

9 分钟阅读
Godot 游戏客户端 物理动画

Phaser 房间装饰编辑器:家具吸附、层级、保存和撤销

为什么值得单独做成系统 社交小游戏里,玩家布置自己的小屋:把沙发贴到墙边,旋转地毯,叠放盆栽和矮桌,保存后邀请朋友访问。这个体验看起来轻松,但编辑器一旦不好用,玩家会很快放弃创作。房间装饰不是自由拖 Sprite。家具有占地、层级、墙面挂件、地面物件、碰撞、吸附、撤销、保存和分享码。

8 分钟阅读
游戏开发

Godot 剧情条件图谱:任务能不能触发,不该散落在十几个脚本里

为什么这个系统值得单独做 剧情和任务做多后,触发条件很容易散落在 NPC 脚本、场景脚本、对话脚本和任务表里。玩家明明完成了前置,却没触发后续;或者某个活动提前解锁。条件分散时,QA 很难知道缺了什么。条件图谱把 world flags、任务状态、物品、地点和对话选择集中表达,让触发原因可解释。

9 分钟阅读
Godot 游戏客户端 剧情条件