posts

文章归档

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

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

全部文章

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

Godot 天气与环境特效预算:下雨要有气氛,也要有帧率

天气系统最容易从氛围变成性能事故 雨、雪、雾、风沙能快速提升场景氛围,但客户端实现不好,也会快速吞掉帧率。常见问题包括:雨粒子覆盖全地图,室内还在下雨;地面积水 shader 在低端机上过重;雾效和远景裁剪冲突;天气切换时音频突兀;拍照模式下粒子穿帮;多人同步里每个客户端看到的天气不同。

9 分钟阅读
Godot 游戏客户端 性能预算
game

Godot 多人大厅实践:ENet、房间状态和客户端准备流程

多人大厅是进入对局前的稳定器 Godot 的 MultiplayerAPI 和 ENet 能让多人原型很快跑起来:创建主机、客户端连接、RPC 同步玩家。真正做成游戏客户端时,问题不在于能不能连上,而在于大厅状态是否稳定。玩家加入、离开、准备、换角色、加载资源、主机断开、开始倒计时,每一步都要被所有客户端一致理解。

10 分钟阅读
Godot RPC
game

Godot 设置项迁移:选项改名、默认值变化和旧玩家偏好都要照顾

设置系统看似稳定,其实每个版本都可能变化:画质档位改名,阴影选项拆分,音频滑杆新增,输入配置迁移,可访问性默认值调整。新玩家可以直接使用新默认值,老玩家的偏好却不能被粗暴覆盖。设置迁移做不好,会让玩家更新后发现画质变了、按键丢了、字幕关了。

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

Godot 移动动画 BlendTree:起步、转身和刹停别只靠速度参数

速度参数不等于移动动画系统 单一 speed 参数能跑原型,但无法处理起步、急停、反向和锁定移动。这个问题在项目早期经常被当成小功能,等内容量、平台数量和运营节奏上来之后才暴露成本。Godot 客户端要做的不是写一个临时脚本,而是把它当成可验证、可回滚、可观测的系统来设计。

9 分钟阅读
Godot 游戏客户端

Phaser 游戏内邮件与通知:附件领取、过期和红点幂等要做扎实

邮箱是经济系统,不只是消息列表 游戏内邮箱看起来像 UI 功能:显示标题、正文、附件,玩家点领取。实际它经常承载补偿、活动奖励、排行榜结算、客服发奖、系统公告和回流礼包。只要有附件,邮箱就是经济系统的一部分。最糟糕的实现是客户端本地生成邮件,点击领取就往背包加物品,没有幂等、没有过期、没有领取记录。

9 分钟阅读

游戏客户端平台 SDK 集成:登录、成就和支付都不是复制示例代码

平台 SDK 集成经常被低估。很多人以为 SDK 就是复制示例代码:初始化、登录、拉用户信息、触发成就、发起支付。真实项目里麻烦多得多:SDK 初始化时机、离线模式、重复回调、渠道差异、沙盒和正式环境、支付掉单、成就延迟、隐私授权、平台覆盖层、崩溃符号、版本审核,每一项都可能影响上线。

7 分钟阅读
game

Godot 背包拖拽与堆叠拆分:一个格子移动背后有很多状态

背包拖拽不是 UI 小功能 背包系统的拖拽看起来只是把图标从一个格子拖到另一个格子,但它连接了物品数据、堆叠规则、装备槽、快捷栏、商店、仓库、网络校验和手柄操作。只在 Control 节点里写拖拽,很快会遇到各种边界:两个半堆药水合并到上限后剩余怎么办,拖到装备槽失败图标回哪儿,快捷栏引用的物品被移动后是否更新,...

9 分钟阅读
Godot 游戏客户端
game

Godot 断线重连后的世界重同步:连上服务器不等于能立刻继续玩

重连成功只是第一步 socket 重新连上只代表可以通信,断线期间世界已经继续变化。这个问题在项目早期经常被当成小功能,等内容量、平台数量和运营节奏上来之后才暴露成本。Godot 客户端要做的不是写一个临时脚本,而是把它当成可验证、可回滚、可观测的系统来设计。团队需要知道数据从哪里来,谁有权修改,失败后玩家看到什么。

9 分钟阅读
Godot 游戏客户端 断线重连