游戏引擎编程自学清单游戏引擎编程指南
想要自学游戏引擎编程?这里有一份资源清单,或许可以供你参考。
这个博客将资料按照学习顺序进行了编排,但无需严格遵循,可以根据需要自由跳转学习。
指南包括七个部分,先来简单介绍一些关键内容:
1. 编程基础
- 《Handmade Hero》演示了如何用C语言构建引擎,但若完全零编程基础,其C语言入门讲解可能会稍显不足【图2】
- Stack Overflow的《The Definitive C++ Book Guide and List 》列举了多本经典教材:
2. 编程最佳实践
- 《The Rules of Programming: How to Write Better Code 》阐述了Sucker Punch工作室在自研游戏引擎中采用的编程实践【图3】
- Scott Meyers的《Effective C++》与《Effective Modern C++》系统梳理了面向对象代码库中广泛采用的标准C++惯用法
3. 算法与数据结构
- Steven Skiena所著的《The Algorithm Design Manual》采用C语言讲解相关知识体系【图4】
- Henry S. Warren, Jr. 的《Hacker’s Delight》专注位运算技巧
4. 计算机体系结构与性能优化
- Casey Muratori主讲的《Performance-Aware Programming Series 》教授核心要点
- Randal E. Bryant / David R. O’Hallaron的《Computer Systems: A Programmer’s Perspective》可作为补充
- 关于汇编语言、数据导向设计、数据导向设计等专项领域另有其他推荐
5. 数学
- 微积分:Robert Ghrist的系列教学视频《Calculus GREEN 》 【图5】
- 线性代数入门:Robert Ghrist主讲的《Calculus BLUE Vol 1 : Vectors & Matrices》、3Blue1Brown主讲的《Essence of Linear Algebra 》以及Gilbert Strang的《Linear Algebra》
6. 引擎编程
- 通用引擎知识:Jason Gregory所著的《Game Engine Architecture》,全面概述了引擎的系统架构,能帮助你熟悉典型引擎的各个功能模块【图6】
- 渲染模块:作为引擎最核心的子系统之一,涉及的部分众多,详情请见资源清单
- 物理:Chris Hecker整理了一份参考资料清单:
- 网络同步技术:在《What is Rollback Netcode?》中,Muno通过GIF动画展现了游戏网络同步可能面临的典型问题
事实上,你无须掌握完上述的全部知识,实际工作中反而能加速学习。
在你开始自己的项目之前,Jeremy Ong的《Grokking Big Unfamiliar Codebases》或许能帮助你从容面对公司庞大的引擎代码库。【图7】
完整资源清单链接: