其实做游戏开发的,每天与游戏引擎打交道,都会心痒痒想了解游戏引擎是怎么做的。
但是游戏引擎是如此庞大的一个工程,如虚幻这行业至尊,代码量更是复杂到以千万行计,个人想完成一个游戏引擎似乎是不可能的事情。
不如退而求其次,从实现一个简单的游戏引擎入门,然后再深入Unity/Unreal的源码去钻研。
本书拆分游戏引擎的多个模块,到书中的每一章进行讲解,最终实现一个简单的游戏引擎。
📘 在线阅读
📙 随书项目实例
📗 Markdown
📁 files
存放 blender、xmind、drawio 等源文件。
📁 imgs
存放 markdown 图片。
📁 pages
存放 markdown 文档。
📁 samples
存放随书实例 CLion 工程。
章节目录如下图,因为是XMind做的图,可能会更新不及时。
本书主要内容
✅ 各种开源库的使用方式
✅ 如何将开源库组装成游戏引擎
本书少量介绍
❤️ 图形学
❤️ 物理学
❤️ 硬件知识
对从事游戏性能优化工作的开发者,从本书中或许可以找到以下问题的答案:
✅ 为什么要合并DrawCall?
✅ 为什么要减少顶点?
✅ 为什么要减少骨骼数量?
✅ 为什么要将图片压缩为不同的格式?
✅ 为什么要烘焙灯光贴图?
✅ 为什么要减少阴影?
✅ 为什么……?
图书以实战为主,大部分章节都有CLion实例项目,项目路径在章节开头或结尾给出。
个人推荐的学习方式如下:
每一小节的文章开头都贴出了本小节的CLion项目,按照下面Gif图指引打开。
本书Markdown以及章节配套项目托管在Github上,读书过程中有疑问、发现错误都可以提Issues。
Github:https://github.com/ThisisGame/cpp-game-engine-book
本书使用到的其他工具,都在GameDevTools中集成。
GameDevTools: https://github.com/ThisisGame/GameDevTools
如果有疑问,可以先在issue提问,也可以加入q群(879187705)讨论,得到答案后,更新issue,方便其他人查询。
项目目前由我个人维护更新, you could become one too !
陈鹏 |
GitHub |
JetBrains |