posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

全部文章 game golang 客户端开发 Minigame Saas rust Python Java cg Typescript
game

Godot 战斗浮字反馈:伤害数字、治疗和状态提示要有秩序

伤害数字和状态提示是战斗反馈的重要组成。数字飞出来,玩家知道攻击命中;绿色治疗出现,玩家知道技能生效;免疫、格挡、暴击、破盾等文字让战斗规则可读。问题是,浮字一多,画面会迅速变乱,性能也会下降。Godot 做浮字通常从 Label 加 Tween 开始,但正式战斗需要更完整的 FloatingTextSystem...

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

游戏服务器读写模型分离架构

游戏服务器既要处理严肃写入,也要支撑大量展示查询。背包扣减、奖励发放、战斗结算需要强规则;排行榜、玩家主页、公会列表、活动面板需要读得快。读写模型分离的价值,是让写入保持权威,让查询按展示优化。架构设计最怕两个极端:一种是过早复杂化,还没有真实压力就拆出一堆服务;另一种是长期大泥球,所有逻辑都挤在一起,等问题爆发...

8 分钟阅读
game

Godot 存档系统:Resource、JSON 和版本迁移怎么选

存档问题通常不是写文件,而是几年后还能读 Godot 做单机、买断制、轻联网项目时,本地存档非常关键。很多原型直接把字典转 JSON 写进 ,能存能读,看起来就完成了。真正上线后,问题会变复杂:版本更新后字段变了怎么办,写到一半断电怎么办,玩家改文件怎么办,云存档冲突怎么办,多角色 profile 怎么隔离,调试...

9 分钟阅读
Godot 存档系统 Resource
game

Godot 音频闪避优先级:对白、战斗和提示音别在同一秒打架

音频系统不只是把声音播放出来。剧情对白、战斗打击、UI 提示、环境声、音乐高潮、队友语音可能在同一秒发生。如果所有声音都按默认音量播放,玩家会听不清重点;如果随便压低某个 Bus,又可能让战斗反馈变弱。音频闪避 ducking 的作用,是让高优先级声音出现时,低优先级声音有节奏地让位。

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

Phaser 分支叙事对话系统:变量条件、回看记录和剧情状态不能临时拼

分支对话不是把文本一行行播完 Phaser 做剧情对话很容易起步:屏幕底部放一个对话框,点击显示下一句,遇到选项就显示几个按钮。问题在于分支叙事的复杂度不是来自文本播放,而是来自状态。玩家之前是否救过某个 NPC,背包里有没有钥匙,当前是否在雨天,阵营好感度是否超过 30,某个秘密是否已经被揭露,这些都会影响可见...

7 分钟阅读
game

Godot 客户端日志采样:信息足够定位,又不能把设备写爆

客户端日志是排查问题的最后证据,但日志不是越多越好。Godot 项目里常见两种极端:开发期到处 ,导出包里什么都没有;或者内测包日志全开,玩家设备上几分钟写出几十 MB,性能和存储都受影响。更稳的方式是把日志当成可观测性系统设计:分级、分类、采样、环形文件、敏感字段过滤、问题发生时打包上报。

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