posts

Posts

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

Godot 音频延迟校准:节奏、打击和语音别各自慢半拍

为什么要单独治理 战斗打击音效在手机扬声器上很准,换成蓝牙耳机后明显晚半拍;节奏小游戏里玩家总是 early,剧情语音和字幕偶尔对不上。团队一开始怀疑动画事件,后来发现不同输出设备的音频延迟差异很大。音频延迟不是音效系统自己的事,它会影响输入判定、动画事件、字幕时间轴和玩家对打击感的判断。

9 分钟阅读
Godot 性能优化 音频
游戏开发

Godot 客户端崩溃后恢复:启动自检、隔离模式与玩家可继续性

背景:崩溃后恢复为什么值得单独设计 崩溃日志很重要,但玩家更关心下一次能不能正常进游戏。我们遇到过一个事故:某个活动资源包里有损坏贴图,玩家进入活动页崩溃;重启后大厅自动恢复上次路由,又进入活动页,再次崩溃,形成循环。还有一次设置里打开高画质导致低端机启动即崩,玩家无法进设置关掉。

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

Godot 帧调度与分帧任务:把一次性卡顿拆成可控工作流

背景:帧预算任务调度为什么值得单独设计 很多卡顿不是单个操作太慢,而是太多操作挤在同一帧。打开活动页时创建 200 个奖励节点,切换关卡时实例化一批装饰,背包筛选时刷新所有 Cell,战斗结算时同时播放奖励、更新任务、写存档、打埋点。每件事单独看都能接受,叠在一帧就爆了。

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

Godot 本地分屏协作:多 Viewport、多输入和 UI 焦点怎么不乱

本地分屏合作听起来像复古功能,但做起来一点都不简单。两个玩家共用一台设备,意味着输入设备要分配,镜头要分屏或动态合并,UI 焦点不能互相抢,暂停菜单要知道是谁打开的,性能预算还要乘以多个视口。Godot 的 Viewport 和输入系统能支持这些需求,但需要清晰架构。

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

Godot 资源缓存与内存预算:什么时候保留,什么时候释放

背景:资源缓存与内存预算不是一个孤立功能 资源加载慢,所以我们想缓存;内存爆了,所以我们想释放。项目做到中后期,这两个目标会不断冲突。大厅、战斗、活动、角色预览、拍照模式都想保留自己的资源,低端机运行半小时后内存慢慢上涨,最后在切场景时崩溃。

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

Godot 云游戏输入抖动平滑:延迟会变,玩家意图不能跟着飘

为什么要单独治理 同一套 Godot 客户端在本机运行时操作很跟手,接入云游戏串流后,玩家反馈“方向偶尔飘”“闪避有时晚半拍”。日志显示平均延迟不算高,但延迟抖动很大:一段时间 35ms,一段时间 90ms,偶尔跳到 160ms。云游戏输入不是简单接受网络延迟,而是要在采样、缓冲、预测、反馈之间找到稳定感。

9 分钟阅读
Godot 输入 网络