前两天,后台有网友发私信给我,问我如何抄引擎源码。我一愣,抄源码感觉像吃饭喝水一样自然。
抄源码的最明显的好处,就是抄之前不懂的内容,抄完后就懂了,至少懂一部分了。当然也可以只读不抄,不过,我脑子比较笨,好记性不如烂笔头。
抄那个版本呢?我建议抄最低版本的源码,单步调试最高版本的引擎
原因是
1,能够很快抄完,比如鬼火引擎两万多行,osg3万行,ogre7万多行。而高版本的引擎至少几十万行,抄到猴年马月了。
2,这里强烈推荐Ogre,ogre的注释特别多,注释和代码的比例大概是1:2。抄完ogre了,也就把图形学理解个差不多了。ogre的自带文档中也有框架图。如何派生,如何用的设计模式,很清楚了
3,新版本的引擎也是由旧版本逐渐迭代派生出来的。抄了旧的,就相当于抓住了这个引擎的脉络。
4,不要怕ogre过度设计。我在过的两个公司,其产品就是Ogre风格,这种产品的特点都有一个,那就是代码清晰,不是shi山。
5,抄代码还有好处,那就是平时写代码会自然带着这种风格。我觉得我的代码就是ogre的风格。带着引擎的风格,也就是说,你自己写的代码就不会是shi山。
6,抄源码对面试也有好处。我抄完鬼火,osg,ogre后,基本上面试难不倒我了。因为,我遇到的面试官,很少有能同时熟悉这几个引擎的。他们基本上不会再问什么问题了,是否能够录取就靠眼缘了。
7,另外,强烈建议把osg最长的一帧单步调试下,知道引擎在底层是如何运行的。如果抄源码是从下到上,那么调试引擎就是从上到下。引擎底层都是类似的。多线程渲染,游戏和渲染在不同的线程。
8,做完1到7后,可以再对照着写个mini引擎,多线程渲染的最好。
9,抄最低版本引擎也有个问题,那就是都是渲染管线都是固定流水线,不过也没多大关系,既然到了抄引擎这一步,应该已经学过了dx和opengl的可编程流水管线。没学过咋办?学呗,哈哈。
就这样吧。随时补充。想到哪里就写到哪里了。
文章建议从最低版本的源码开始抄,如Ogre,因其注释丰富,有助于理解图形学。抄源码能提升理解,特别是对于引擎的架构和设计模式。此外,调试引擎和编写迷你引擎作为实践也是重要的步骤。这种方法对面试准备也很有帮助,能加深对游戏引擎内部运作的理解。
709

被折叠的 条评论
为什么被折叠?



