游戏机系统和API的发展(主机篇)
gpu吧
全部回复
仅看楼主
level 13
现在各大平台的游戏都在搞底层化,而说到这,自然要参考下游戏机上的设计
首先,我们来看看游戏机和PC/MP(我把手机平板等移动平台缩写为MP,Mobile Platform)的运行环境有什么不同。
在PC/MP上游戏和app统一在操作系统下运行,由操作系统统一管理软硬件,而在游戏主机上有很大区别。
早期游戏机并没有操作系统概念,比如FC到PS时代,只包含一个BIOS ROM,储存最基本的函数库,而图形库,驱动,UI等都集成在游戏内,由游戏本身提供,可以看成游戏就是操作系统。
接下来主要介绍全面进入3D时代之后主机,挑一些代表性的平台说。
世嘉的DC是第一个在游戏机上引入操作系统的平台(严格来说并不是第一,不过我们现在不纠结这个)。引入的是微软的Windows CE系统,包含一个基于DirectX 6.0的接口,为此微软还提供了完整的开发工具和环境,不过DC上用微软环境开发的游戏并没有几个。但是奇葩的是,DC还包含一个世嘉的更底层的native OS,大部分游戏都是基于native OS,native OS提供的library性能远比微软的接口强。
然后到大名鼎鼎的PS2,不同于DC,PS2没有什么复杂的操作系统环境,只在BIOS里集成了EE内核,OSD界面和IOP模块,一共加起来就4MB,后来推出的HDD Linux和游戏并没有关系。那么,PS2的API或者图形库是什么呢,然而实际情况是PS2压根没图形库,图形库得由开发商自己开发并集成到游戏中,以前硬件还没那么复杂没图形库就算了,到了PS2怪异又复杂的架构居然还没图形库,开发环境那叫一个不友好,为此出现了一个第三方的图形库GSKit。不过在全面了解PS2架构后,完全匹配化后的图形库确实可以最大限度的挖掘机能,所以我们可以看到PS2游戏的画面也是越来越好。
终于,老任在这方面发了一次力了,在NGC中加入了一个图形API,这个API不仅提供强大的性能,面对开发者又非常友好,因为非常类似于OpenGL,这个接口也一直被老任之后的各大主机所采用,就是老任自家的GX。游戏则依然是直接运行于硬件之上,开发商需要自己开发驱动。
微软并没有帮助世嘉打开多少市场,而微软本身对于和世嘉的合作似乎也不满意,终于打造了自己的游戏主机平台XBOX。先简单说下,XBOX的操作系统基于Windows 2000,包含Win32 API和DirectX 8.0,关于XBOX我会开贴详细说,这里就不多介绍了。
再到PS3/XBOX 360,操作系统开始变得复杂起来,两个平台都采用了Hypervisor的系统架构,这种架构把操作系统和游戏运行环境分割开来,所以我们在界面是感到用户界面很直观很好用,而在游戏过程当中也不会被系统干扰影响性能或者出现运行问题。
在PS3中,主要包含UI,Core OS和Game OS,UI(XMB)建立在Core OS之上,Core OS基于FreeBSD内核,PS3的CPU核心,PPE和其中一个SPE主要用于运行操作系统,而剩下的SPE则由游戏独占。当运行游戏的之后,Hypervisor切换到Game OS,此时硬件专注于游戏的运行,而系统则会保存在固定的内存空间中。PS3的API分为两部分,用于GPU的libGCM,和用于SPE的libSPE。SPE在PS3硬件中占据非常重要的地位,可以实现类似GPGPU的操作,在开发模式上,开发者可以回到以前的无library时代,自己开发定制的library,以此全面挖掘PS3的性能。不过这种架构也给开发者带来了不便所以出现早期画面简陋的情况。
XBOX360同样是Hypervisor架构,同样分离操作系统和游戏运行环境。XBOX360的操作系统基于Windows NT5.0内核,接口采用定制的DirectX,基于9.0和10.0之间。这个接口为CPU的矢量单元VMX做了优化,使VMX支持DirectX数据类型。XBOX360的环境比PS3友好的多,GPU还支持GPGPU,所以很多跨平台游戏画面都略好于PS3版。
至于本世代的PS4,XBOX ONE,以后也会开贴做更多说明的,这里先不做过多介绍了。主要说虽然在硬件架构上很接近PC,但软件架构上还是有这明显的差异化,这点不会改变。
本来掌机也要写在一起的,结果发现太长了,还是分开单独说好。
2015年03月03日 08点03分 1
level 8
感谢楼主的分享.
2015年03月18日 11点03分 3
level 14
我只关心PS 4 XB1会不会中途出一个性能更厉害的版本
2015年03月21日 14点03分 4
主机一般来说会出改良版,但不会加强性能。至少还没有这样的先例,以目前的情况来看主机平台还不会走像PC那样频繁更新硬件的方式。单一硬件的开发成本是逐年降低的,但玩家基数确实逐年增加,所以游戏厂商的收益是逐年增加的,但如果频繁更新硬件性能,游戏厂商也要频繁增加成本,和PC比就失去优势了
2015年03月21日 19点03分
回复 crayon嘻哈小新 :那就好啦我就怕到时候中途出一个性能加强版。3Q[太开心]
2015年03月22日 02点03分
回复
crayon������
:也不能算没有吧,Sega-CD,32X,PCE-CD这些,只能说都失败了
2015年04月09日 01点04分
@璐纳尔肖恩 gbc也算半代加强 不过pro和x都出来了
2018年08月11日 07点08分
level 14
其实我更想了解些美洲豹,3DO,CD-I和NeoGeo Pocket(据说摇杆史上最好没有之一)这些东西
2015年04月09日 01点04分 7
美洲豹的3d性能很弱的,甚至不如ps。ngp,我个人从没接触过,我也好奇是什么手感
2015年04月12日 13点04分
回复 crayon嘻哈小新 :那么对比SS呢?毕竟第一个64位机。CD-I呢?我没看到硬件介绍,游戏只有三部马里奥,三部塞尔达和花?
2015年04月12日 14点04分
回复
���ɶ�Ф��
:64位只是宣传措施,其实是一个32位的主芯片+一个32位的多媒体芯片,宣传成64位而已。这个机器的3d图形是纯软件加速的,没有硬件3d能力,所以对比ps和ss弱太多了
2015年04月13日 10点04分
cdi我也不是很了解,主要是强调2d动画和语音,不过我特意看了下视频,发现游戏有点奇葩,感觉反倒像是劣化版。。
2015年04月13日 10点04分
level 13
[乖][乖]单纯Tegra4(ap40@675mhz)比adreno330弱,是不是相当于400mhz的adreno330= ̄ω ̄=,和mt6595的高频g6200@600(还是700来着),麒麟的628mp4比是不是略好,毕竟它的理论浮点更高,又不是高通。ap40是不是带宽不行?很低吗。嗯(⊙_⊙)还有高通800的krait和t4的a15哪个厉害,应该是a15吧
   --我是一条小尾巴,小呀小尾巴
2015年04月11日 16点04分 8
肯定是330更好,单论图形性能Tegra4优势实在少,不支持opengl es3.0,不支持gpgpu,不支持fp32的fragment ,2.0还好,3.0实在没什么优势。填充性能也不强,不过测试软件下,几何性能还可以。
2015年04月12日 13点04分
回复
crayon������
:知道不如330,= ̄ω ̄=但是和400mhz的330呢(假如有的话),如果有400mhz的330,跑分应该和ap40差不多(⊙o⊙)哇   --来自助手版贴吧客户端
2015年04月12日 13点04分
level 13
吧主大神[乖]解答一下
   --我是一条小尾巴,小呀小尾巴
2015年04月11日 16点04分 9
level 7
xbox的地址发下 我对xbox初代和dc的兴趣浓厚
2015年04月14日 15点04分 10
level 11
Xbox用的DX和win的DX完全是两个东西
2015年04月16日 03点04分 11
level 10
我的童年[滑稽],16位世嘉
2018年08月08日 03点08分 13
level 10
**居然是个坟贴,我错了
2018年08月08日 03点08分 14
坟贴,不存在的
2018年09月15日 16点09分
level 9
当年的SS之所以在PS1面前败下阵来不仅是复杂的双CPU硬件架构方式导致开发环境极其恶劣,世嘉公司内部街机与家用机两个部门间的内斗和市场策略严重失误也有很大关系,并且当年哪怕是PC采用双CPU也只有工作站、小型服务器
2018年09月15日 16点09分 15
当时街机业务应该是大头吧,在硬件架构上很大部分是倾向于街机设计的
2019年01月30日 08点01分
level 1
无非就是提供一些高层次的对象供其它游戏调用 例如某某游戏海景做得非常不错 把它分享出来供那些需要用到海景内容的游戏使用 节约了存储空间和开放时间 分享主义固然好但也不能一味追求分享 忽视的自私独有也会失去创造开发动力
2018年10月02日 08点10分 16
level 1
看着文章仿佛听见up主在说话[小乖]
2020年07月23日 14点07分 17
level 1
有没有会做水果机的大神
2022年03月20日 20点03分 18
1