首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏行业中作为乐观主义者的基本技能

游戏行业中作为乐观主义者的基本技能
EN

Stack Overflow用户
提问于 2009-11-26 03:45:28
回答 4查看 536关注 0票数 3

我对某个职位很好奇,那就是“具有优化专业的高级开发人员”。这不是真正的标题,但本质上是这样的。这在博彩业的知识和技能方面意味着什么?我会假设一些基本的东西

  • B-树
  • 路径查找
  • 算法分析
  • 内存管理
  • 线程处理(以及线程安全、原子性等相关主题)

但这只是我的猜测。这份工作所需的实际(和学术)基础知识是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-26 04:25:29

几年前,我在北美一家大型游戏工作室为这样的职位进行了面试。

这项工作需要大量的深流水线装配编程,算术优化算法(考虑达夫装置,无分支ifs),编译时计算(斯瓦尔),元模板编程,在非常大的寄存器中并行计算多个值(我忘记了它的名称)。您需要在操作系统基础、低级系统操作、线性代数和C++ (特别是模板)方面保持扎实。您还将非常熟悉PlayStation3的特殊架构,并且可能会参与为该公司的游戏团队构建的环境开发库。

票数 15
EN

Stack Overflow用户

发布于 2009-11-26 12:01:23

总的来说,我同意以太的观点;这通常更多的是关于低层次的优化,而不是算法方面的内容。了解好的算法会派上用场,但在游戏中,您更喜欢O(N)解决方案而不是O(logN)解决方案,因为第一种解决方案在缓存上要友好得多,并且需要更少的内存管理。所以你需要更全面的知识。

也许在更一般的层面上,这项工作可能想知道您是否可以完成以下部分或全部工作:

  • 使用CPU分析器(例如。VTune,CodeAnalyst),在采样和调用图形模式下;
  • 使用图形分析器(如。微软Pix,NVPerfHud)
  • 编写自己的分析/计时器代码,并使用它生成有用的输出;
  • 重写函数以删除动态内存分配;
  • 重新组织和减少数据,使其对缓存更加友好;
  • 重新组织数据,使其更易于SIMD;
  • 编辑图形着色器,以使用更少和更便宜的指令;

...and更多,我敢肯定。

票数 6
EN

Stack Overflow用户

发布于 2009-12-31 05:10:20

这其实很像我的工作。这方面的实际知识是:

  • 有使用各种类型的分析器定位瓶颈的经验。
  • 在确定这些瓶颈存在的原因方面的经验和技巧。
  • 很好地理解CPU缓存、虚拟内存和常见瓶颈,如负载命中存储惩罚、L2丢失、浮点代码等。
  • 对多线程和无锁和锁定解决方案有很好的理解。
  • 很好地理解HLSL和图形编程,包括线性代数。
  • 对SIMD技术和相关硬件上的具体SIMD接口(配对单,VMX,SSE/MMX)有很好的理解。
  • 熟悉相关硬件上使用的汇编语言。如果编写程序集,很好地理解指令配对、分支预测、延迟插槽(如果适用),以及目标平台上的任何和所有适用的暂停。
  • 很好地理解编译和链接过程,目标硬件上使用的二进制格式,以及操作上述所有内容的工具(包括可用的编译器标志和优化)。

每隔一段时间,人们就会问如何做好低层次的优化工作。有一些好的信息来源,主要是专有的,但我认为它一般归结为经验。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1801431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档