Chengzhi Yang 2010-10-13

初探 2D Boy Framework

2D Boy Framework 是2D Boy studio(http://2dboy.com/)开发的一个2D跨平台游戏开发框架,粘粘世界(World of Goo) 使用了这个框架,这是一个开源框架你可以在 2D Boy studio 的论坛( http://2dboy.com/forum/index.php#2)的 2D Boy Framework这个栏目里面下载到他的源码,这个框架在使用上没有任何的许可上的限制。

开发语言:C++

图形API:Dx9,DXUT

声音引擎::irrKlang (http://www.ambiera.com/irrklang/docu/index.html)

它也使用了SDL,不过只用了SDL的一些关于系统方面的函数,如设置窗口标题,鼠标指针,时间,多线程编程。这样的封装可以带来很多好处,一方面提高了游戏开发的效率,只需要调用其他库的库函数就能实现很多复杂的功能;另一方面大大增强了代码的健壮性和可读性,因为框架使用的这些库都是经过长时间的使用和维护的。


这个框架项目文件自带的是VS2008的,如果需要在VS2005里面编译项目的两个DEMO,可以简单的吧 .sln 文件的 第2,3行改成

Microsoft Visual Studio Solution File, Format Version 9.00

Visual Studio 2005

注意:.sln文件的第一行是一个空行。

然后把其他的 .vcproj 中的

ProjectType=«Visual C++»

Version=«9.00»

改成

ProjectType=«Visual C++»

Version=«8.00»

然后可以尝试打开.sln,如果打不开就按提示修改.vcproj文件。其中的DXUTCore_2008.vcproj,可以在打开.sln后先删掉该项目,然后添加把DXUTCore_2005.vcproj 进解决方案中,这个文件在..\libs\dxsdk\200806\Samples\C++\DXUT\Core


之后按照项目中的readme 就可以很容易的设置好,然后就可以运行两个Demo。

这个框架的C++代码非常清晰。

框架的一些特性:

几个缺点

从这几个缺点中可以看出来2D Boy Framework 只是一个 原型Framework ,并非是一个游戏引擎,不过他提供的这个框架非常值得学习,而且可以在其基础上面开发出自己的游戏引擎。

我非常非常喜欢这个代码,非常感谢2D Boy 的慷慨分享 :-)

Boy Framework的基础框架的设计参考了不少 Popcap framework http://sourceforge.net/projects/popcapframework/ (Popcap framework 当然是 Popcap 公司过去发布的一个开源项目),这个框架的功能就非常非常强大了,比Boy Framework 的功能复杂得多。但是Popcap framework发布得非常早,图形接口是 D3D 7… ,不过可以把他修改成D3D 9的来用。