我很想知道某个职称,即“优化专业的高级开发人员”。这不是实际的标题,但基本上是它的本质。在知识和技能方面,这对游戏行业意味着什么?我会假设基本的东西,如
但这只是我猜想的。这项工作所需的现实(和学术)基础知识是什么?
答案 0 :(得分:14)
这项工作需要大量的深度管道装配编程,算术优化算法(思考Duff's Device,无分支ifs),编译时计算(SWAR),meta-template programming,计算许多在非常大的寄存器中同时并行显示值(我忘记了它的名称)...您需要在操作系统基础知识,低级系统操作,线性代数和C ++尤其是模板上保持稳定。您也将非常熟悉PlayStation3的独特架构,并可能参与开发该公司游戏团队将在其上构建的环境库。
答案 1 :(得分:6)
一般来说,我同意以太的帖子;这通常更多地是关于低级优化而不是算法的东西。知道好的算法会派上用场,但是在游戏中很多情况下你比O(logN)解决方案更喜欢O(N)解决方案,因为第一个解决方案在缓存上更友好,并且需要更少的内存管理。所以你需要更全面的知识。
也许在更一般的层面上,该工作可能想知道您是否可以执行以下部分或全部操作:
......还有更多,我很有信心。
答案 2 :(得分:4)
这实际上很像我的工作。对此有用的现实知识:
每隔一段时间,人们就会问如何善于进行低级优化。有一些很好的信息来源,主要是专有的,但我认为这通常归结为经验。
答案 3 :(得分:1)
这是“如果你懂得它”的那种东西之一。很难列出细节,有些工作室会有不同的标准。
简而言之,“高级开发人员”部分意味着你已经在这个街区;你有多年的经验,你有出色的表现,并且已经发布了游戏。您应该具备广泛主题的工作知识,例如内存管理等内容。
“优化专业”本质上意味着您知道如何让游戏更快地运行。您已经花了大量时间成功优化已发布的游戏。你应该对算法,3d渲染(花费大量时间渲染),cpu内在函数,内存管理等方面有广泛的了解。您通常也应该对您正在使用的硬件有深入的了解(优化PS3可能与优化PC有很大不同)。
这至多是理解的起点。关键是在该主题中拥有重要的现实经验;在高级别,它最好是从已经发货的标题开始。