本期为第 2 轮精选,聚焦 programming(编程与开发) 分类。我们避开已被前轮覆盖的"GPU 并行计算与图形编程"那一类以渲染着色器为主的内容,转而聚焦一个更上游、也更被低估的硬核方向——游戏引擎架构与玩法工程(Game Engine Architecture & Gameplay Engineering)。
为什么要读这个方向?因为它几乎是把一名程序员"拖入系统工程深水区"性价比最高的训练场。一个完整引擎要同时处理:分层架构、事件系统、实体-组件-系统(ECS)、资源管理、内存分配器、渲染抽象、脚本绑定、编辑器反射、序列化、并行调度……这些主题与数据库内核、操作系统、通信协议栈在工程方法论上高度同构。对 51学通信 的技术读者而言,理解一个引擎的"分层 + 事件总线 + 资源生命周期"骨架,几乎可以直接迁移到 5G 核心网 NF(网络功能)的服务编排与消息驱动模型。
YouTube 上这一领域有一批"从零造引擎"的长期连载频道,体量惊人、信息密度极高。本期精选 7 个频道,覆盖从高层玩法设计到底层软件光栅化、从 C++ 到 Java 的完整光谱,并按其在"引擎分层架构"中所属的层位进行组织,便于读者按需取用。
| 频道 | 创作者 | 主语言 | 核心定位 | 引擎架构中的层位 | 订阅量级(约) |
|---|---|---|---|---|---|
| The Cherno | Yan Chernikov | C++ | Hazel 引擎从零连载 | 框架层 / 引擎整体 | 75 万+ |
| javidx9 (OneLoneCoder) | David | C++ | 软件渲染与底层引擎 | 内核层 / 软件光栅化 | 28 万+ |
| ThinMatrix | Karl | Java + OpenGL | 3D 引擎子系统教学 | 渲染层 / ECS | 52 万+ |
| Sebastian Lague | Sebastian Lague | C# (Unity) | 算法与过程化生成 | 玩法系统层 / 算法 | 330 万+ |
| Game Maker's Toolkit | Mark Brown | 设计分析 | 关卡与玩法设计解构 | 设计层 / 玩法意图 | 260 万+ |
| PardCode | PardCode | C++ (Win32/DX) | 3D 引擎从零实现 | 平台层 / 子系统 | 12 万+ |
| Bisqwit | Joel Yliluoma | C++(极致底层) | 从零手写引擎/硬件级编程 | 内核层 / 位运算艺术 | 37 万+ |
Yan Chernikov(前 EA / CryEngine 开发者)的 Hazel 系列是这个领域最权威的连载之一。他从空项目开始,一集一集搭出一个真实的 2D 游戏引擎:先建窗口与分层(Layer)抽象,再引入事件系统(Event Dispatcher),接着是渲染抽象层(RendererAPI 把 OpenGL/Vulkan 的差异藏起来)、实体系统、序列化、脚本、再到自研编辑器。
关键洞察:
- 分层与解耦:Hazel 用 Layer 与 LayerStack 管理游戏循环中的输入、UI、场景,这是引擎区别于"一个大 main 函数"的本质。
- 引用计数的智能指针体系:他专门用一集讲 Scope/Ref(scoped_ptr/shared_ptr 别名)与生命周期,这对通信网元里大量共享上下文对象同样适用。
- 性能剖析(Instrumentation):早期就埋入宏驱动的计时器与 Chrome tracing 输出,体现了"引擎天生是可观测系统"的理念。
实用价值:把他的事件系统与分层抽象直接抽象成你自己的服务框架骨架。适合人群:有 C++ 基础、想从"写业务"跃迁到"写框架/中间件"的工程师。
频道:youtube.com/@javidx9 | 主站:onelonecoder.com
David 的 OneLoneCoder 系列证明"一台只会在控制台画字符的机器也能跑引擎"。他从 olcConsoleGameEngine 起步,手写游戏循环、缓冲区、软件三角形光栅化、深度排序,后来演进成跨平台的 olc::PixelGameEngine。
关键洞察:
- 游戏循环的最小本质:OnUserCreate + OnUserUpdate 两回调,把"引擎"压缩到最纯粹的形态——这正是理解任何引擎 Game Loop 的最佳起点。
- 软件光栅化:手动实现三角形填充、纹理映射、深度缓冲,逼你直面"屏幕上每个像素从哪来"。这种底层肌肉记忆,会让你日后理解 GPU 管线时毫无障碍。
- 教学叙事:他的讲解带着英国式幽默与手写板推导,节奏慢但密度高。
实用价值:用最小依赖(一个 .h)理解引擎内核,是排查渲染/性能问题的认知基石。适合人群:想真正"懂底层"的嵌入式/系统工程师。
Karl 用 LWJGL(Java 绑定的 OpenGL)逐集构建一个 3D 引擎。最珍贵的是他对 ECS(实体-组件-系统) 模式的完整实现教学——把"传统继承式对象图"重构为"组件 + 系统"的数据导向架构,并贯穿光照、地形、水面、动画等子系统。
关键洞察:
- 从 OOP 到 ECS 的范式迁移:他亲手演示如何拆掉臃肿的 Entity 基类,这是理解现代引擎(Unity DOTS、Bevy、EnTT)架构趋势的活教材。
- 渲染管线子系统化:MasterRenderer、EntityRenderer、TerrainRenderer 各司其职,体现"管线即职责链"。
- 资源与内存纪律:显存对象(VAO/VBO)的创建/销毁必须成对,与任何"获取即释放"的资源管理模式同构。
实用价值:ECS 思想可迁移到任何"大量同质实体 + 关注点分离"的系统(如网元中的会话管理)。适合人群:Java 工程师、想入门数据导向设计的开发者。
频道:youtube.com/c/SebastianLague
Sebastian 是这一领域视觉与叙事的天花板。他的"Coding Adventures"系列把搜索、A*、流体、过程化地形、遗传算法、魔方求解等做成可玩的可视化系统。订阅超 330 万,是技术内容极罕见的"现象级"。
关键洞察: - 算法工程化:他不只讲算法,更讲"怎么把算法变成可交互、可调参的实时系统"——这恰是从"刷题"到"工程"的鸿沟。 - 过程化生成(Procedural Generation):噪声、LOD、星球生成,展示了"用代码创造世界"的工程方法论。 - 调试可视化:每集大量花在"让中间状态看得见"上,是软件工程中"可观测性"的最佳示范。
实用价值:学习如何为一个复杂算法系统设计交互式调试与可视化前端。适合人群:所有想提升"工程审美"的开发者。
频道:youtube.com/@GMTK | Wikipedia
Mark Brown(前英国游戏媒体记者)的 GMTK 不写一行代码,却是任何引擎开发者都该看的设计层内容。他的"Designing for ..."系列、关卡设计 Bootcamp、年度 Game Jam 复盘,把"为什么好玩"拆解成可操作的设计约束。
关键洞察: - 机制即约束:好的玩法来自"约束下的涌现",与"好的系统来自清晰的接口契约"同理。 - 玩家反馈回路:他用 juiciness、camera、control 等维度分析手感,本质是在讲"用户感知层的系统工程"。 - 可度量设计:把主观的"好玩"转化为可拆解、可测试的设计模式。
实用价值:在做任何"面向人"的系统(产品、运维面板、协议信令流程)时,借鉴其反馈回路与约束设计。适合人群:技术 leader、产品技术工程师。
频道:youtube.com/c/PardCode | 教程站
PardCode 的"C++ 3D Game Tutorial Series From Scratch"是少数敢于从 Win32 原生窗口、DirectX 图形管线一路手写到完整 3D 引擎的连载。他不依赖 Unity/Unreal,所有子系统(Graphics Engine、Input System、资源加载)都逐行实现。
关键洞察: - 平台层与图形层的清晰分离:先写平台无关的抽象接口,再用 DX 实现——典型的"接口与实现分离"工程范式。 - 图形管线的工程化:从常量缓冲、根签名到绘制调用调度,每一步都是可对照 D3D 文档的实现。 - 增量重构纪律:从能画一个三角形,逐步到光照、模型加载,体现"小步可验证"的工程节奏。
实用价值:理解图形 API 在引擎中的真实封装方式,对做协议栈/驱动层封装的工程师是极好的范式参考。适合人群:Windows 平台、图形/驱动方向工程师。
频道:youtube.com/@Bisqwit | 主页
芬兰程序员 Joel Yliluoma(Bisqwit)的频道是这一领域最"偏门"也最"硬核"的存在。他直播式地从零手写 NES 模拟器、自研编译器、位运算魔法、AdLib 音频合成,节奏缓慢、信息密度极高,每一行代码都经得起反复看。
关键洞察: - 位运算与底层优化:他用移位技巧合成算术运算,把"CPU 是怎么算的"摆到台面,是嵌入式/协议字段处理思维的极致训练。 - 从零造一切:模拟器、编译器、引擎——他示范了"理解一个系统最好的方式是重写它"。 - 工程美学:他的代码风格、配色、字体选择本身就是一种"匠人精神"的展示。
实用价值:培养对位级、字节级操作的直觉,直接服务于协议解析、报文构造、固件开发。适合人群:嵌入式、固件、协议栈工程师——与 51学通信 读者画像高度重合。
下面这张图把 7 个频道锚定在一个典型游戏引擎的分层架构上,读者可据此判断自己缺哪一层、补哪个频道。
flowchart TB
subgraph Design["设计层(玩法意图)"]
GMTK["GMTK<br/>玩法/关卡设计解构"]
end
subgraph Gameplay["玩法系统层(算法与逻辑)"]
LAGUE["Sebastian Lague<br/>算法/过程化/可交互系统"]
end
subgraph Framework["框架层(引擎整体架构)"]
CHERNO["The Cherno<br/>Hazel: 分层/事件/ECS/编辑器"]
THIN["ThinMatrix<br/>ECS/渲染管线子系统化"]
end
subgraph Platform["平台层(OS/图形API封装)"]
PARD["PardCode<br/>Win32+DX 3D引擎"]
end
subgraph Kernel["内核层(底层渲染/位级)"]
JAV["javidx9<br/>软件光栅化/最小引擎"]
BISQ["Bisqwit<br/>位运算/模拟器/编译器"]
end
GMTK --> LAGUE --> CHERNO
CHERNO --> THIN --> PARD --> JAV --> BISQ
style GMTK fill:#fde68a
style LAGUE fill:#bbf7d0
style CHERNO fill:#bfdbfe
style THIN fill:#bfdbfe
style PARD fill:#ddd6fe
style JAV fill:#fecaca
style BISQ fill:#fecaca
一张学习路径图:从"懂设计意图"到"会造引擎",再到"啃底层光栅化"。
flowchart LR
A([目标: 理解引擎架构]) --> B{起点?}
B -->|有C++基础| C[The Cherno:Hazel]
B -->|想懂底层| D[javidx9]
B -->|想懂设计| E[GMTK]
C --> F[ThinMatrix:ECS]
F --> G[PardCode:图形管线]
G --> H[Bisqwit:位级底层]
D --> H
E --> I[Sebastian Lague:算法工程化]
H --> J([能独立设计<br/>大型系统框架])
I --> J
把七强频道的内容抽象出来,有五条可迁移到任何大型系统(包括通信网元)的工程方法论:
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
