低成本游戏开发SDK状态速查

低成本游戏开发SDK状态速查

【DirectX】2008-12-19 更新
Windows上的主要游戏开发SDK。DX10及之后的版本只能在Vista系统上使用。DX9仍被微软定位为主流版本。DirectInput, DirectMusic, DirectPlay, Direct3D RM, DirectAnimation已经废弃。DirectSound很可能将被明年推出的XAudio2替代。DirectDraw自DX8就已经被标记为过时,推荐新代码不要使用。DirectShow很成功,已经集成进操作系统,不再作为DXSDK的一部分,而是WindowSDK的一部分。另外自DX8开始,DX同时支持左手系和右手系。从XNA、WPF的情况看,有主流采用右手系的趋势。用.NET又想用DirectX的话请参见SlimDX。

DX11新增了用于tesselation的两个shader和用于后处理和通用计算的shader。另外,微软还公布了DX11将包含的软件光栅化引擎WARP,这起源于CPU矢量计算能力的加强和CPU+GPU混合式设计的发展,为今后软件光栅化的复兴做准备,同时短期内可以用于支持WPF在低端显卡上的渲染。另外DX11还新增了用于平面绘图的Direct2D,以及TrueType文本绘制组件。

【MDX】2007-11-6 更新
目前Windows平台上主要的DX托管API,可以访问DX9的几乎全部功能。但07年8月版的DXSDK是官方支持MDX的最后一版,以后的版本将去掉文档,同DX7,DX8一起作为历史遗留代码维护。如果已经有基于MDX的代码,以后可以考虑移植到XNA或SlimDX。

Nov07版DXSDK已经正式发布,MDX的文档和样例已经去掉,新代码建议不要再在MDX上花费时间了。如果是Windows程序就转到SlimDX,如果要在XBox上运行就转到XNA。

【SlimDX】2008-7-19 更新
一个由对XNA的Windows支持不满的群体发起的开源项目。SlimDX是一个MDX替代品,用于.NET平台上的DX应用开发,提供了绝大部分DX C++API的一一对应功能,其中包括了DX10、Xinput、XAudio、XACT的接口。目前已经成熟稳定。主页:slimdx.mdxinfo.com


【XNA】2008-12-19 更新
微软主推的跨XBox和Windows平台的SDK,由本来的MDX2项目转变过来精心打造,但主要针对XBox,所以受限于XBox的功能,缺少DXSDK的很多功能。相对于DX来说最大的不同之处是分离了运行时和设计时API,并提供了基本的游戏内容制作流程框架,提供一个很好的基础。设计时部分不能再发行,只能工作室内部使用。声音部分目前只能用XACT,一个高层音效API,只能用压缩率4:1的APDCM编码。输入部分只能用XInput,而目前只有XBox兼容输入设备才支持XInput。另外,由于XBox360的图形硬件是DX9级,所以目前预计近期内XNA不太可能会支持DX10。

XNA 2不再受限于VC# Express。最值得一提的是GraphicsDevice被虚拟化了,不再需要处理device lost的情况了。XNA 3也已经,且支持微软的Zune。似乎XNA已经确定是微软Console平台的主流API了。不过对想要开发XBox游戏的个人来说有个不利的消息是其许可协议不允许对外发布游戏(除了在开发者俱乐部内部外),就是说游戏机软件市场的高价入门许可的门槛依旧存在。

【OpenGL】2008-12-19 更新
老牌的图形API,最近这些年由于官僚严重发展较缓慢,但在NVidia和ATI(AMD)的推动下,仍紧跟DX的步伐。06年OpenGL ARB将其移交Khronos Group管理,NVidia终于获得了足够的话语权,计划推出革命性的版本。但新的革命性版本将不兼容旧API,而且结构和流程上更接近于DX10。为了大量旧代码的移植,同时也将会有一个兼容旧API的过渡性版本。特别要注意的是Windows对OpenGL的缺省支持只有纯软件模拟的OpenGL 1.1 API,必须安装显卡厂商的驱动才能获得硬件加速和新版本的扩展函数。目前主流支持为OpenGL 1.5,高端支持到2.1,不过其实2.0和1.5的主要区别是shader算不算核心API,显卡厂商改下驱动程序加几个导出函数也就成了2.0了,何乐而不为呢。

自从宣布OpenGL 3.0规范发布在即后,发布在即了将近两年,终于正式发布了阉割版的OpenGL 3.0标准,也许叫2.3或2.5的话更容易被大家接受些。AMD/ATI和NVIDIA都已经发布了支持3.0规范的驱动。

【SDL】
一个跨平台的类似DX的SDK,包括2D图形、声音、网络、窗口管理、输入、视频等,可以和OpenGL结合使用,有相当的支持者。不过老实说,它的图形API和DirectDraw在同一水平上,很多API现在看来显得有些过时。除非要跨平台,否则不推荐。不过有些部分还是值得一用,比如声音引擎。API都是C函数,也有开源的C++包装和.NET包装。

【Ogre3D】
一个成熟且较新的开源3D引擎,目前在开源引擎里排行第一。功能完整,工具齐全,具备高级的资源管理,能胜任大型3D游戏的制作。可以选择Direct3D渲染器或OpenGL渲染器。许可协议是LGPL或者付费的商业许可。缺点是体系庞大,有一定的入门难度,但也不是很难。风格上是STL的集合类和Java的对象结构的组合,使用右手系、列矩阵,资源都要转换成Ogre自己的格式。在和.NET集成方面,虽然有ogre.net和mogre等几个不同的封装,但都不是太好。

【Irrlicht】2008-12-19 更新
一个非常简单易用的3D引擎,只有一个DLL,但包含了全部常用的功能,可以直接装载所有常见格式的模型文件。可以选择Direct3D渲染器、OpenGL渲染器或软件渲染器,使用左手系、行矩阵。许可协议类似ZLib,可修改可商用。Irrlicht自带的.NET的封装已经停止开发,推荐使用另一个叫IrrlichtNETCP的封装。缺点是对认真的游戏开发,可能会碰到它功能的极限。

国内似乎不少人管这个引擎叫鬼火,这个名字不知道是怎么来的。原名是德文,意为“狂光”,发音类似“衣噢里诗”(后两个字读轻声)。自从前年改成开源社区共同开发后,引擎做了很多的改进,尤其是动画系统。

【Collada】
由Sony赞助发起的基于XML的资源交换文件格式,起初是作为对抗微软和Autodesk的FBX格式,现已作为由Khronos Group控制的标准。Collada用于完整全面的保存场景、模型、材质、动画、效果等所有资源,但不用于游戏运行时加载,因为它不为速度优化,而是要方便导入资源。Collada完全可以替代3DS等老格式。坐标系为右手系。缺点是Collada有些过度设计,在它的文件里读取数据不象其他格式那么直接。

【OpenAL】2008-12-19 更新
一个目前由创新主导的模仿OpenGL风格的音效API,功能上和DirectSound雷同,但是象OpenGL一样跨平台,并支持扩展,不过似乎主要是用来支持创新声卡的特殊功能。如果要跨平台的话,OpenAL是个不错的选择,不过有财力的话,还是用FMod比较爽。

不过,这个项目已经停止开发,基本可以认为已经死亡。

【CEGUI】2008-12-19 更新
一个可以和多种不同图形API(DX、OpenGL、Irrlicht、Ogre等)结合使用的3D窗口内界面系统,支持丰富的GUI控件,支持定制界面风格,支持Unicode,支持通过XML和脚本定制界面,功能全面。Ogre也采用了CEGUI而抛弃了原来它自己的GUI系统。

和很多开源的东西一样,用这东西支持中文得自己修改源码。

【Lua】
一个开源的脚本语言和引擎,也是游戏业用得最广的脚本语言。最初被设计用来描述游戏数据,数据表述能力很强,易于集成,后来逐渐以效率高、开销小而广为接受,连魔兽世界也用了Lua。另外有不少相关的辅助项目,如LuaInterface提供简便的方法将Lua集成进.NET。要说缺点的话,让我印象最深刻的就是没有Unicode支持,当初可是费了相当的心血才让它至少能用。

你可能感兴趣的:(游戏,windows,api,引擎,跨平台,Direct3D)