Skip to content

fengsheng-v/cpp-game-engine-book

 
 

Repository files navigation

游戏引擎 浅入浅出

GitHub license GitHub license GitHub license

其实做游戏开发的,每天与游戏引擎打交道,都会心痒痒想了解游戏引擎是怎么做的。

但是游戏引擎是如此庞大的一个工程,如虚幻这行业至尊,代码量更是复杂到以千万行计,个人想完成一个游戏引擎似乎是不可能的事情。

不如退而求其次,从实现一个简单的游戏引擎入门,然后再深入Unity/Unreal的源码去钻研。

本书拆分游戏引擎的多个模块,到书中的每一章进行讲解,最终实现一个简单的游戏引擎。

Useful links

📘 在线阅读

📙 随书项目实例

📗 Markdown

Directory

📁 files

存放 blender、xmind、drawio 等源文件。

📁 imgs

存放 markdown 图片。

📁 pages

存放 markdown 文档。

📁 samples

存放随书实例 CLion 工程。

Chapter

章节目录如下图,因为是XMind做的图,可能会更新不及时。

Content

本书主要内容

✅ 各种开源库的使用方式

✅ 如何将开源库组装成游戏引擎

本书少量介绍

❤️ 图形学

❤️ 物理学

❤️ 硬件知识

对从事游戏性能优化工作的开发者,从本书中或许可以找到以下问题的答案:

✅ 为什么要合并DrawCall?

✅ 为什么要减少顶点?

✅ 为什么要减少骨骼数量?

✅ 为什么要将图片压缩为不同的格式?

✅ 为什么要烘焙灯光贴图?

✅ 为什么要减少阴影?

✅ 为什么……?

Learning style

图书以实战为主,大部分章节都有CLion实例项目,项目路径在章节开头或结尾给出。

个人推荐的学习方式如下:

▶️ 打开CLion项目,编译运行,看看效果。

▶️ 过一遍代码,断点调试一下。

▶️ 看一遍章节内容。

▶️ 再过一遍代码。

Find&Load CLion Project

每一小节的文章开头都贴出了本小节的CLion项目,按照下面Gif图指引打开。

Resource download

本书Markdown以及章节配套项目托管在Github上,读书过程中有疑问、发现错误都可以提Issues。

Github:https://github.com/ThisisGame/cpp-game-engine-book

本书使用到的其他工具,都在GameDevTools中集成。

GameDevTools: https://github.com/ThisisGame/GameDevTools

Discuss

如果有疑问,可以先在issue提问,也可以加入q群(879187705)讨论,得到答案后,更新issue,方便其他人查询。

https://raw.githubusercontent.com/ThisisGame/makegameengineatnight/main/imgs/readme/qq_qrcode.png

Contributors

项目目前由我个人维护更新, you could become one too !

ThisisGame
陈鹏

Sponsors

GitHub
GitHub

JetBrains
JetBrains

Packages

No packages published

Languages

  • C++ 78.5%
  • QML 20.0%
  • Batchfile 1.5%