这是一套关于 小游戏 的书。它不讲 3D 渲染、不讲原生发行、不讲引擎 API,它讲的是在平台的包体、加载与 API 约束下,一款小游戏从市场判断到立项交付怎么被设计出来,并且每一处设计都能被跑出来的数字检验。
卷一《市场、品类与产品设计》回答三个问题:这个市场是什么样、我该做什么品类(第 1–5 章),玩法与系统怎么设计成闭环(第 6–10 章),怎么算清楚账并把它交付出去(第 11–15 章)。卷二《引擎实现与体验打磨》接着把设计落成能跑的内核与原型;卷三《上线变现与长线运营》接着把产品推上线并跑长线。
贯穿全书的是一款虚构的轻度小游戏 《合成小岛》(merge-island:合成 + 放置 + 关卡 + 装扮)与一套工具链 pebble(config/ + sim/ Python + core/ TypeScript + web/ 单文件 HTML)。
这套书与站内既有内容的分工
站内已经有不少相邻内容,写清楚分工比重复写一遍更有价值:
- 小游戏创作平台专题(game-engine) 与 小游戏平台专题(minigame) 合计 49 篇,讲的是做小游戏平台 / 创作工具——编辑器、素材市场、BP 与融资,是 SaaS 创业口径。本套是「在平台上做一款游戏」,是单款产品口径。
- 小程序小游戏开发综述 是一篇 96 行的单篇综述,覆盖引擎选型、性能、变现三块。本套是成体系的 150 篇,且每一节都有可运行产物。
- Cocos 游戏开发系列
是引擎 API 教程(Creator 组件、生命周期、渲染管线)。本套不写引擎 API 教程,
core/只做平台适配 + 逻辑内核 + 最小渲染抽象。 - 引擎内核系列
讲的是自研引擎(TS + WebGPU)的底层实现。本套的
core/只到「配置驱动逻辑 + 平台 API 抽象层 + mock 宿主」这一层,不碰渲染管线内核。 - 产品文档系列(products) 是 PRD 文档。本套的原型是可跑、可调参、可断言、可浏览器打开的工程,不是一份静态 PRD。
可运行性口径
本套用六档标注每个代码块,代码块头部的注释里写着它属于哪一档:
| 层 | 含义 | 怎么验证 |
|---|---|---|
| S 仿真层 | Python 数值仿真:市场规模、品类评分、留存、难度曲线、K 因子、eCPM、LTV、漏斗、显著性 | /opt/homebrew/bin/python3 sim/<name>.py --config config/ --out out/,产出 JSON + CSV + SVG |
| P 内核层 | TypeScript 配置驱动逻辑内核 + 平台 API 抽象层 + mock 宿主 | node --test 'core/test/*.test.ts' |
| W 网页层 | 单文件 HTML 可玩原型:同一份 core/ 逻辑内联进一个 HTML,浏览器打开就能玩 | NODE_PATH=/opt/homebrew/lib/node_modules node web/verify.mjs web/dist/index.html |
| D 静态层 | 平台能力矩阵、包体预算表、品类图谱、检查清单、配置表 schema | 仅 schema / lint 校验 |
| X 不可复现 | 真实平台后台数据、真实榜单、真实买量投放、真实审核结果 | 正文每处显式标注「需真实业务环境,命令行不可复现」 |
| B 基准 | 品类评分稳定性、收益模型偏差、LTV 回本对照、原型帧预算 | 产出 JSON,软告警不硬失败 |
全书有两条核心主张,贯穿三卷:
- 一份 config,三种消费。
pebble/config/是设计的唯一真源:Python 仿真、TypeScript 内核、浏览器原型读同一份数字。改一个数,三处结果都跟着变。为此config/里禁浮点——增长率写成整数比(levelBonusNum/levelBonusDen),系数写成整数百分比(ratePct);幂运算在 TS 侧用BigInt,除法一律整数地板除。 - 一份逻辑,两种宿主。游戏逻辑只依赖
Host抽象(时钟、存储、平台 API),mock 宿主与真机宿主共用同一段代码,结果逐帧一致。确定性回放由此成立——core/里禁用Math.random(),随机数一律用配置里的seed加自实现的整数 LCG/PCG。
两条纪律同样贯穿全书:不编造平台后台数字(真实平台只作「公开可观察机制」引用并标注观察时点);所有仿真数字来自本机实跑,正文写「同机相对量级,绝对数值不可移植」,不写「提升 N 倍」式的绝对话。
明确不在本套范围内
为了让边界清楚,下面这些这套书不讲:
- 3D 渲染与美术管线(模型、骨骼、shader、美术生产流程)。
- 原生 App / 主机 / Steam 发行(那是另一套发行与商务逻辑)。
- Cocos / Godot / Defold 等引擎的 API 教程(站内已有专书)。
- 服务端架构(房间服、匹配、跨服;站内已有《MMO 服务器开发》四卷本 )。
- 做「小游戏平台 / 创作工具」本身(站内已有 game-engine 与 minigame 两个专题)。
- 真实平台后台数据(X,需真实业务环境)。
- 具体法律意见与买量投放实操(X,需真实业务环境与法务/投手)。
全书目录
前置
| 篇目 | 核心内容 |
|---|---|
| 目录 | 本页:定位、分工、可运行性口径与全书结构 |
| 序:为什么小游戏值得单独写一套书 | 平台约束如何反向决定设计决策 |
| 前言:本书的读法与贯穿项目《合成小岛》 | 三卷分工、pebble 工具链与代码块读法 |
第一部分:市场、用户与平台约束(第 1–5 章)
第 1 章 小游戏市场全景——先把「小游戏」这个词界定清楚
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 小游戏的定义与边界 | 小游戏与手游、H5、小程序的分野 |
| 1.2 | 平台生态与分发机制 | 各平台的推荐、分享与买量入口 |
| 1.3 | 市场规模、增长与结构性机会 | 公开可观察的规模口径与机会带 |
第 2 章 榜单与竞品拆解——看清别人在做什么
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 榜单结构与品类分布 | 榜单分层与品类占比的读法 |
| 2.2 | 竞品拆解方法 | 可观察维度的结构化拆解 |
| 2.3 | 从竞品到差异化机会 | 把拆解结论收敛成机会点 |
第 3 章 品类图谱与选择模型——本卷核心(S + B)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 品类分类体系 | 合成 / 放置 / 关卡 / 装扮的分类树 |
| 3.2 | 品类的商业特征矩阵 | 各品类的留存、变现、成本特征 |
| 3.3 | 品类选择加权评分与敏感度分析 | 加权评分模型与敏感度扫描(S+B) |
第 4 章 平台规则与设计约束——约束反向决定设计
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | 主包与分包体积预算 | 包体预算怎么变成资源名额(S) |
| 4.2 | 首包加载与冷启动约束 | 冷启动时间预算与加载策略 |
| 4.3 | 平台能力矩阵与审核红线 | 各平台能力差异与审核硬约束 |
第 5 章 目标用户、动机与生命周期——为谁设计
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 小游戏用户画像与使用场景 | 碎片场景下的用户画像 |
| 5.2 | 动机模型与付费意愿分层 | 动机分布与付费意愿分层(S) |
| 5.3 | 生命周期阶段与留存结构 | 生命周期阶段与留存曲线结构(S) |
第二部分:玩法与系统设计(第 6–10 章)
第 6 章 核心玩法与核心循环——本卷的 P + W 起点
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 一句话玩法与核心循环拆解 | 把玩法写成一句话与一张循环图 |
| 6.2 | 循环时长与反馈密度 | 循环时长、反馈密度与单局结构(S) |
| 6.3 | 最小可玩原型 | 配置驱动的最小可玩原型(P+W) |
第 7 章 关卡与难度曲线——让「刚好难」
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | 关卡结构设计 | 关卡结构、节奏与目标拆解 |
| 7.2 | 难度曲线与心流模型 | 难度曲线与心流区间的建模(S) |
| 7.3 | 关卡难度校准与自动生成 | 难度校准与自动生成(S+P) |
第 8 章 成长、进度与放置收益——「再来一局」的动力
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 成长线与数值曲线 | 成长曲线与整数比增长设计(S) |
| 8.2 | 进度感与「再来一局」 | 进度可见性与复玩驱动(P) |
| 8.3 | 离线收益与回归设计 | 离线收益与回归节奏(S+P+W) |
第 9 章 社交与裂变机制——小游戏特有的传播面
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 小游戏特有的社交传播面 | 分享、好友、群与平台内的社交触点 |
| 9.2 | 裂变模型与传播系数 K | K 因子建模与自然增长仿真(S+B) |
| 9.3 | 社交压力与体验保护 | 社交压力边界与体验保护 |
第 10 章 变现设计前置——先想清楚怎么赚钱
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | IAA 广告形态与场景布局 | 广告形态与激励点布局 |
| 10.2 | IAP 内购与混合变现结构 | 内购点与混合变现结构 |
| 10.3 | 变现与体验的平衡 | 变现与体验的平衡边界(S) |
第三部分:立项、验证与交付(第 11–15 章)
第 11 章 产品文档、预算与立项决策——把想法变成可决策的文档
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 一页纸设计与立项文档 | 一页纸与立项文档结构 |
| 11.2 | 开发预算与排期估算 | 预算与排期估算模型(S) |
| 11.3 | 立项决策与止损线 | 立项决策与止损线设定(S+B) |
第 12 章 玩法原型与可玩性验证——用原型回答「好不好玩」
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | 原型范围与验证目标 | 原型该做多大、验证什么 |
| 12.2 | 可玩性指标与测试方法 | 可玩性指标与测试方法(P+W) |
| 12.3 | 原型迭代与决策 | 原型迭代与继续/止损决策 |
第 13 章 商业化模型与收入预测——把账算清楚
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 收入拆解:DAU × ARPDAU | 收入的乘法拆解(S) |
| 13.2 | 混合变现的收入结构 | 广告与内购的混合结构(S) |
| 13.3 | 收入预测与情景分析 | 收入预测与情景分析(S+B) |
第 14 章 开发预算与资源计划——钱和人怎么排
| 节 | 文章 | 核心内容 |
|---|---|---|
| 14.1 | 人力与工时估算 | 人力配置与工时估算(S) |
| 14.2 | 外包与素材成本 | 外包与素材成本结构 |
| 14.3 | 里程碑与风险缓冲 | 里程碑排布与风险缓冲(S) |
第 15 章 立项评审与设计案交付——把一卷收口
| 节 | 文章 | 核心内容 |
|---|---|---|
| 15.1 | 立项评审材料与流程 | 评审材料清单与评审流程(D) |
| 15.2 | 设计案装配 | 把 14 章产物装配成设计案(D) |
| 15.3 | 交付物验收与下一卷衔接 | 交付物验收与卷二衔接(D) |
附录
| 篇目 | 核心内容 |
|---|---|
| 附录 A:环境与复现速查 | 两个 python3、Node 26 跑 TS、Playwright 复用与全部实跑命令 |
| 附录 B:配置表字段字典与 schema | pebble/config/ 字段字典、整数约定与 schema 校验(D+S) |
三条阅读路径
路径 A:产品经理的市场课(第 1–5 章顺序读)
从定义边界与平台分发开始,经榜单拆解、品类选择模型,到平台约束与用户动机。这条路径回答「我该做什么品类、给谁做」。读完你能用一张加权评分表解释你的品类选择,并用脚本证明它对权重不敏感。
路径 B:策划的玩法与系统课(第 6–10 章顺序读)
从核心循环拆解开始,经关卡难度、成长放置、社交裂变,到变现前置。这条路径回答「玩法怎么设计成闭环」。读完你能画出核心循环、跑出难度曲线与 K 因子,并让一个最小原型在浏览器里跑起来。
路径 C:立项决策课(第 11–15 章顺序读)
从一页纸与预算估算开始,经原型验证、收入预测、资源计划,到立项评审与设计案交付。这条路径回答「这笔账值不值得投」。读完你能产出一份自洽的立项材料并给出止损线。
常见问题速查
| 你想解决的问题 | 看哪节 |
|---|---|
| 小游戏和手游到底差在哪? | 1.1 |
| 平台是怎么把游戏推给用户的? | 1.2 |
| 榜单该怎么读才不是看热闹? | 2.1 |
| 我该选哪个品类? | 3.2 、3.3 |
| 首包放不下怎么办? | 4.1 |
| 冷启动太慢会怎样? | 4.2 |
| 玩家是谁、为什么来? | 5.1 、5.2 |
| 核心循环怎么画? | 6.1 |
| 一局该多长? | 6.2 |
| 难度怎么调才不劝退? | 7.2 |
| 怎么让玩家「再来一局」? | 8.2 |
| 离线收益该给多少? | 8.3 |
| 裂变到底怎么算? | 9.2 |
| 广告放哪、放几次? | 10.1 |
| 立项材料要写什么? | 11.1 |
| 什么时候该止损? | 11.3 |
| 原型要验证什么? | 12.1 |
| 这款游戏能赚多少? | 13.1 、13.3 |
| 要几个人、多久? | 14.1 |
环境准备
正文里的代码块都可以在本机复现。需要的东西只有两样,下面这段 S 层脚本会替你确认:
# file: sim/ch00_env_check.py
# tier: S
# verify: /opt/homebrew/bin/python3 sim/ch00_env_check.py
"""环境自检:确认《小游戏开发实战》三卷需要的运行时都在,并打印 pebble 的能力阶梯。
本机有两个 python3,不要混:
/opt/homebrew/bin/python3 = 3.14.6(带 numpy / pandas / PIL),S 层仿真一律用它;
/usr/bin/python3 = 3.9.6(系统自带,无 numpy/pandas),只能跑最朴素的脚本。
"""
from __future__ import annotations
import os
import shutil
import subprocess
import sys
EXPECT_PY = "/opt/homebrew/bin/python3"
def main() -> int:
ok = True
# /opt/homebrew/bin/python3 是符号链接,比较时解析到真实二进制再判断
real = os.path.realpath(sys.executable)
print(f"python {sys.version.split()[0]} ({real})")
if real != os.path.realpath(EXPECT_PY):
print(f" 注意:正文脚本一律用 {EXPECT_PY},当前解释器不同")
try:
import numpy
import pandas
print(f"numpy {numpy.__version__}")
print(f"pandas {pandas.__version__}")
except ImportError as e: # noqa: BLE001
ok = False
print(f"FAIL 缺依赖:{e}(S 层需要 numpy 与 pandas)")
node = shutil.which("node")
if not node:
ok = False
print("FAIL node 未安装(P 层需要 Node 26 或更高)")
else:
ver = subprocess.run([node, "-v"], capture_output=True, text=True).stdout.strip()
major = int(ver.lstrip("v").split(".")[0])
note = "" if major >= 26 else " (低于 26,原生 TypeScript 不可用)"
print(f"node {ver}{note}")
ok = ok and major >= 26
print("pebble 能力阶梯:S 仿真 / P 内核 / W 网页 / D 静态 / X 不可复现 / B 基准")
print("OK 环境就绪" if ok else "FAIL 环境不满足")
return 0 if ok else 1
if __name__ == "__main__":
raise SystemExit(main())
- Python 3.14.6(
/opt/homebrew/bin/python3)加numpy与pandas:S 层仿真用。 - Node 26 或更高:P 层内核直接跑 TypeScript,不需要
tsc、不需要npm install、不需要package.json,断言用 Node 内置的node --test。
图表不用 matplotlib(本机未安装)——本套的 SVG 是纯 Python 用标准库 xml.etree 画出来的,零依赖、可复现。完整的环境口径、pebble/ 目录结构与全部实跑命令见附录 A
。
本页是全书目录。可以从序 开始顺序读,或直接进入第 1 章 1.1 小游戏的定义与边界 。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。