转在面试一个游戏编程职位前你需要知道的东西

转在面试一个游戏编程职位前你需要知道的东西

ID:30469008

大小:89.05 KB

页数:12页

时间:2018-12-30

转在面试一个游戏编程职位前你需要知道的东西_第1页
转在面试一个游戏编程职位前你需要知道的东西_第2页
转在面试一个游戏编程职位前你需要知道的东西_第3页
转在面试一个游戏编程职位前你需要知道的东西_第4页
转在面试一个游戏编程职位前你需要知道的东西_第5页
资源描述:

《转在面试一个游戏编程职位前你需要知道的东西》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、转在面试一个游戏编程职位前你需要知道的东西很长时间以来,游戏产业不允许新的血液加入,因为每个职位都要求申请人有2年以上的经验.但是现在是加入游戏产业的最好的时机.因为研发队伍的急剧增长,有经验的人很难找了,所以越来越多的公司从大学里招人.不管你上的是什么大学,你都有机会在游戏产业里找到一份工作.你需要熟悉以下领域.数学-对于视频游戏开发,这个非常重要.不,你不需要去记如何求一个绕x轴旋转的曲面的表面积.你需要有很好的线性代数技能.如果你不知道点乘的公式(adotb=a.x*b.x+a.y*b.y+a.z*b.z)和它的几何意义(

2、a

3、*

4、b

5、*a和b夹角的余弦),你是不可能获得工作的.你

6、需要知道如何把一个向量投影到另一个向量上(a到b的投影=(adotb)/

7、b

8、^2*b)以及一个平面上.你需要知道向量积(叉乘)是什么(axb=[a.y*b.z–a.z*b.y,a.z*b.x–a.x*b.z,a.x*b.y–a.y*b.x]),以及它的几何意义(一个和两个向量都垂直的向量,长度等于原来两向量的长度乘以两向量的夹角的正弦).我记忆向量积公式的方法是把i,j,k放在矩阵的第一行,然后是第一个向量,最后一行是第二个向量,然后计算这个行列式.如果你不知道什么是行列式或者如何计算一个行列式,这可不是个好的信号!你应该知道一个矩阵的逆以及如何计算,你应该知道如何转置一个矩阵.你应该

9、知道什么是正交矩阵以及求它的逆的简单方法(求它的转置就行了).熟悉各种坐标空间之间的转换是很重要的.碰撞检测函数背后的数学原理也很需要学习.你如何找到一条光线和另一条光线的碰撞点?一个平面呢?一个球面呢?什么是四元数(quaternions)?你如何对它们做一些常见的操作?如果你的数学已经不那么熟了或者不知道如何开始,我推荐"3DMathPrimerforGraphicsandGameDevelopment".我读过以后发现它很好地覆盖了所有的基础知识.我没有读过别的书来做比较,但是这本书肯定会给你打下很好地基础,同时它也是很多游戏开发中常见数学运算的参考资料.物理-你需要对各种抛物体的

10、公式非常熟悉.如果你不能记住或推导出d=v0*t+0.5*a*t^2,你肯定会在面试或编程测试中遇上麻烦.你应该能轻松解决任何涉及到抛物体和重力的问题.不论未知量是重力加速度,发射角,y方向速度,xz方向速度,时间,距离,或其他任何可解的组合,你应该能没有任何困难的求出解来.你应该熟悉弹性和非弹性碰撞下的动量和动能变化.滑动和摩擦力也是你应该理解的概念.C++-虽然一些地方还在用c多过c++,但是C++已经是游戏编程中向被广泛接受的几乎标准的语言.C++的知识是非常重要的.因为如果用的不好,你会写出非常糟糕的代码.首先,你应该知道什么是虚函数,以及如何使用它.理解虚函数表是如何工作的也同

11、样重要,这样你就能够理解当你调用虚函数时需要的额外步骤,这些步骤会降低性能(每个对象都有一个隐藏的虚函数表指针[具体在哪取决于编译,并且对指针做类型转换时,this会有变化],这样调用一个虚函数,你需要根据这个指针找到那个函数表,然后跳到它所包含的函数指针所指的函数里,这会降低cache的效果).知道如何有效地使用模板和操作符重载也很重要.关于C++,好的OO设计是最重要的.最常用的一些类层次很深而且很费解,你最后需要做可怕的虚拟继承或者为一些不需要的变量浪费内存.人工智能-我在大学里学习了标准的人工智能课程,但是这些东西没有一点在游戏AI中是可接受的.教的很多算法很难实现或者对游戏而言

12、不现实.你知道什么是有穷状态机就够了.绝大部分游戏使用有穷状态机,而那些不用这个的游戏,使用的是简单的基于规则的系统."白与黑"(包括它的续集)是我能想到的唯一的使用了其他东西(神经网络)的例外,而且很多玩家对它的结果并不满意.如果你想找本书,我推荐"AIGameProgrammingWisdom3".里面有两篇特别优秀的文章,一个是关于有趣的游戏AI设计,另一个是关于行为合成.严肃的说,虽然书会很有帮助,但是学习游戏AI的最好的方法是实际做一个.图形学-这是一个重要的领域.如果图形是你的主要感兴趣的方向,那么你应该知道的比这里说的多.但是,不论你想要在这个产业里做什么职位,你应该知道一

13、些基础.你需要知道什么是渲染状态以及通常都有哪些渲染状态?(cull,zwrite,ztest之类的).什么是标准的光照方程?(I=ka*Ia+Ii*(kd*(LdotN)+ks*(RdotV)^n)).材质映射是如何工作的?材质的wrapping和clamping有什么区别?如何高效的渲染程序中一组几何体?(按照渲染状态组织你的几何体,按照你的硬件最快的primitive分批,饭后发给图形卡).你需要知道skinning是如何工作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。