游戏虚拟引擎自学_如何自学游戏引擎的开发?

我们公司引擎部门新员工,一般会有两个入门练习:

一是只用类似DrawPixel的函数,实现一个软件光栅化。

二是使用自家引擎做一个完整游戏。可以比较简单,但必须完整。

一个去鹅厂的小伙伴也做过类似跑酷类手游作为练手。

所以我觉得,从学习的角度,一边做游戏,一边做个玩具引擎,并不冲突。

做一个自己的引擎出来,满足技术好奇心,也能试验想法;

用一个开源图形引擎做一个类型的游戏,能了解组成部分和主要需求。了解

楼上有好多关于做游戏还是做引擎的讨论,都是有道理的。

如@张静vinjn 等所说,如果没做过一个完整的游戏,直接只做引擎,学习的效率和引擎的质量都不会太高。

但在很多人心里,会把引擎开发的这个工作神话。这种时候自己做一个引擎,对提高自己的信心会有帮助。大部分贬低引擎开发工作的人,至少都是有能撸一个的底气的(且不说质量)。

-------------------------------------------------------------------------------------------------------------

所以对两个方面,我都推荐一些自己感觉不错的资料:

游戏逻辑方面:推荐一个网站, Game Programming Patterns,作者把自己的书放github上,供读者提意见。

引擎架构方面:Game Engine Architecture,这本得看中文翻译的。

图形引擎方面,主要是算法和API,引擎架构抄一套别人的。

图形基础算法书籍:在lz的基础上,推荐一个3D Game Engine Design,里面的3D算法和原理讲解很详细,可惜有点老。

高级图形技术:除了Real Time Rendering 3和GPU Pro系列以外,可以跟KlayGE和OpenGPU。这个方向量力而行,国内现在的行情是转手游的多,一些复杂的效果研究太深入也可能发挥不了。

update:

下面评论有问,我贴一下。

软件光栅化可以简单理解为,只给你一个画点的函数,你需要用C++实现一个三维物体显示的过程。一般这个工作是由Direct3D/OpenGL的驱动实现来做的。

这个工作可以做的很难,也可以很简单。我们公司貌似所有客户端程序都会做这个,但要求跟老大有关。

最基本就是实现一个固定管线,包括顶点坐标的矩阵变化,画线,三角形填充光栅化算法,裁剪,Gouround光照,纹理坐标插值,ZBuffer等等。

要做好点,就可以把一个引擎Renderer部分的借口都实现了,用C++写个VS/PS,跟D3D/OpenGL平级。

你可能感兴趣的:(游戏虚拟引擎自学)