这是《小游戏开发实战》三卷本的第三卷,也是收官卷。卷一回答了「做什么、给谁做、怎么算账」,卷二回答了「怎么把它做出来,并且做得手感对、跑得动」,这一卷回答最后一个、也最现实的问题:怎么上线、怎么赚钱、怎么活得久。它不讲 3D、不讲原生发行、不讲引擎 API、不讲服务端架构,它讲的是在平台的包体、审核与流量规则下,一款小游戏怎么把收入模型算清、把买量账算平、把留存做住,并且每一处都对应一个能跑出来的产物。
卷三《上线、变现与长线运营》回答三个问题:钱从哪来、账能不能算平(第 1–4 章),用户从哪来、怎么留住(第 5–8 章),怎么上线、怎么合规、怎么长线运营(第 9–16 章)。贯穿全书的仍是虚构的轻度小游戏 《合成小岛》(merge-island:合成 + 放置 + 关卡 + 装扮)与工具链 pebble(config/ + sim/ Python + core/ TypeScript + web/ 单文件 HTML)。卷一目录
给了市场与设计,卷二目录
给了工程与打磨,这一卷把前两卷的产物推上线、算成一门生意。
这套书与站内既有内容的分工
站内已经有不少相邻内容,写清楚分工比重复写一遍更有价值。下面六处边界是本卷最容易混淆的,务必分清:
- 游戏广告变现设计清单 是一篇清单式短文,列的是广告形态与频控要点,读一遍就懂、抄一遍就用。本卷第 1 章做的是可跑的 eCPM 与频次-流失模型:同一份广告配置,能算出收益与流失的平衡点在哪,而不是只给一张「该放几个广告位」的清单。
- 「以为靠广告就能赚钱」失败复盘 是一篇失败复盘叙事,讲的是某个具体项目怎么栽的。本卷第 1 章与第 15 章做的是「复盘叙述 vs 可跑失败参数对照」:把叙事里那句「广告太多把人赶跑了」翻译成一组能复算的参数,看它究竟在哪个频次阈值上崩掉。
- 小游戏服务平台(saas/minigame) 讲的是做平台——商业计划书、分发、结算,是 SaaS 创业口径。本卷是「在平台上做一款游戏」:不关心平台怎么建,只关心我这一个游戏怎么上线、怎么赚钱。
- 小游戏创作平台(saas/game-engine) 同理,讲的是做创作工具(编辑器、素材市场、融资)。本卷是「做单款产品」,两者不重叠:一个交付工具,一个交付游戏。
- 小程序小游戏开发综述 是一篇 96 行的单篇综述,覆盖引擎选型、性能、变现三块。本卷是成体系、可运行的 16 章,第 1 章给它一张逐项对照表。
- H5 游戏产业全景 是产业综述口径,横着讲技术栈、生态、政策与未来五年。本卷是可跑模型 + 可交付方案:那篇回答「这个行业长什么样」,本卷回答「我这盘生意怎么算、怎么做、怎么交」。
一句话:本卷做的是「一款小游戏怎么被算成一门生意、怎么上线、怎么活得久」,不是「做一个平台」或「做一个引擎」,也不是「行业趋势报告」。
明确不在本卷范围内
为了让边界清楚,下面这些这一卷不讲:
- 3D 渲染与美术管线(模型、骨骼、shader、美术生产流程)。
- 原生 App / 主机 / Steam 发行(站内已有 Steam 发行专题 ,那是 PC 平台口径,与本卷的小游戏平台口径不同)。
- Cocos / Godot / Defold 等引擎的 API 教程(站内已有专书)。
- 服务端架构(房间服、匹配、跨服;站内已有 《MMO 服务器开发》四卷本 )。
- 做「小游戏平台 / 创作工具」本身(站内已有 game-engine 与 minigame 两个专题)。
- 真实平台后台数据、真实买量投放、真实审核结果(X,需真实业务环境,命令行不可复现,正文每处显式标注)。
- 具体法律意见(合规章只给可核对的规则清单与自查项,不代替律师意见)。
可运行性口径
本卷与卷一、卷二用同一套六档标注,代码块头部注释里写着它属于哪一档:
| 层 | 含义 | 怎么验证 |
|---|---|---|
| S 仿真层 | Python 数值仿真:eCPM 收益、频次-流失平衡、LTV 回本、价格弹性、买量预算、留存漏斗、实验显著性、活动奖励预算 | /opt/homebrew/bin/python3 sim/<name>.py --config config/ --out out/,产出 JSON + CSV + SVG |
| P 内核层 | TypeScript 配置驱动逻辑内核 + 平台 API 抽象层 + mock 宿主 | node --test 'core/test/l*.test.ts' |
| W 网页层 | 单文件 HTML 可玩原型:同一份 core/ 逻辑内联进一个 HTML,浏览器打开就能玩 | NODE_PATH=/opt/homebrew/lib/node_modules node web/verify.mjs web/dist/index.html |
| D 静态层 | 合规清单、提审资料表、指标字典、埋点规范、运营日历、上线检查清单 | 仅 schema / lint 校验 |
| X 不可复现 | 真实平台后台数据、真实买量投放、真实审核结果 | 正文每处显式标注「需真实业务环境,命令行不可复现」 |
| B 基准 | 收益模型稳定性、频次阈值、回本周期敏感度、预算分配稳健性 | 产出 JSON,软告警不硬失败 |
本卷延续前两卷的两条核心主张:一份 config,三种消费(Python 仿真、TS 内核、浏览器原型读同一份数字,故 config/ 里禁浮点、TS 侧幂运算用 BigInt、除法一律整数地板除);一份逻辑,两种宿主(逻辑只依赖 Host 抽象,mock 宿主与真机宿主逐帧一致,故 core/ 里禁用 Math.random(),随机数一律可播种)。
两条纪律同样适用:不编造平台后台数字——所有真实平台侧数字(后台留存、后台流水、审核结果)一律标 X,正文不虚构具体数值;仿真数字只作「同机相对量级」——所有 S 层结果来自本机实跑,只用于比较同一台机器上不同参数配置的相对高低,禁止写成「提升 N 倍」或「必然回本」这类断言。
卷三结构总览(16 章)
| 章 | 主题 | 可运行性层级 |
|---|---|---|
| 1 | 广告变现:形态、频次与收益 | S + B |
| 2 | 内购与混合变现 | S |
| 3 | 收入模型与 LTV | S + B |
| 4 | 定价与促销策略 | S |
| 5 | 买量与素材投放 | S |
| 6 | 自然增长与流量获取 | S + B |
| 7 | 留存、漏斗与召回 | S |
| 8 | 数据实验与决策 | S |
| 9 | 提审与发布 | D + S |
| 10 | 合规与平台规则 | D |
| 11 | 数据体系与指标 | D |
| 12 | 活动与赛季运营 | S |
| 13 | 版本节奏与生命周期 | S + D |
| 14 | 案例:从立项到上线 | D + S |
| 15 | 典型失败案例 | X + S |
| 16 | 三卷收官:完整方案与交付 | S + P + W + B |
全书目录
前置
| 篇目 | 核心内容 |
|---|---|
| 目录 | 本页:定位、六处分工、可运行性口径与全书结构 |
| 附录 D:全书公式、参数与数据集索引 | pebble/ 全部文件索引、l<章号>_ 命名约定与六层复现命令 |
第一部分:变现(第 1–4 章)
第 1 章 广告变现:形态、频次与收益——本卷的 S + B 起点
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 广告形态与场景设计 | 激励视频、插屏、Banner 的形态与场景选择 |
| 1.2 | eCPM、填充率与收益模型 | 可跑的 eCPM × 填充率 × 展示次数收益模型(S+B) |
| 1.3 | 广告频次与体验平衡 | 广告频次与流失的平衡曲线与阈值(S+B) |
第 2 章 内购与混合变现——把付费设计进去
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 内购点设计与定价档位 | 内购点位置与定价档位的设计 |
| 2.2 | 混合变现的比例与协同 | 广告与内购的比例与协同模型(S) |
| 2.3 | 礼包、通行证与订阅 | 礼包、通行证与订阅的收益结构 |
第 3 章 收入模型与 LTV——算清能不能回本
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 收入拆解与 ARPDAU 模型 | 收入拆解与 ARPDAU 递推模型(S) |
| 3.2 | LTV 建模与回本周期 | LTV 建模与回本周期测算(S+B) |
| 3.3 | 敏感性分析与收入预测 | 参数敏感性分析与收入预测区间(S+B) |
第 4 章 定价与促销策略——价格也是设计
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | 定价锚点与档位设计 | 定价锚点与档位阶梯设计 |
| 4.2 | 折扣、限时与稀缺 | 折扣、限时与稀缺感的机制设计 |
| 4.3 | 价格弹性与副作用 | 价格弹性测算与降价的副作用(S) |
第二部分:增长与买量(第 5–8 章)
第 5 章 买量与素材投放——把用户买进来
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 买量渠道与投放机制 | 买量渠道、出价与投放机制 |
| 5.2 | 素材设计与创意迭代 | 素材设计框架与创意迭代节奏 |
| 5.3 | 素材-玩法一致性与转化 | 素材与玩法一致性对转化的影响(S) |
第 6 章 自然增长与流量获取——不花钱的那部分
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 自然增长与裂变机制 | 自然增长的裂变机制与 DAU 递推(S) |
| 6.2 | 平台推荐与流量获取 | 平台推荐、搜索与流量获取口径(S+B) |
| 6.3 | 增长预算分配 | 多渠道增长预算的贪心分配(S+B) |
第 7 章 留存、漏斗与召回——把用户留住
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | 新手漏斗与 D1/D7/D30 留存 | 新手漏斗与 D1/D7/D30 留存曲线(S) |
| 7.2 | 流失预警与召回 | 流失预警模型与召回策略(S) |
| 7.3 | 留存与付费的联合分析 | 留存与付费的联合分析(S) |
第 8 章 数据实验与决策——用实验代替拍脑袋
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 实验设计与分流 | 实验设计、分流与对照(S) |
| 8.2 | 显著性、样本量与常见陷阱 | 显著性、样本量与常见统计陷阱(S) |
| 8.3 | 从实验到决策 | 从实验结果到产品决策(S) |
第三部分:上线、合规与运营(第 9–13 章)
第 9 章 提审与发布——把游戏交出去
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 提审与发布流程 | 提审资料、流程与常见驳回(D) |
| 9.2 | 灰度、放量与回滚 | 灰度、放量与回滚方案(S+D) |
| 9.3 | 上线检查清单 | 上线前检查清单与自查项(D) |
第 10 章 合规与平台规则——不踩线
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | 资质、备案与平台规则 | 资质、备案与平台规则清单(D) |
| 10.2 | 内容安全与审核红线 | 内容安全与审核红线(D) |
| 10.3 | 未成年人保护与防沉迷 | 未成年人保护与防沉迷要求(D) |
第 11 章 数据体系与指标——先把账算对
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 指标树与北极星指标 | 指标树与北极星指标的定义(D) |
| 11.2 | 埋点规范与口径统一 | 埋点规范与口径统一(D) |
| 11.3 | 看板与告警 | 数据看板与告警配置(D) |
第 12 章 活动与赛季运营——把节奏排起来
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | 活动模板与奖励预算 | 活动模板与奖励预算模型(S) |
| 12.2 | 赛季结构与节奏 | 赛季结构与节奏编排(S) |
| 12.3 | 节点运营与内容日历 | 节点运营与 12 周内容日历(S) |
第 13 章 版本节奏与生命周期——把长线排下去
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 版本列车与内容节奏 | 版本列车与内容节奏(S+D) |
| 13.2 | 内容产能与排期 | 内容产能测算与排期(S+D) |
| 13.3 | 生命周期与退场策略 | 生命周期曲线与退场策略(D) |
第四部分:案例与收官(第 14–16 章)
第 14 章 案例:从立项到上线——把三卷串成一条线
| 节 | 文章 | 核心内容 |
|---|---|---|
| 14.1 | 立项到上线的时间线 | 《合成小岛》立项到上线的时间线(D) |
| 14.2 | 关键决策复盘 | 关键决策的复盘与对照(D) |
| 14.3 | 数据表现与迭代 | 数据表现与迭代动作(S+D) |
第 15 章 典型失败案例——别人栽过的坑
| 节 | 文章 | 核心内容 |
|---|---|---|
| 15.1 | 玩法、数值与变现的典型失败 | 玩法、数值与变现的典型失败(X+S) |
| 15.2 | 买量与留存的典型失败 | 买量与留存的典型失败(X+S) |
| 15.3 | 运营与合规的典型失败 | 运营与合规的典型失败(X+S) |
第 16 章 三卷收官:完整方案与交付——把方案交出去
| 节 | 文章 | 核心内容 |
|---|---|---|
| 16.1 | 把三卷装配成完整方案 | 把三卷装配成一份完整方案(S) |
| 16.2 | 全链路仿真验收 | 全链路仿真验收(S+P) |
| 16.3 | 原型回放与方案交付 | 原型回放与方案交付(W+B) |
附录
| 篇目 | 核心内容 |
|---|---|
| 附录 D:全书公式、参数与数据集索引 | pebble/ 文件索引、l<章号>_ 命名约定、公式与参数速查、六层复现命令 |
三条阅读路径
路径 A:变现与收入课(第 1–4 章顺序读)
从广告形态与收益模型开始,经内购与混合变现、收入拆解与 LTV,到定价与促销。这条路径回答「钱从哪来、账能不能算平」。读完你能用一段可跑的仿真解释 ARPDAU 与回本周期,并给出一个价格与频次的合理区间。
路径 B:增长与数据课(第 5–8 章顺序读)
从买量渠道与素材开始,经自然增长与流量、留存漏斗与召回,到实验与决策。这条路径回答「用户从哪来、怎么留住、怎么用数据说话」。读完你能算出混合 CAC、D1/D7/D30 留存曲线与一个实验所需的最小样本量。
路径 C:上线与运营课(第 9–16 章顺序读)
从提审发布与合规开始,经数据体系、活动赛季、版本节奏与生命周期,到案例复盘与三卷收官。这条路径回答「怎么上线、怎么不踩线、怎么活得久、怎么交方案」。读完你能拿出一份可交付的完整方案,并用全链路仿真证明它自洽。
常见问题速查
| 你想解决的问题 | 看哪节 |
|---|---|
| 广告位放哪、放几个? | 1.1 、1.3 |
| 一段广告能带来多少收入? | 1.2 |
| 内购点怎么放、档位怎么定? | 2.1 |
| 广告和内购该各占多少? | 2.2 |
| 礼包 / 通行证 / 订阅怎么选? | 2.3 |
| ARPDAU 怎么算? | 3.1 |
| 多久能回本、LTV 怎么建? | 3.2 |
| 哪个参数最影响收入? | 3.3 |
| 该不该降价、降价有什么副作用? | 4.3 |
| 买量渠道怎么选、出价怎么定? | 5.1 |
| 素材怎么迭代、和玩法不一致怎么办? | 5.2 、5.3 |
| 不花钱怎么涨、裂变怎么做? | 6.1 |
| 一笔预算怎么在渠道间分? | 6.3 |
| 留存曲线怎么读、怎么召回? | 7.1 、7.2 |
| 实验要多少样本、怎么判显著? | 8.1 、8.2 |
| 提审要准备什么、被拒怎么办? | 9.1 |
| 怎么灰度放量、出事怎么回滚? | 9.2 |
| 上线前要检查哪些项? | 9.3 |
| 资质、备案、防沉迷有哪些要求? | 10.1 、10.3 |
| 指标怎么定义、埋点怎么规范? | 11.1 、11.2 |
| 活动怎么模板化、赛季怎么排? | 12.1 、12.2 |
| 版本节奏怎么定、什么时候退场? | 13.1 、13.3 |
| 别人是怎么失败的? | 15.1 、15.2 、15.3 |
| 怎么把三卷装配成一份完整方案? | 16.1 、16.2 |
卷三工具链命名约定
本卷所有 pebble/ 文件一律用 l<章号>_ 前缀(如 config/l03_ltv.json、sim/l03_ltv.py、core/src/l03/、core/test/l03_*.test.ts、web/build_l03_calculator.mjs),因为卷一的 ch 前缀与卷二的 e 前缀已被占用。这样 node --test 'core/test/l03_*.test.ts' 只会命中本卷第 3 章的测试,不会交叉匹配卷一、卷二的 ch*.test.ts 与 e*.test.ts。三卷共用同一套 config/ 约定:禁浮点、整数地板除、随机数可播种,故卷三的收入模型与卷一的市场模型、卷二的包体模型可以放进同一个工作区一起跑。
完整文件索引、逐层复现命令与排错顺序见附录 D 。
在进入正文之前,先用下面这段 S 层环境自检脚本确认运行时齐备——它同时适用于卷一、卷二、卷三,是整套书稿的第一条可运行命令。把它保存为 pebble/sim/ch00_env_check.py 后运行 /opt/homebrew/bin/python3 sim/ch00_env_check.py,会打印解释器路径、numpy / pandas 版本与 Node 版本,任一不满足即非 0 退出。
# 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())
本页是卷三目录,也是《小游戏开发实战》三卷本的收束。可以从第 1 章 1.1 广告形态与场景设计 开始顺序读,也可以先回卷一的目录 确认设计前提、回卷二的目录 确认工程与打磨产物,再用本卷把它们算成一门生意、推上线、交出去。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。