首席技术官  
世界经理人 > 首席技术官 > CTO图文 > 图文
 
 
面试游戏编程职位前,你需要知道的东西
2007-07-27 15:40 来源:

  很长时间以来,游戏产业不允许新的血液加入,因为每个职位都要求申请人有2年以上的经验. 但是现在是加入游戏产业的最好的时机. 因为研发队伍的急剧增长, 有经验的人很难找了, 所以越来越多的公司从大学里招人. 不管你上的是什么大学,你都有机会在游戏产业里找到一份工作. 你需要熟悉以下领域.

  数学 - 对于视频游戏开发,这个非常重要. 不,你不需要去记如何求一个绕x轴旋转的曲面的表面积. 你需要有很好的线性代数技能. 如果你不知道点乘的公式(a dot b = a.x * b.x + a.y * b.y + a.z *b.z )和它的几何意义(|a| *|b| * a和b夹角的余弦), 你是不可能获得工作的. 你需要知道如何把一个向量投影到另一个向量上(a到 b的投影 = (a dotb)/|b|^2* b) 以及一个平面上. 你需要知道向量积(叉乘)是什么(a x b = [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 放在矩阵的第一行,然后是第一个向量,最后一行是第二个向量, 然后计算这个行列式. 如果你不知道什么是行列式或者如何计算一个行列式, 这可不是个好的信号! 你应该知道一个矩阵的逆以及如何计算,你应该知道如何转置一个矩阵. 你应该知道什么是正交矩阵以及求它的逆的简单方法(求它的转置就行了). 熟悉各种坐标空间之间的转换是很重要的. 碰撞检测函数背后的数学原理也很需要学习. 你如何找到一条光线和另一条光线的碰撞点?一个平面呢?一个球面呢? 什么是四元数(quaternions)? 你如何对它们做一些常见的操作? 如果你的数学已经不那么熟了或者不知道如何开始, 我推荐 3D Math Primer for Graphicsand Game Development.我读过以后发现它很好地覆盖了所有的基础知识. 我没有读过别的书来做比较, 但是这本书肯定会给你打下很好地基础,同时它也是很多游戏开发中常见数学运算的参考资料.

  物理 - 你需要对各种抛物体的公式非常熟悉.如果你不能记住或推导出d = v0 * t + 0.5 * a * t^2, 你肯定会在面试或编程测试中遇上麻烦. 你应该能轻松解决任何涉及到抛物体和重力的问题.不论未知量是重力加速度, 发射角, y方向速度, xz方向速度, 时间,距离, 或其他任何可解的组合,你应该能没有任何困难的求出解来.你应该熟悉弹性和非弹性碰撞下的动量和动能变化. 滑动和摩擦力也是你应该理解的概念.

  C++ - 虽然一些地方还在用c多过c++,但是C++已经是游戏编程中向被广泛接受的几乎标准的语言. C++的知识是非常重要的.因为如果用的不好, 你会写出非常糟糕的代码.首先,你应该知道什么是虚函数,以及如何使用它. 理解虚函数表是如何工作的也同样重要,这样你就能够理解当你调用虚函数时需要的额外步骤,这些步骤会降低性能(每个对象都有一个隐藏的虚函数表指针[具体在哪取决于编译,并且对指针做类型转换时,this会有变化],这样调用一个虚函数,你需要根据这个指针找到那个函数表,然后跳到它所包含的函数指针所指的函数里,这会降低cache的效果). 知道如何有效地使用模板和操作符重载也很重要. 关于C++,好的OO设计是最重要的. 最常用的一些类层次很深而且很费解,你最后需要做可怕的虚拟继承或者为一些不需要的变量浪费内存.

  人工智能 - 我在大学里学习了标准的人工智能课程,但是这些东西没有一点在游戏AI中是可接受的. 教的很多算法很难实现或者对游戏而言不现实. 你知道什么是有穷状态机就够了. 绝大部分游戏使用有穷状态机, 而那些不用这个的游戏,使用的是简单的基于规则的系统. 白与黑(包括它的续集)是我能想到的唯一的使用了其他东西(神经网络)的例外, 而且很多玩家对它的结果并不满意. 如果你想找本书, 我推荐AI Game Programming Wisdom 3. 里面有两篇特别优秀的文章,一个是关于有趣的游戏AI设计,另一个是关于行为合成. 严肃的说,虽然书会很有帮助,但是学习游戏AI的最好的方法是实际做一个.

[1] [2] 下一页

关键词:            

  评论 文章“面试游戏编程职位前,你需要知道的东西”
1、凡本网注明“世界经理人”或者“首席技术官”的作品,未经本网授权不得转载,经本网授权的媒体、网站,在使用时须注明稿件来源:“世界经理人”或者“首席技术官”,违反者本网将依法追究责任。
2、凡注明“来源:xxx(非本站)”作品,不代表本网观点,文章版权属于原始出处单位及原作者所有,本网不承担此稿侵权责任。
3、欢迎各类型媒体积极与本站联络,互相签订转载协议。邮箱地址:icxonew@163.com
4、如著作人对本网刊载内容、版权有异议,请于该作品发表30日内联系本网,否则视为自动放弃相关权利。
5、本网投稿邮箱 icxonew@126.com 欢迎赐稿。
CTO社区重磅话题 CTO推荐
 吴锡桑:从游戏迷到CTO
 能让思科一身冷汗的5位华人
 一位独立软件工程师的困惑
 数据中心设计师:很酷的职业!
 求职80天 我经历的7大名企
 程序员每天该做的事
CTO博客推荐 热门下载
更多精彩,请访问首席信息官(cto.icxo.com)首页