影响很大。硬件的功能及性能直接影响游戏软件的开发。
题主谈及PS3和Xbox360,本人参与过两个相关游戏项目的开发,就简单介绍一下它们硬件的差异如何影响软件开发。
PS3的特别之处,是它有一个主要的CPU(称为PPU),另外有6个可用的辅助处理单元(称为SPU)。软件开发难处在于,那些SPU各有256KB本地内存,开发者要把想并行计算的数据从主内存打包发送到SPU,完成工作后再把结果抄回来!SPU还用另一套指令集、编译程序!
PS3 Cell处理器
而Xbox360则是3核CPU,能正常地访问512MB主内存(统一内存架构)。虽然不是x86架构,但能直接用正常的多线程方式来做并行。
Xbox360 Xenon处理器
至于SDK,微软提供Direct3D 9变种的API,移植PC的代码变得简单得多。而PS3的图形API则是非常低阶的,显存的地址分配都要开发者自己实现。另外,游戏的优化是需要针对个别CPU/GPU去做的,例如用该CPU/SPU的SIMD指令集去编程。
如果同时还要跨平台至Wii,那才是恶梦!因为Wii的"GPU"是固定管道的!Shader Model 1.0都没有啊!做个材质效果要设置几十个渲染状态,像IQ题一样!想用cube map做反射效果要先把它贴在球体上渲染至frame buffer(render target都没有!),然后抄到纹理,再把纹理当作sphere map来用啊!!Wii所有内存加起来100MB都没有,而且有分快主内存、慢主内存、帧缓冲内存、纹理内存啊!!你说怎么影响软件开发!!
吐完。
— 完 —
本文作者:Milo Yip