Windows8 游戏开发教程-二、关于资源和工具
游戏主循环,帧、帧动画这些东西的理解非常重要。
常用的设计模式和编码调试技巧也非常重要。
但有点难以言传的意思,语言和文字并不能在以上两点帮助你,自己努力练习和理解吧。
就讲讲资源和工具。
很多人总是搞不清楚游戏要怎么制作,这有一个简单的方法让你清楚,游戏和应用绝无任何区别。
只不过图形的要求稍微搞了那么一点点,所以经常需要基于帧刷新的图形系统来开发各种各样的功能。
仅此而已,基础不牢靠的话,可能会稍微有点迷茫。
其他的方向,我相信会写应用就会了。
由于metro app 是按包发布的,所以资源文件要包括在项目中,build action 选择 content。
如图,这个教程只提供了从包内加载的方式。
也可以考虑下载之类的。
今天主要讨论一下图形。
首先windows8 里面我觉得传统UI可以用于游戏UI,你看现在不是流行flashUI嘛?所以我们也可以利用xaml来制作UI,这部分资源都可以直接编辑,先按下不表。
在D2D D3D的部分、需要以下几种资源 d2dbitmap d3dtexture d3dmesh shader
这里就更不适合做教程了,资源系统的设计其实没有一条固定的路径要怎么做。
我只能介绍一下我怎么做,和我这么做的用意。
首先d2dbitmap 和 d3dtexture 都是贴图,我这里先支持texture2d,cubemap和texture1d就先不管它。
这个示例项目中我准备用极坐标替代cubemap,texture1d在任何场合都可以被texture2d代替。
那么d2dbitmap和d3dtexture最好是同源的,而且最好支持多一些格式。
所以就这么设计接口了,先从文件中加载一个Bitmap,再用这个对象创建d3d贴图或者d2d位图。
然后是模型和shader
模型我自己定了个简单的格式,写了个工具从fbx导出数据,利用xna4 vs2010开发,用不了多少代码。
使用fbx是一个比较好的选择,主流的3d开发工具均可导出fbx。
shader嘛,dx11 支持加载bytecode,提前用fxc 编译成bytecode当作资源文件即可。
为了调试方便,我们采用一个即使编译的办法
然后把fx文件也当资源,从中读出字符串编译。
工具:
3dmax 或者其他模型编辑工具
phoneshop或者其他图像处理工具
fbx转换工具,上面那个。