3月1号Win8 WCP发布,既然闲着无聊就玩玩Win8吧,写个博客记录一下。
直接进入主题吧...
Win8 Metro 游戏开发只能使用C++,因为C#,VB,JS等目前的图形能力暴弱(据说简单画个图都蛋疼),只有VC++支持的Direct3D和Direct2D可用于游戏开发。 微软应该是基于性能考虑做此决定,当然也有可能是匆匆推出而来不及顾及其他语言。
更让人蛋疼的是,Metro仅支持DirectX 11.1,而目前大多数游戏引擎连DX10的门槛都没有跨过,更别说DX11(.1)了。再加上大部分Win32 API已被屏蔽,这让MS论坛上怨声载道,有些公司已经直接放弃这个项目了,因为现有引擎没法移植——DX9确实太优秀了,也霸占的太久太久了,以至于连11出来了三年都无人问津。 (其实我也不是很看好Metro........ 只是不很~看好.)
其实对于绘制接口抽象的比较好的引擎,移植到11应该不难。简单点,只需要模拟一下原来的固定管道,多写几个shader罢了。而且DX11的灵活度比DX9有了极大的提高,这就为性能优化提供了无限可能... hoho ,题外话。
但就算是DX11,也没有被完整支持。只保留了基础接口,一些库如D3DX,Effect就被砍掉了,而且连D3DCompile都只能用于调试阶段,无法发布。不让我用D3DX,那我就转DirectXMath吧;没有Effects11,我自己管理shader吧,反正它效率也不高;不让我实时编译也算了,我就预编译打包了;居然还不让我用反射?你,你不存心给我找茬么!! ——又跑了一批公司。
就算你克服重重困难,成功移植到DX11,你会悲催的发现,你的引擎只能当DX9用(Feature Level 9),因为移动平台还没有硬件支持到10...
当然也不要太悲观,呵呵,离发布还有半年呢,说不定下一版里就支持了
------------------ Metro App Game DirectX 相关链接 ------------------
Create your first Metro style app using DirectX 入门
Building Metro style games with DirectX 官方论坛
DirectXTK DX11可用的工具包
DirectXTex 新的纹理工具,Win7 Up,Metro可用
------------------------------------------------------------------------------------
VS11是个好东西,特别是Shader调试器,下次专门说说。