婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2005-8-6
|
如果你是指win3.x那会,win3.x其实在当时已经很流行的SVGA硬件上,是能支持16位甚至24位色显示的,这对于绘画软件,比如fractal design的painter,是很有用的。换个角度讲,像动画里用的那个multipaint,称为pc98作图软件当然很足够,但称为‘绘画软件’其实比较勉强。
但那时windows没有高效的图形API,所以不单是游戏,哪怕是一些多媒体诸如的动画电子书,都很难实现,因为绘图效率太低。所以多数游戏开发者,还是在dos下开发游戏,当然同时也会喷windows。微软当然也认识到了这个问题,于是94年推出了一个叫WinG的SDK,有了这玩意总算可以将就在windows上实现效率尚可的显存访问与Blit操作了,这对于2D游戏和动画来说可以满足基本要求了。再后来到了95年,win95上的DirectX就出来了,图形方面算是WinG的进化版。
win和Dos有一个重要区别,就是Win本身是一个图形化的系统,所以它不可能把图形硬件完全交由用户程序控制,像Dos那样,执行个中断,就可以通过Video BIOS写显卡的寄存器了,如果windows也这样搞,那系统的画面不就全无保证了么?所以它本身需要一套API来由用户使用,用户在API的规则下,实现自己的功能,而且这套API,应该是设备抽象的,API要求的功能由各厂商提供的显卡驱动来实现。这当然是大幅方便了开发者。但同时这也是一个复杂的工程,WinG之所以姗姗来迟也就是这个原因。
但在windows下使用通用API开发游戏,是一个不可逆转的趋势。原因就在于硬件的功能复杂性和设备多样性越来越让开发者无法适配了。dos下,确实可以直接访问显卡硬件,但这也意味着,你需要去针对一个个的具体硬件去进行开发。
在VGA时期,这个还算好办,毕竟VGA是一个统一的标准,按照标准开发也就完事。但到了80年代末,超越VGA的硬件出现了,也就是能使用高分辨率同时高发色数(640x480@256起)的硬件出现了,但这时没有一个标准,于是大家对它们统称为Super VGA(SVGA)。
这可让开发者一个头两个大,因为如果使用当时的标准,比如VGA来开发,那么这些SVGA设备的更强功能统统用不上,但如果想用上这些功能,就需要一个一个适配。我当时用过3ds(3ds max的前身)4.0,它有个显卡设置界面,显卡种类多达好几十种,型号选错了启动3ds后可就没画面了。这也就是说,开发者要对这么多种的显卡,根据厂商的说明(BIOS,寄存器等)单独开发画面驱动来进行效果优化。这个工作量可想而知。
后来,也有了一个标准,叫Vesa Bios Extension,简称VBE,不过这个标准发展比较缓慢,91年1.2版本算是将将可用,但功能还很受限;直到94年的VBE2.0,才支持保护模式,线性帧缓存访问与高彩色/真彩色模式等。结合之前说的,94年WinG可都要出了。
所以对于游戏开发者来说。VGA时期算是比较充实的,既有钻研的价值,也有工程实现的可能,所以会产生Abrash那样的VGA大神。到了前DirectX的SVGA时期,则是比较迷茫混乱的,因为硬件发展加速,但开发标准不够统一,所以游戏无所适从,可以看到,dos游戏,很少有超过256色的。这一部分原因是比较保守的硬件适配(VBE 1.2)所导致。而WinG没出前,windows上基本没啥游戏(如果纸牌扫雷不算的话)。
而对于日本PC98游戏开发者来说,由于到了90年代初,主流的玩意还是使用EGC那个垃圾,所以要我说,工程上倒是很稳定,但也没多少钻研的价值,因为硬件本身就没什么潜力与变数。从另一方面讲这也就容易产生固步自封坐井观天的程序员。要是类似那种能开发出dos下运行的《地下城守护者》的人,你说‘我讨厌Windows,一点都不直接’那我服气;只不过是个开发16色黄油的人,装什么geek啊是不是? |
评分
-
查看全部评分
|