<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>软件工程 on PlumePHP</title><link>https://plumephp.com/categories/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/</link><description>Recent content in 软件工程 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 06 Oct 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/categories/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>27. 面向对象基础</title><link>https://plumephp.com/cs-object-oriented-basics/</link><pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-object-oriented-basics/</guid><description>系统掌握面向对象核心：封装（访问控制/信息隐藏）、继承（is-a 与组合优先）、多态（重载/重写/接口多态）、抽象类与接口的区别、SOLID 设计原则、组合优于继承、以及 OOP 在工程中的设计取舍与常见反模式。</description></item><item><title>32. 加密与安全基础</title><link>https://plumephp.com/cs-cryptography-basics/</link><pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-cryptography-basics/</guid><description>系统梳理密码学核心构件：机密性/完整性/认证/不可否认四大安全目标、对称加密 AES 与分组密码工作模式、非对称加密 RSA 与 ECC 的数学基础、哈希函数的抗碰撞与雪崩效应、HMAC 与密钥派生、数字签名与证书链，以及 TLS 握手的完整流程与工程落地避坑。</description></item><item><title>33. 分布式系统基础</title><link>https://plumephp.com/cs-distributed-systems-basics/</link><pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-distributed-systems-basics/</guid><description>建立分布式系统的完整心智模型：为什么必须分布、故障模型与部分失效、CAP 定理的正确理解与 PACELC 补充、线性一致性与因果一致性等一致性谱系、主从与去中心复制策略、Raft 共识算法的选举与日志复制流程、逻辑时钟与全序广播，以及幂等、重试、熔断等工程实践。</description></item><item><title>34. 编程范式与类型系统</title><link>https://plumephp.com/cs-programming-paradigms/</link><pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-programming-paradigms/</guid><description>梳理主流编程范式的思想内核与取舍：命令式与结构化编程、面向对象的封装继承多态、函数式的纯函数与不可变性、声明式与逻辑式编程的思维方式、静态类型与动态类型及类型推导、代数和类型与泛型，以及多范式语言如何融合各类范式并给出选型建议。</description></item><item><title>35. 形式语言与自动机</title><link>https://plumephp.com/cs-formal-languages-automata/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-formal-languages-automata/</guid><description>从乔姆斯基层级出发，系统梳理形式语言与计算模型的对应关系：DFA/NFA 与子集构造法、正则表达式与正则语言的等价性、泵引理证明能力的边界、下推自动机与上下文无关文法及 CYK 算法、图灵机与丘奇-图灵论题，最后落到停机问题与可判定性，并串起编译原理中词法与语法分析的工程衔接。</description></item><item><title>36. 信息论与数据压缩</title><link>https://plumephp.com/cs-information-theory-compression/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-information-theory-compression/</guid><description>从香农信息量与熵的直觉出发，串联联合熵、条件熵与互信息，推导信源编码定理给出的压缩下界；深入 Huffman 编码的构造与最优性、算术编码的区间思想、LZ77/LZ78/LZW 字典压缩，以及 DEFLATE 与 zstd 的工程取舍；最后覆盖 DCT 与 JPEG 的有损压缩流程、汉明码与 RS 码入门，以及压缩比与 CPU 成本的权衡。</description></item><item><title>37. 虚拟化与容器原理</title><link>https://plumephp.com/cs-virtualization-containers/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-virtualization-containers/</guid><description>梳理虚拟化层次划分、全虚拟化与半虚拟化、VT-x 与 AMD-V 硬件辅助，讲清 Hypervisor 两类架构与 KVM、QEMU 的分工，内存虚拟化的影子页表与 EPT、virtio 的 I/O 路径，再拆解容器本质即 namespace 加 cgroup 加联合文件系统，配合 unshare、runc 实操与 seccomp、capabilities 隔离。</description></item><item><title>38. 并行计算与 GPU 编程模型</title><link>https://plumephp.com/cs-parallel-gpu-computing/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-parallel-gpu-computing/</guid><description>从 SIMD 与 SIMT 分类出发，梳理 Amdahl 与 Gustafson 并行性能定律，讲解 OpenMP 共享内存并行与 false sharing、数据竞争的成因，深入 MPI 点对点与集合通信，再到 GPU 的线程层次、warp、共享内存与合并访存，对照 CUDA 与 OpenCL 概念，并给出前缀和、矩阵乘、归约三类并行算法要点。</description></item><item><title>39. 计算机图形学基础</title><link>https://plumephp.com/cs-computer-graphics-basics/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-computer-graphics-basics/</guid><description>沿渲染管线逐级展开图形学核心概念：从模型视图投影矩阵与齐次坐标的变换链，到 Lambert、Phong、Blinn-Phong 光照模型与 BRDF 入门，再讲纹理映射与 Mipmap 采样、深度缓冲与 Z-fighting、背面剔除与视锥裁剪，并对比光栅化与光线追踪两种范式，最后落到着色器职责、伽马校正与 MSAA 抗锯齿。</description></item><item><title>40. 存储系统与 RAID 原理</title><link>https://plumephp.com/cs-storage-systems-raid/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-storage-systems-raid/</guid><description>从存储层次与磁盘、SSD 的物理特性出发，讲清寻道与旋转延迟、FTL、写放大与磨损均衡，系统梳理 RAID 0/1/5/6/10 的数据布局与容错模型、奇偶校验与重建、写惩罚与写洞，并延伸到可靠性建模、4K 对齐、页缓存与块层存储栈，最后对比分布式存储的副本与纠删码并讨论 SSD 时代的 RAID 取舍。</description></item><item><title>文章归档</title><link>https://plumephp.com/posts/</link><pubDate>Mon, 05 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/posts/</guid><description>PlumePHP 全站文章的归档入口，按时间倒序汇总各专题的技术文章，并提供按主题浏览的专题分类入口。</description></item><item><title>GraphQL 代码生成与端到端类型安全：graphql-codegen 实战</title><link>https://plumephp.com/graphql-codegen-type-safety-workflow/</link><pubDate>Sun, 04 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/graphql-codegen-type-safety-workflow/</guid><description>用 graphql-codegen 打通从 Schema 到客户端的端到端类型安全：Typed Document Node、fragment colocation 与复用、多端（Web / RN / Node）生成策略、与 TypeScript 类型系统的衔接、CI 漂移校验与常见陷阱。</description></item><item><title>GraphQL Schema 治理与 Registry：破坏性变更检测与 CI 门禁</title><link>https://plumephp.com/graphql-schema-governance-registry/</link><pubDate>Sun, 04 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphql-schema-governance-registry/</guid><description>GraphQL Schema 治理体系实战：破坏性变更的分类与自动检测、Schema Registry 的核心能力、快照与 diff 工作流、字段弃用生命周期、版本策略与多团队评审机制，以及把校验嵌入 CI 流水线形成门禁。</description></item><item><title>GraphQL 文件上传与流式传输：multipart 到流式响应</title><link>https://plumephp.com/graphql-file-upload-streaming/</link><pubDate>Tue, 29 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/graphql-file-upload-streaming/</guid><description>GraphQL 文件上传与流式传输实战：multipart 上传规范（graphql-multipart-request-spec）、Upload 标量与服务端处理（Apollo/yoga）、大文件分片与进度、文件下载与流式响应、@defer/@stream 增量交付、字节流与二进制数据的 schema 建模、存储集成（S3/对象存储）与安全性、上传的授权与配额、以及流式订阅在实时数据上的工程实践。</description></item><item><title>GraphQL 工具链与代码生成：从 Codegen 到类型安全</title><link>https://plumephp.com/graphql-tooling-ecosystem/</link><pubDate>Tue, 29 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphql-tooling-ecosystem/</guid><description>GraphQL 工具链全景：GraphQL Code Generator 与类型安全、schema 优先 vs 代码优先开发流程、服务端框架选型（Apollo Server/graphql-yoga/gqlgen/NestJS）、客户端代码生成（typed queries/React hooks/Svelte）、验证与格式化（eslint-plugin-graphql/GraphQL LSP）、schema 检查（Schema Registry 与 breaking change 检测）、以及工具链在 CI/CD 与 Monorepo 中的落地。</description></item><item><title>个人游戏技术选型案例：跨平台存档路径为什么不能随手放在游戏目录</title><link>https://plumephp.com/solo-game-tech-case-cross-platform-save-paths/</link><pubDate>Sun, 07 Jun 2026 16:44:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-cross-platform-save-paths/</guid><description>一个个人游戏在跨平台存档路径、配置文件、权限、Steam Cloud 和便携版之间做技术选型的案例，详细讨论 Windows、macOS、Linux 和玩家迁移。</description></item><item><title>个人游戏技术选型案例：Steam Deck 适配为什么先改 UI 和功耗</title><link>https://plumephp.com/solo-game-tech-case-steam-deck-ui-performance/</link><pubDate>Sun, 07 Jun 2026 11:47:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-steam-deck-ui-performance/</guid><description>一个个人策略游戏在 Steam Deck 适配中对 UI、输入、性能档位、字体和测试流程做技术取舍的案例，详细讨论掌机体验与桌面版的差异。</description></item><item><title>个人游戏技术选型案例：崩溃日志为什么选择玩家可控的诊断包</title><link>https://plumephp.com/solo-game-tech-case-crash-reporting-diagnostics/</link><pubDate>Sat, 06 Jun 2026 18:25:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-crash-reporting-diagnostics/</guid><description>写在前面：玩家说“打不开”，你需要更多信息 个人游戏发售后，最让开发者焦虑的反馈之一是： “游戏打不开。” “进第二章就闪退。” “昨天还可以，今天读档崩了。” “我点开始没反应。” 这些反馈很真实，但信息不够。</description></item><item><title>个人游戏技术选型案例：UI 架构为什么从面板脚本改成事件驱动</title><link>https://plumephp.com/solo-game-tech-case-ui-architecture-mvc-signals/</link><pubDate>Sat, 06 Jun 2026 09:21:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-ui-architecture-mvc-signals/</guid><description>一个个人经营游戏在面板脚本直连、MVC、MVVM 和事件驱动 UI 之间做技术选型的案例，详细讨论库存、状态刷新、弹窗、测试和维护成本。</description></item><item><title>个人游戏技术选型案例：资源加载为什么从直接引用改成分组加载</title><link>https://plumephp.com/solo-game-tech-case-asset-loading-addressables/</link><pubDate>Fri, 05 Jun 2026 13:17:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-asset-loading-addressables/</guid><description>一个个人 2D 冒险游戏在直接资源引用、Resources 目录、Addressables 和自定义资源清单之间做技术选型的案例，详细讨论包体、加载卡顿、内存和发布复杂度。</description></item><item><title>个人游戏技术选型案例：竞速游戏回放为什么只记录输入而不是录视频</title><link>https://plumephp.com/solo-game-tech-case-replay-ghost-deterministic/</link><pubDate>Thu, 04 Jun 2026 08:56:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-replay-ghost-deterministic/</guid><description>写在前面：回放系统不是录屏功能 个人开发者做竞速、动作挑战、速通类游戏时，经常想加回放。玩家跑出好成绩，可以回看。也可以和自己的最佳成绩比赛。甚至可以分享给朋友。很多人第一反应是录视频。但游戏里的回放系统，通常不是录屏。</description></item><item><title>个人游戏技术选型案例：程序生成为什么选择种子房间而不是纯随机地图</title><link>https://plumephp.com/solo-game-tech-case-procedural-generation-seeded-rooms/</link><pubDate>Wed, 03 Jun 2026 09:42:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-procedural-generation-seeded-rooms/</guid><description>一个个人 Roguelite 游戏在纯随机生成、手工关卡和种子房间组合之间做技术选型的案例，详细讨论可控难度、内容产能、调试和玩家公平感。</description></item><item><title>个人游戏技术选型案例：物理解谜为什么没有直接依赖完整物理引擎</title><link>https://plumephp.com/solo-game-tech-case-physics-engine-vs-custom/</link><pubDate>Tue, 02 Jun 2026 16:12:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-physics-engine-vs-custom/</guid><description>写在前面：物理效果自然，不等于适合解谜 个人开发者做物理解谜游戏时，很容易先接入完整物理引擎。刚体、碰撞、关节、摩擦、弹力、重力，一切都现成。原型也很快能动起来。但物理解谜有一个特别敏感的问题： 玩家失败时，必须觉得是自己判断错了，而不是系统飘了。</description></item><item><title>个人游戏技术选型案例：敌人 AI 为什么选择有限状态机而不是行为树</title><link>https://plumephp.com/solo-game-tech-case-ai-behavior-tree-vs-state-machine/</link><pubDate>Mon, 01 Jun 2026 15:28:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-ai-behavior-tree-vs-state-machine/</guid><description>一个个人潜行动作游戏在有限状态机、行为树和 GOAP 之间做敌人 AI 技术选型的案例，详细讨论可调试性、关卡脚本、警戒状态和个人开发维护成本。</description></item><item><title>个人游戏技术选型案例：本地化管线为什么要先处理字体和文本长度</title><link>https://plumephp.com/solo-game-tech-case-localization-pipeline-fonts/</link><pubDate>Mon, 01 Jun 2026 10:34:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-localization-pipeline-fonts/</guid><description>写在前面：本地化不是把文本交给翻译 很多个人开发者谈本地化时，第一反应是： 把中文导出来。导回英文、日文、德文。真正做过一次后才会发现，本地化首先是工程问题。文本从哪里来？ 字体能不能显示？ UI 是否会溢出？ 术语是否一致？ 构建时能不能发现缺翻译？ 玩家切语言后存档、成就、教程提示会不会出错？</description></item><item><title>个人游戏技术选型案例：埋点分析为什么选择轻量本地优先方案</title><link>https://plumephp.com/solo-game-tech-case-analytics-privacy-lightweight/</link><pubDate>Sat, 30 May 2026 13:36:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-analytics-privacy-lightweight/</guid><description>一个个人游戏在第三方分析 SDK、自建事件服务和本地匿名日志之间做技术选型的案例，详细讨论隐私、调试、Demo 数据、关卡流失和合规成本。</description></item><item><title>个人游戏开发者失败案例：把社区反馈管成了压力源</title><link>https://plumephp.com/solo-game-dev-case-failure-community-overcontrol/</link><pubDate>Sun, 24 May 2026 19:38:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-community-overcontrol/</guid><description>写在前面：听玩家和被玩家拖着走不是一回事 江也做了一款小队战术游戏。玩家控制三名角色在狭窄街区里执行任务，核心玩法是利用视野、噪音和同步行动避开敌人。早期 Demo 反馈不错。玩家喜欢“像策划一次偷袭”的感觉。</description></item><item><title>个人游戏技术选型案例：Mod 支持为什么先从 JSON 关卡开始</title><link>https://plumephp.com/solo-game-tech-case-mod-support-json-workshop/</link><pubDate>Sat, 23 May 2026 20:27:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-mod-support-json-workshop/</guid><description>一个个人策略游戏在无 Mod、JSON 关卡、Lua 脚本和 Steam Workshop 之间做技术选型的案例，详细讨论安全、编辑器、兼容性和维护范围。</description></item><item><title>个人游戏开发者失败案例：存档系统最后才做的代价</title><link>https://plumephp.com/solo-game-dev-case-failure-no-save-system/</link><pubDate>Mon, 18 May 2026 11:51:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-no-save-system/</guid><description>写在前面：存档不是最后加上的按钮 孟舟做了一款横版动作冒险游戏。游戏有地图探索、道具收集、支线任务和角色升级。前期开发很顺，他能快速做新区域、新敌人和新能力。为了保持速度，他一直用调试入口测试。想测第三章，就直接从第三章开始；想测某个技能，就在编辑器里勾选。</description></item><item><title>个人游戏技术选型案例：发布流程为什么从手动打包改成半自动管线</title><link>https://plumephp.com/solo-game-tech-case-build-release-pipeline/</link><pubDate>Sat, 16 May 2026 11:09:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-build-release-pipeline/</guid><description>一个个人游戏在手动导出、脚本化构建和完整 CI/CD 之间做技术选型的案例，详细讨论版本号、平台包、校验清单、Steam 上传和发布风险。</description></item><item><title>个人游戏开发者失败案例：先画世界再找玩法的 RPG</title><link>https://plumephp.com/solo-game-dev-case-failure-art-first-rpg/</link><pubDate>Tue, 12 May 2026 09:33:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-art-first-rpg/</guid><description>写在前面：漂亮世界不能替代玩家行为 何霁是一名美术出身的个人开发者。他想做一款俯视角 RPG。故事发生在漂浮群岛上，每座岛都有不同风俗和神话。早期概念图非常漂亮：云海、断桥、风车塔、背着玻璃灯的旅人。</description></item><item><title>个人游戏技术选型案例：音频系统为什么没有一开始就接 FMOD</title><link>https://plumephp.com/solo-game-tech-case-audio-fmod-vs-engine/</link><pubDate>Sun, 10 May 2026 15:41:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-audio-fmod-vs-engine/</guid><description>一个个人叙事探索游戏在引擎内置音频、FMOD 和自定义音频管理之间做技术选型的案例，详细讨论动态音乐、环境声、混音、授权和制作成本。</description></item><item><title>个人游戏开发者失败案例：开放世界梦想把项目拖垮</title><link>https://plumephp.com/solo-game-dev-case-failure-open-world-dream/</link><pubDate>Wed, 06 May 2026 15:42:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-open-world-dream/</guid><description>写在前面：地图变大后，空白也会变大 秦越想做一款开放世界生存游戏。玩家在一座洪水退去后的城市里寻找物资、修复避难所、和零散幸存者交易。这个设定很有画面感：高楼底层被淤泥覆盖，地铁入口长满水草，夜晚能听到远处发电机声。</description></item><item><title>个人游戏技术选型案例：输入系统为什么不能只按键盘写死</title><link>https://plumephp.com/solo-game-tech-case-input-system-controller-remap/</link><pubDate>Mon, 04 May 2026 09:18:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-input-system-controller-remap/</guid><description>一个个人动作冒险游戏在旧输入代码、引擎输入系统和自定义映射层之间做技术选型的案例，详细讨论键鼠、手柄、重绑定、教程提示和可访问性。</description></item><item><title>个人游戏开发者失败案例：最后才想起本地化的冒险游戏</title><link>https://plumephp.com/solo-game-dev-failure-localization-afterthought/</link><pubDate>Sat, 25 Apr 2026 22:18:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-localization-afterthought/</guid><description>写在前面：本地化不是发布前翻译一下 魏川做了一款 2D 冒险游戏。故事发生在一座北方小城，玩家扮演返乡的年轻人，在旧书店、河堤、公交站和亲戚饭桌之间寻找父亲留下的线索。游戏文本量不算巨大，大约 7 万中文字。</description></item><item><title>个人游戏开发者失败案例：没有编辑器的叙事游戏</title><link>https://plumephp.com/solo-game-dev-failure-narrative-game-no-editor/</link><pubDate>Mon, 20 Apr 2026 18:07:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-narrative-game-no-editor/</guid><description>写在前面：叙事游戏失败时，常常不是因为故事不好 唐临做的是一款分支叙事游戏。玩家扮演一个小城电台主持人，每晚接听听众电话。不同回答会影响来电者命运，也会改变城市新闻、同事关系和最终结局。早期原型只有三个电话，却已经很有味道。玩家会纠结是否劝一个高中生离家，会犹豫要不要公开一名工厂工人的爆料。</description></item><item><title>个人游戏开发者失败案例：手感差一点的平台跳跃游戏</title><link>https://plumephp.com/solo-game-dev-failure-platformer-polish-gap/</link><pubDate>Fri, 17 Apr 2026 13:44:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-platformer-polish-gap/</guid><description>写在前面：差一点，就是差很多 沈砚做了一款像素风平台跳跃游戏。主角是一名送信人，可以二段跳、冲刺、贴墙滑落。游戏有 6 个章节，每章 8 到 10 个小关卡，最后还有一个计时挑战模式。从截图看，它很完整。</description></item><item><title>个人游戏开发者失败案例：恐怖游戏 Demo 爆火后的崩盘</title><link>https://plumephp.com/solo-game-dev-failure-horror-demo-hype/</link><pubDate>Sat, 11 Apr 2026 20:31:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-horror-demo-hype/</guid><description>写在前面：爆火有时比冷启动更危险 顾然做了一款第一人称恐怖游戏 Demo。场景是一栋废弃公寓。玩家要在暴雨夜里寻找妹妹留下的录音带，楼道灯忽明忽暗，墙上的住户门牌会随进度变化。Demo 很短，20 分钟左右。</description></item><item><title>个人游戏开发者失败案例：困在数值平衡里的 Roguelike</title><link>https://plumephp.com/solo-game-dev-failure-roguelike-balance-trap/</link><pubDate>Sun, 05 Apr 2026 16:43:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-roguelike-balance-trap/</guid><description>写在前面：平衡不能拯救一个不好玩的循环 许澈做的是一款俯视角 Roguelike 射击游戏。玩家操控一个废土清道夫，在随机生成的工厂里搜集零件、改造武器、击败机械怪物。纸面设计很完整：8 种武器、36 个被动道具、5 个区域、3 个 Boss，还有一套零件合成系统。</description></item><item><title>个人游戏开发者失败案例：承诺太多的治愈系农场游戏</title><link>https://plumephp.com/solo-game-dev-failure-cozy-farming-overpromise/</link><pubDate>Thu, 02 Apr 2026 09:26:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-cozy-farming-overpromise/</guid><description>写在前面：玩家喜欢的，未必是你能做完的 周宁最初只想做一款很小的农场游戏。玩家在海边小镇种菜、钓鱼、修补房子，白天听海浪声，晚上和镇民聊天。第一版原型只有三块田、两种作物、一个杂货店老板和一只会在门口睡觉的猫。</description></item><item><title>个人游戏技术方案案例：2D 游戏卡顿时，为什么先改资源管线而不是换渲染方案</title><link>https://plumephp.com/solo-game-tech-case-2d-performance-rendering/</link><pubDate>Mon, 30 Mar 2026 11:54:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-2d-performance-rendering/</guid><description>写在前面：卡顿不一定说明引擎不行 个人开发者遇到性能问题时，很容易怀疑底层方案。“是不是 Unity 2D 不行？” “是不是要改成自写渲染？” “是不是要换引擎？” “是不是必须上 ECS？” 这些问题有时成立，但大多数时候太早。</description></item><item><title>个人游戏开发者成功案例：一款温和移动小游戏如何靠订阅之外活下来</title><link>https://plumephp.com/solo-game-dev-success-cozy-mobile/</link><pubDate>Wed, 25 Mar 2026 17:35:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-cozy-mobile/</guid><description>一个个人开发者移动小游戏成功案例：开发者没有追逐重度内购，而是通过低价去广告、装饰包、温和更新和社交传播，让一款舒缓小游戏形成稳定收入。</description></item><item><title>个人游戏开发者失败案例：没有考虑读档行为的策略游戏</title><link>https://plumephp.com/solo-game-dev-case-failure-save-scumming-design/</link><pubDate>Mon, 23 Mar 2026 16:28:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-save-scumming-design/</guid><description>写在前面：玩家会用系统允许的一切方式玩 许墨做了一款选择驱动的策略游戏。玩家管理一支小型探险队，在荒原上决定路线、分配补给、处理队员冲突和随机事件。游戏的核心是风险：你永远不知道下一段路会遇到什么。内测时，许墨发现一个问题。</description></item><item><title>个人游戏技术方案案例：剧情和关卡数据为什么没有直接写进代码</title><link>https://plumephp.com/solo-game-tech-case-content-pipeline-notion-csv/</link><pubDate>Mon, 23 Mar 2026 16:08:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-content-pipeline-notion-csv/</guid><description>一个个人叙事游戏在内容管线、表格数据、脚本导入和编辑器工具之间做技术选择的案例，详细讨论 CSV、JSON、Notion、校验和版本管理。</description></item><item><title>个人游戏开发者成功案例：从失败 RPG 里拆出一款畅销小游戏</title><link>https://plumephp.com/solo-game-dev-success-from-failed-rpg/</link><pubDate>Sun, 22 Mar 2026 08:49:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-from-failed-rpg/</guid><description>一个个人开发者从失败大项目中拆出成功小游戏的案例：原本做不完的 RPG 被拆解成一款独立战斗构筑游戏，范围缩小后反而获得销量和口碑。</description></item><item><title>个人游戏开发者成功案例：没有全球爆红，却在本地市场卖得很好</title><link>https://plumephp.com/solo-game-dev-success-local-market/</link><pubDate>Thu, 19 Mar 2026 19:23:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-local-market/</guid><description>一个个人开发者聚焦本地文化题材获得成功的案例：游戏没有全球爆红，但凭借真实生活细节、地方媒体传播和本地玩家共鸣，获得稳定销量和线下机会。</description></item><item><title>个人游戏开发者失败案例：移动端测试不足毁掉首发</title><link>https://plumephp.com/solo-game-dev-case-failure-no-qa-mobile/</link><pubDate>Tue, 17 Mar 2026 21:42:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-no-qa-mobile/</guid><description>写在前面：手机游戏不是在你手机上能跑就行 赵闻做了一款移动端动作跑酷游戏。玩家控制一名快递员在城市屋顶穿梭，滑铲、跳跃、抓绳、翻越障碍。游戏节奏轻快，关卡短，很适合手机。开发过程中，他主要在自己的两台设备上测试。</description></item><item><title>个人游戏技术方案案例：排行榜要不要自建后端</title><link>https://plumephp.com/solo-game-tech-case-no-backend-leaderboard/</link><pubDate>Tue, 17 Mar 2026 09:35:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-no-backend-leaderboard/</guid><description>写在前面：能联网，不代表应该自建后端 很多个人开发者做游戏时，会自然想加一点在线功能。排行榜、每日挑战、云存档、玩家数据、活动公告。这些功能听起来能提高留存，也能让游戏显得更完整。但只要涉及自建后端，项目就不再只是游戏客户端。</description></item><item><title>个人游戏技术方案案例：存档系统为什么要从第一周开始设计</title><link>https://plumephp.com/solo-game-tech-case-save-system-local-first/</link><pubDate>Wed, 11 Mar 2026 14:47:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-save-system-local-first/</guid><description>写在前面：存档不是最后加一个保存按钮 很多个人游戏项目早期只关心玩法能不能跑。存档常常被放到后面： “先用临时 JSON 存一下。” “等内容稳定了再做正式存档。” “发售前补上云同步就行。” 这种想法很常见，也很危险。</description></item><item><title>个人游戏开发者成功案例：失败游戏里拆出一个赚钱的关卡工具</title><link>https://plumephp.com/solo-game-dev-success-tool-from-game/</link><pubDate>Tue, 10 Mar 2026 11:44:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-tool-from-game/</guid><description>一个个人游戏开发者从失败项目中拆出成功工具的案例：游戏没有完成，但内部关卡编辑器被整理成商业工具，卖给其他小团队并形成稳定现金流。</description></item><item><title>个人游戏开发者成功案例：把儿童编程做成一款能卖的解谜游戏</title><link>https://plumephp.com/solo-game-dev-success-educational-game/</link><pubDate>Sat, 07 Mar 2026 15:06:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-educational-game/</guid><description>一个个人开发者教育游戏成功案例：开发者避开枯燥课程形态，把儿童编程概念做成关卡解谜，并通过学校试用、家长口碑和低维护版本获得稳定收入。</description></item><item><title>个人游戏开发者失败案例：AI NPC 让小镇游戏失去边界</title><link>https://plumephp.com/solo-game-dev-case-failure-ai-npc-scope/</link><pubDate>Thu, 05 Mar 2026 15:49:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-ai-npc-scope/</guid><description>写在前面：会说话，不等于有生命 邵宁想做一款小镇生活游戏。玩家经营一家旧杂货铺，每天和镇民聊天、进货、整理货架、处理邻里小事。项目最初很小，只有 8 个固定 NPC。后来他看到 AI 对话技术，觉得这正好能解决内容量问题。</description></item><item><title>个人游戏技术方案案例：解谜游戏为什么从 Unity 改选 Godot</title><link>https://plumephp.com/solo-game-tech-case-godot-vs-unity-puzzle/</link><pubDate>Thu, 05 Mar 2026 10:22:00 +0800</pubDate><guid>https://plumephp.com/solo-game-tech-case-godot-vs-unity-puzzle/</guid><description>一个个人解谜游戏在 Unity 与 Godot 之间做技术选型的案例，详细分析项目规模、工具链、导出风险、内容制作效率和长期维护成本。</description></item><item><title>个人游戏开发者成功案例：一款 20 分钟恐怖游戏卖出了长尾</title><link>https://plumephp.com/solo-game-dev-success-tiny-horror/</link><pubDate>Wed, 04 Mar 2026 22:31:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-tiny-horror/</guid><description>一个个人开发者短篇恐怖游戏的成功案例：流程只有 20 分钟，却凭借强记忆点、主播友好结构、低成本制作和连续短篇品牌，形成稳定长尾收入。</description></item><item><title>个人游戏开发者成功案例：一个 Demo 如何把愿望单慢慢推到 2 万</title><link>https://plumephp.com/solo-game-dev-success-demo-to-steam/</link><pubDate>Mon, 02 Mar 2026 09:18:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-success-demo-to-steam/</guid><description>一个可信的个人游戏开发者成功案例：开发者没有靠首发奇迹，而是用可传播 Demo、节日活动、持续修正商店页和玩家反馈，把 Steam 愿望单逐步推到可支撑首发的规模。</description></item><item><title>个人游戏开发者失败案例：首发之后才真正崩溃</title><link>https://plumephp.com/solo-game-dev-case-failure-burnout-after-launch/</link><pubDate>Sat, 28 Feb 2026 22:09:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-burnout-after-launch/</guid><description>写在前面：发布不是终点，而是另一种开始 沈路做了一款像素动作 Roguelite。开发后期，他连续三个月几乎没有休息。每天修 bug、做商店页、剪视频、回邮件、准备发售版本。游戏终于发布时，他以为自己可以喘口气。</description></item><item><title>个人游戏开发者坚持案例：一年做三款短篇游戏的人</title><link>https://plumephp.com/solo-game-dev-persistence-short-games/</link><pubDate>Thu, 26 Feb 2026 18:27:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-persistence-short-games/</guid><description>一个关于个人游戏开发者通过连续短篇作品坚持创作的案例：不押注单个大项目，而是用一年三款小游戏训练发布能力、积累受众和寻找长期方向。</description></item><item><title>个人游戏开发者坚持案例：一边接外包，一边养自己的策略游戏</title><link>https://plumephp.com/solo-game-dev-persistence-client-work/</link><pubDate>Fri, 20 Feb 2026 09:52:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-persistence-client-work/</guid><description>一个关于个人游戏开发者用外包现金流支撑自研项目的案例：不是辞职孤注一掷，而是把接单、工具沉淀、范围控制和自研节奏组合成一种可持续状态。</description></item><item><title>个人游戏开发者失败案例：教程墙挡住了玩家</title><link>https://plumephp.com/solo-game-dev-case-failure-tutorial-wall/</link><pubDate>Tue, 17 Feb 2026 20:25:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-tutorial-wall/</guid><description>写在前面：玩家不是讨厌学习，而是讨厌先考试 韩芮做了一款小型策略游戏。玩家经营一个边境补给站，要在商队、士兵、难民和走私者之间分配资源。系统不少：粮食、声望、治安、路线风险、库存损耗、派系关系。韩芮知道游戏复杂。</description></item><item><title>个人游戏开发者坚持案例：靠社区试玩慢慢打磨的农场游戏</title><link>https://plumephp.com/solo-game-dev-persistence-community-demo/</link><pubDate>Sat, 14 Feb 2026 16:39:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-persistence-community-demo/</guid><description>一个关于个人游戏开发者与小社区共同打磨 Demo 的案例：项目没有大流量，但开发者通过固定试玩、公开取舍和真实反馈，让一款农场游戏逐渐找到自己的形状。</description></item><item><title>个人游戏开发者失败案例：外包美术没有管线，风格越做越乱</title><link>https://plumephp.com/solo-game-dev-case-failure-outsourcing-art-chaos/</link><pubDate>Wed, 11 Feb 2026 18:47:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-outsourcing-art-chaos/</guid><description>写在前面：外包不是把需求发出去就结束 梁晗是一名程序出身的个人开发者。他做的是一款俯视角动作冒险游戏。玩法原型已经跑通，但美术一直是占位方块。为了让项目更像成品，他决定把角色、场景和 UI 分批外包。</description></item><item><title>个人游戏开发者坚持案例：把周末项目做成三年长跑</title><link>https://plumephp.com/solo-game-dev-persistence-part-time-rhythm/</link><pubDate>Sun, 08 Feb 2026 21:11:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-persistence-part-time-rhythm/</guid><description>一个关于兼职个人游戏开发者长期坚持的案例：没有辞职、没有爆发式开发，而是通过固定节奏、缩小版本、保留休息和定期公开进度，把周末项目推进了三年。</description></item><item><title>个人游戏开发者失败案例：程序生成地图越做越空</title><link>https://plumephp.com/solo-game-dev-case-failure-procedural-content-empty/</link><pubDate>Thu, 05 Feb 2026 17:32:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-procedural-content-empty/</guid><description>写在前面：随机不等于丰富 邱远做了一款地下洞穴探索游戏。玩家带着一盏矿灯进入随机生成的洞穴，寻找矿石、遗迹和失踪探险队留下的标记。最初原型很迷人：灯光照出潮湿岩壁，远处偶尔传来水滴声，玩家不知道下一段路会通向哪里。</description></item><item><title>个人游戏开发者坚持案例：靠每月小更新活下来的地牢游戏</title><link>https://plumephp.com/solo-game-dev-persistence-small-updates/</link><pubDate>Tue, 03 Feb 2026 10:24:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-persistence-small-updates/</guid><description>一个关于个人游戏开发者持续小步更新的案例：游戏首发没有爆，但开发者用每月一次小更新、清晰范围控制和稳定玩家沟通，让项目慢慢积累口碑。</description></item><item><title>个人游戏开发者失败案例：下班后做了两年，最后被项目耗空</title><link>https://plumephp.com/solo-game-dev-failure-part-time-burnout/</link><pubDate>Wed, 28 Jan 2026 22:16:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-part-time-burnout/</guid><description>一个关于兼职个人游戏开发者长期耗尽的失败案例：项目没有明显爆雷，却在两年里逐渐吞掉夜晚、周末、社交和耐心，最终开发者失去继续推进的能力。</description></item><item><title>个人游戏开发者失败案例：Demo 做得太晚，问题已经改不动</title><link>https://plumephp.com/solo-game-dev-case-failure-demo-too-late/</link><pubDate>Sun, 25 Jan 2026 15:23:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-demo-too-late/</guid><description>写在前面：晚来的反馈有时只剩遗憾 郑昊做了一款俯视角动作冒险游戏。玩家在一座被藤蔓覆盖的城市里探索，用不同种子改变地形：长出藤桥、缠住机关、打开被植物封住的门。这个设定很有潜力。郑昊也做得很认真。但他一直没有发布 Demo。</description></item><item><title>个人游戏开发者失败案例：没人在线的多人竞技游戏</title><link>https://plumephp.com/solo-game-dev-failure-multiplayer-cold-start/</link><pubDate>Thu, 22 Jan 2026 11:07:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-multiplayer-cold-start/</guid><description>一个关于个人开发者制作多人竞技游戏失败的案例：网络同步做出来了，房间系统也能跑，但冷启动、匹配等待、服务器成本和玩家密度最终让游戏无法成立。</description></item><item><title>个人游戏开发者失败案例：功能投票把路线图变成拼盘</title><link>https://plumephp.com/solo-game-dev-case-failure-feature-vote-chaos/</link><pubDate>Mon, 19 Jan 2026 19:08:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-feature-vote-chaos/</guid><description>写在前面：投票能告诉你热度，不能替你做判断 何川做了一款轻度基地建设游戏。玩家在荒岛上建造小营地，安排角色采集、修理、休息和探索。游戏原本很清楚：小队资源管理，加一点角色事件。上线抢先体验后，玩家社区还算活跃。</description></item><item><title>个人游戏开发者失败案例：以为靠广告就能赚钱的休闲手游</title><link>https://plumephp.com/solo-game-dev-failure-mobile-ads/</link><pubDate>Thu, 15 Jan 2026 20:42:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-mobile-ads/</guid><description>一个关于个人开发者误判移动休闲游戏广告变现的失败案例：游戏开发不难，上架也顺利，但流量、留存、广告填充、用户获取和版本维护远比想象中更重。</description></item><item><title>个人游戏开发者失败案例：忽视素材授权让项目临近发布返工</title><link>https://plumephp.com/solo-game-dev-case-failure-license-risk/</link><pubDate>Tue, 13 Jan 2026 09:47:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-license-risk/</guid><description>写在前面：临时素材用久了，就会变成风险 高岭做了一款侦探推理游戏。玩家在一座老旅馆里调查失踪案，通过询问住客、翻找物品和比对时间线找出真相。项目早期，他为了快速出效果，使用了很多网上找到的素材。背景音乐来自免费素材站。</description></item><item><title>个人游戏开发者失败案例：Steam 裸发后无人问津的解谜游戏</title><link>https://plumephp.com/solo-game-dev-failure-steam-launch/</link><pubDate>Fri, 09 Jan 2026 14:18:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-steam-launch/</guid><description>一个关于个人游戏开发者 Steam 裸发失败的案例：游戏完成度并不差，但没有商店页积累、没有 Demo、没有愿望单验证，最终首周销量惨淡。</description></item><item><title>个人游戏开发者失败案例：反复换引擎让项目停在起点</title><link>https://plumephp.com/solo-game-dev-case-failure-engine-switch-loop/</link><pubDate>Tue, 06 Jan 2026 16:52:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-case-failure-engine-switch-loop/</guid><description>一个个人游戏开发者在 Unity、Godot 和 Unreal 之间反复切换，始终没有完成可验证版本，最终被技术选择拖垮的失败案例。</description></item><item><title>个人游戏开发者失败案例：那个不断加功能的像素 RPG</title><link>https://plumephp.com/solo-game-dev-failure-scope-creep/</link><pubDate>Sun, 04 Jan 2026 09:35:00 +0800</pubDate><guid>https://plumephp.com/solo-game-dev-failure-scope-creep/</guid><description>一个关于个人游戏开发者范围失控的失败案例：从一个两小时像素 RPG 原型开始，逐渐加入职业、装备、支线、家园和开放地图，最终项目在第 18 个月停滞。</description></item><item><title>Plumego Best Practices · 一个真实业务（用户中心）的完整示例</title><link>https://plumephp.com/plumego-user-center-example/</link><pubDate>Mon, 29 Dec 2025 12:30:00 +0800</pubDate><guid>https://plumephp.com/plumego-user-center-example/</guid><description>以 User / Auth / Project 为例，给出一套可落地的 Plumego 真实业务骨架：路由、鉴权、错误模型、存储抽象与模块组织。</description></item><item><title>一个真实业务（用户中心）的完整 Plumego 示例</title><link>https://plumephp.com/plumego-user-center-complete-example/</link><pubDate>Mon, 29 Dec 2025 12:00:00 +0800</pubDate><guid>https://plumephp.com/plumego-user-center-complete-example/</guid><description>用 Plumego 从 0 搭一个可运行的用户中心：注册/登录/刷新令牌、当前用户、RBAC 管理接口、统一错误与审计字段。全部代码可复制执行。</description></item><item><title>Plumego Roadmap</title><link>https://plumephp.com/plumego-roadmap/</link><pubDate>Mon, 29 Dec 2025 11:30:00 +0800</pubDate><guid>https://plumephp.com/plumego-roadmap/</guid><description>Plumego 的公开路线图：以标准库、零依赖、可组合为核心，按里程碑规划 Router / Middleware / Context / WebSocket / Auth / Local DB 等能力的演进与稳定化。</description></item><item><title>Plumego Docs 信息架构（IA）总览</title><link>https://plumephp.com/plumego-doc-arch/</link><pubDate>Mon, 29 Dec 2025 11:00:00 +0800</pubDate><guid>https://plumephp.com/plumego-doc-arch/</guid><description>Plumego 是一个强调显式、可读性和长期演进的 Go 服务框架。本文从工程视角出发，带你快速理解 Plumego 的设计理念、核心结构与最小可运行示例。</description></item><item><title>Plumego Best Practices</title><link>https://plumephp.com/plumego-best-practices/</link><pubDate>Mon, 29 Dec 2025 10:30:00 +0800</pubDate><guid>https://plumephp.com/plumego-best-practices/</guid><description>一份面向长期维护的 Plumego 工程实践指南，基于 Birdor 的真实项目经验，总结结构设计、分层边界、Context 使用、中间件规范与演进策略。</description></item><item><title>Plumego 入门：一个克制而清晰的 Go 服务框架</title><link>https://plumephp.com/getting-started-with-plumego/</link><pubDate>Mon, 29 Dec 2025 10:00:01 +0800</pubDate><guid>https://plumephp.com/getting-started-with-plumego/</guid><description>Plumego 是一个强调显式、可读性和长期演进的 Go 服务框架。本文从工程视角出发，带你快速理解 Plumego 的设计理念、核心结构与最小可运行示例。</description></item><item><title>什么时候不该使用 Plumego</title><link>https://plumephp.com/when-not-to-use-plumego/</link><pubDate>Sun, 28 Dec 2025 07:30:00 +0800</pubDate><guid>https://plumephp.com/when-not-to-use-plumego/</guid><description>Plumego 并不适合所有项目。这篇文章从工程阶段、团队结构、业务目标和风险模型等角度，系统说明在什么情况下你不应该选择 Plumego。</description></item><item><title>Plumego vs 常见 Go 框架：设计取舍说明</title><link>https://plumephp.com/plumego-vs-go-frameworks/</link><pubDate>Sun, 28 Dec 2025 00:36:00 +0800</pubDate><guid>https://plumephp.com/plumego-vs-go-frameworks/</guid><description>从设计哲学、工程边界、依赖策略和长期维护成本等角度，对比 Plumego 与主流 Go 框架的设计取舍，解释它们为何不同，以及各自适合什么样的项目。</description></item><item><title>独立游戏商业化现实：买断、免费、DLC、广告与长期运营怎么选</title><link>https://plumephp.com/indie-game-monetization-models/</link><pubDate>Mon, 22 Dec 2025 11:20:00 +0800</pubDate><guid>https://plumephp.com/indie-game-monetization-models/</guid><description>一份面向独立游戏开发者的商业化模型分析，比较买断制、免费内购、广告、DLC、众筹、赞助和长期运营的适用条件，帮助个人开发者根据游戏类型、获客能力和维护成本选择现实的收入路径。</description></item><item><title>独立游戏上线前检查清单：Steam 页面、Demo、愿望单与发布节奏</title><link>https://plumephp.com/indie-game-launch-checklist/</link><pubDate>Mon, 22 Dec 2025 11:00:00 +0800</pubDate><guid>https://plumephp.com/indie-game-launch-checklist/</guid><description>一份面向独立游戏开发者的上线前检查清单，覆盖商店页、Demo、愿望单、素材准备、测试、发布节奏和发布后一周行动，帮助开发者避免裸发和低准备度上线。</description></item><item><title>独立游戏开发的工程策略：一个人如何控制复杂度</title><link>https://plumephp.com/indie-game-engineering-strategy/</link><pubDate>Mon, 22 Dec 2025 10:40:00 +0800</pubDate><guid>https://plumephp.com/indie-game-engineering-strategy/</guid><description>一份面向个人独立游戏开发者的工程策略指南，重点讨论引擎选择、系统边界、内容管线、存档配置、资产复用、技术债控制和避免项目复杂度失控的方法。</description></item><item><title>独立游戏 MVP 设计：如何在 30 天内验证一款游戏是否值得继续做</title><link>https://plumephp.com/indie-game-mvp-validation/</link><pubDate>Mon, 22 Dec 2025 10:20:00 +0800</pubDate><guid>https://plumephp.com/indie-game-mvp-validation/</guid><description>一份面向独立游戏开发者的 MVP 验证方法，解释游戏 MVP 与工具产品 MVP 的差异，并提供 30 天验证计划、试玩观察方法、继续推进信号与止损标准。</description></item><item><title>独立游戏开发者如何选择第一款游戏：从兴趣到可完成项目</title><link>https://plumephp.com/indie-game-first-project-selection/</link><pubDate>Mon, 22 Dec 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/indie-game-first-project-selection/</guid><description>一份面向个人独立游戏开发者的第一款游戏选题指南，重点不是寻找最有创意的点子，而是用完成概率、验证成本、内容规模、市场表达和个人能力边界来判断一个游戏项目是否值得开始。</description></item><item><title>一个完整的独立游戏开发者失败案例：三年、一个人、一款没能活下来的游戏</title><link>https://plumephp.com/indie-game-developer-failure-case-full/</link><pubDate>Sun, 21 Dec 2025 15:10:00 +0800</pubDate><guid>https://plumephp.com/indie-game-developer-failure-case-full/</guid><description>一个完整、真实且高复现率的独立游戏开发者失败案例。从动机、技术选型、玩法设计、开发过程、发布决策到最终放弃，逐层拆解失败是如何发生的，以及哪些节点本可以避免。这不是对个人能力的否定，而是一份写给所有独立游戏开发者的现实备忘录。</description></item><item><title>独立开发者失败案例：那些真正教会你活下来的错误</title><link>https://plumephp.com/indie-developer-failure-cases/</link><pubDate>Sun, 21 Dec 2025 14:40:00 +0800</pubDate><guid>https://plumephp.com/indie-developer-failure-cases/</guid><description>一组典型、真实且高复现率的独立开发者失败案例分析，聚焦失败发生的结构性原因，而非个人能力问题。这不是警示他人不要尝试，而是帮助你在失败发生前识别信号、提前止损，并在失败后保留真正有价值的资产。</description></item><item><title>独立开发者的故事：那些没有写在成功案例里的真实人生</title><link>https://plumephp.com/indie-developer-stories-real-world/</link><pubDate>Sun, 21 Dec 2025 14:10:00 +0800</pubDate><guid>https://plumephp.com/indie-developer-stories-real-world/</guid><description>一组关于独立开发者的真实故事与典型原型，涵盖失败、停滞、转向、缓慢成功与长期坚持。这不是励志故事合集，而是一份帮助你在现实中校准预期、理解独立开发真实代价与回报的长期参考。</description></item><item><title>独立开发者生存指南（进阶扩展篇）</title><link>https://plumephp.com/indie-developer-survival-guide-extended/</link><pubDate>Sun, 21 Dec 2025 13:40:00 +0800</pubDate><guid>https://plumephp.com/indie-developer-survival-guide-extended/</guid><description>在基础生存模型之上，进一步扩展独立开发者在长期实践中必须面对的关键问题：风险管理、时间结构、心理韧性、个人品牌、反脆弱设计与退出机制。本篇更关注如何在不确定性中长期存活，而非短期成功。</description></item><item><title>个人工具 / SaaS 的选题池与验证方法</title><link>https://plumephp.com/indie-tool-saas-idea-pool-and-validation/</link><pubDate>Sun, 21 Dec 2025 13:00:00 +0800</pubDate><guid>https://plumephp.com/indie-tool-saas-idea-pool-and-validation/</guid><description>一份面向独立开发者的个人工具与 SaaS 选题池构建与验证方法论，从真实问题来源、选题分类、优先级排序，到低成本验证、失败止损与方向收敛，帮助开发者在不依赖运气的前提下，系统性找到值得投入的项目方向。</description></item><item><title>从工程、产品到商业的一整套独立项目模板</title><link>https://plumephp.com/indie-project-full-stack-template/</link><pubDate>Sun, 21 Dec 2025 12:30:00 +0800</pubDate><guid>https://plumephp.com/indie-project-full-stack-template/</guid><description>一份面向个人独立开发者的完整独立项目模板，从工程架构、产品设计到商业模型与长期运营，系统拆解如何用最小成本、最低风险构建一个可持续的独立项目。这不是代码模板，而是一套可反复复用的项目方法论与结构蓝图。</description></item><item><title>面向开发者的低成本变现模型设计</title><link>https://plumephp.com/developer-low-cost-monetization-models/</link><pubDate>Sun, 21 Dec 2025 12:10:00 +0800</pubDate><guid>https://plumephp.com/developer-low-cost-monetization-models/</guid><description>一份面向个人独立开发者与小团队的低成本变现模型设计指南，系统梳理从服务、工具、SaaS、API、内容到混合模式的多种可持续变现路径，强调现实约束、现金流优先与长期可维护性，帮助开发者在资源有限的情况下建立稳定收入来源。</description></item><item><title>独立开发者 12 个月生存路线图</title><link>https://plumephp.com/indie-developer-12-month-survival-roadmap/</link><pubDate>Sun, 21 Dec 2025 11:45:00 +0800</pubDate><guid>https://plumephp.com/indie-developer-12-month-survival-roadmap/</guid><description>一份面向个人独立开发者的 12 个月生存路线图，从现金流安全、方向选择、MVP 验证到初步稳定收入，提供可执行、可落地的阶段性目标与行动清单，帮助独立开发者在不确定性中建立可持续路径。</description></item><item><title>个人独立开发者生存指南</title><link>https://plumephp.com/indie-developer-survival-guide/</link><pubDate>Sun, 21 Dec 2025 11:30:00 +0800</pubDate><guid>https://plumephp.com/indie-developer-survival-guide/</guid><description>一份面向长期主义的个人独立开发者生存指南，系统梳理现金流模型、产品选择方法、工程与心理建设、风险控制与成长路径，帮助独立开发者在不确定性中建立可持续的个人技术事业。</description></item><item><title>为什么 Bun 这么快？深入解析 Zig + JavaScriptCore + Bundler 架构</title><link>https://plumephp.com/wei-shei-me-bun-zhe-me-kuai-shen-ru-jie-xi-zig-javascriptcore-bundler-jia-gou/</link><pubDate>Tue, 09 Dec 2025 06:21:39 +0800</pubDate><guid>https://plumephp.com/wei-shei-me-bun-zhe-me-kuai-shen-ru-jie-xi-zig-javascriptcore-bundler-jia-gou/</guid><description>系统解析 Bun 的高性能来源：Zig 实现、JSC 引擎、统一化工具链、零拷贝网络层、极简事件循环、SIMD 优化与 bundler 架构。</description></item><item><title>Node.js vs Bun vs Deno：三大 JavaScript Runtime 架构深度对比</title><link>https://plumephp.com/node-js-vs-bun-vs-deno-san-da-javascript-runtime-jia-gou-shen-du-dui-bi/</link><pubDate>Tue, 09 Dec 2025 05:21:39 +0800</pubDate><guid>https://plumephp.com/node-js-vs-bun-vs-deno-san-da-javascript-runtime-jia-gou-shen-du-dui-bi/</guid><description>三大 JavaScript Runtime 架构的系统性对比。过去十年，Node.js 是 JS 世界的事实标准运行时；如今， Bun 和 Deno 带着现代化设计重新挑战 JS 生态，推动了 Web 运行时的整体革新。</description></item><item><title>选择 Node / Bun / Deno 的架构决策指南</title><link>https://plumephp.com/xuan-node-bun-deno-de-jia-gou-zhi-nan/</link><pubDate>Tue, 09 Dec 2025 04:21:39 +0800</pubDate><guid>https://plumephp.com/xuan-node-bun-deno-de-jia-gou-zhi-nan/</guid><description>从性能、兼容性、安全性、工程文化、生态规模与部署方式六个维度，给出 Node.js、Bun、Deno 的系统性选型指南。适用于工程团队的技术决策。</description></item><item><title>Node.js 深度解析：运行时架构、事件循环、性能模型与未来路线</title><link>https://plumephp.com/node-js-shen-du-jie-xi-yun-xing-jia-gou-xing-neng-xing-yu-wei-lai-lu-xian/</link><pubDate>Tue, 09 Dec 2025 01:21:39 +0800</pubDate><guid>https://plumephp.com/node-js-shen-du-jie-xi-yun-xing-jia-gou-xing-neng-xing-yu-wei-lai-lu-xian/</guid><description>理解现代 JavaScript Runtime 的核心本质。Node.js 不仅是“让 JavaScript 跑在服务器端的工具”，它是一个完整的 Runtime，由 V8、libuv、内置调度器、事件循环、模块系统、多线程能力、工具链生态等部分组成。</description></item><item><title>Node.js 简介：历史、特性、发展与未来</title><link>https://plumephp.com/node-js-xing-fa-yu-wei-lai/</link><pubDate>Tue, 09 Dec 2025 00:21:39 +0800</pubDate><guid>https://plumephp.com/node-js-xing-fa-yu-wei-lai/</guid><description>让 JavaScript 走向服务器端的关键转折点。Node.js 诞生于 2009 年，它从“让 JS 跑在服务器端”的单一想法开始，逐渐演变为现代工具链、云原生和前端工程化的核心力量。它的出现改变了 Web 的技术形态，也改变了开发者构建应用的方式。</description></item></channel></rss>