posts

文章归档

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

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

全部文章

全部文章 Golang Game Minigame Saas Rust Python Java 游戏开发 客户端开发 GameDev

游戏服务器消息乱序缓冲架构:从丢包、重传到状态一致

背景:问题通常不是突然出现的 一款实时对战游戏在弱网下最常见的事故,并不是客户端彻底断线,而是玩家仍然能操作,但服务端看到的输入顺序已经和玩家屏幕上的顺序不同。比如第 138 帧的位移包先到,第 137 帧的技能取消包后到,如果房间服按到达顺序直接执行,就可能出现“明明已经闪避却被击中”或者“技能被取消后仍然结算...

9 分钟阅读

移动游戏创业失败复盘四:我开始学习和失败长期相处

移动游戏创业失败之后,我花了很久才明白,失败不是一次性事件。以前我以为失败像一个节点:项目停了,公司不做了,团队散了,钱花完了,结果出来了。这个节点当然存在,但它只是表面。真正的失败会在很长时间里继续影响你。它影响你怎么看机会,怎么看自己,怎么看团队,怎么看下一次开始。

9 分钟阅读

实时指令整形架构:限频不是把玩家操作简单丢掉

背景:架构问题通常藏在正常路径之外 实时游戏里,客户端一秒可以发几十个移动输入、瞄准方向、技能请求、交互动作和表情。如果服务端只做简单限频,超过阈值就丢包,玩家手感会变差;如果完全不限,异常客户端或脚本可以把房间线程和网关打满。实时指令整形的目标,是按指令价值处理流量:低价值合并,高价值保留,异常流量隔离。

8 分钟阅读

Steam 云存档实战:2021 年 8 月个人游戏如何规划文件、冲突提示、容量和跨设备恢复

一个经营游戏支持 Steam 云存档后,玩家从台式机切到笔记本,发现画质设置也被同步,笔记本低配直接卡顿。另一位玩家则因为两个设备同时玩,旧存档覆盖了新进度。云存档不是简单把整个目录同步。这篇文章按个人 Steam 项目的真实开发节奏写,不假设有专职工具组、测试组和发行团队。

7 分钟阅读

批量奖励领取架构:一键领取背后的幂等、容量和补偿

背景:架构问题通常藏在正常路径之外 玩家点击“一键领取”时,背后可能包含十几个任务奖励、活动奖励、邮件附件和通行证节点。每个奖励来源都有自己的状态和限制:任务是否完成,邮件是否过期,背包是否有空间,货币是否到上限,活动是否仍在开放。批量奖励领取架构要让这个动作既方便玩家,又不把服务端拖进一团跨系统事务。

8 分钟阅读

副本进度保存与恢复架构:断线、重登和跨服失败后的继续游戏

背景:架构问题通常藏在正常路径之外 副本玩法经常处在“时间长、状态多、奖励重”的交叉点。玩家打到最后一个 Boss 时断线,服务端实例因为空房被回收;玩家重登后希望继续,系统又要防止重复领奖、重复消耗门票和复制掉落。副本进度保存与恢复架构的核心,是把可恢复状态、不可恢复过程和奖励边界分清楚。

8 分钟阅读

移动游戏创业失败复盘三:小团队继续做游戏,必须换一种打法

移动游戏创业失败后,我越来越确定一件事:小团队如果还想继续做游戏,必须换一种打法。2015 年刚开始时,我虽然知道自己不是大厂,但脑子里很多做法仍然带着大厂影子。希望产品完整,希望系统可扩展,希望上线后能长期运营,希望客户端和服务端基础打扎实,希望后台和活动以后都能用。

10 分钟阅读

Steam 成就接入实战:2021 年 8 月个人游戏如何设计触发条件、离线缓存和反作弊边界

一个解谜游戏上线前两周才开始接成就。开发者以为只是调用一次解锁接口,实际遇到的问题包括本地状态和 Steam 状态不一致、离线游玩后没有补发、测试账号成就清不干净,以及隐藏成就文案泄露剧情。这篇文章按个人 Steam 项目的真实开发节奏写,不假设有专职工具组、测试组和发行团队。

7 分钟阅读