菲尔迦娜 发表于 2010-4-5 16:46:07

搭建你的跨平台游戏开发环境

虽然目前大部分游戏都是闻都死(windows)平台的,但是毕竟是商业游戏居多,独立游戏普遍都是跨平台的,或者说并不是为了跨平台而去跨平台,而是由于其他各种因素决定,至于跨平台的好坏那就仁者见仁智者见智,这里不讨论,下面开始讲解如何搭建你的跨平台游戏开发环境(这里的跨平台指闻都死和牛克死(Linux),其他类Unix和移动平台游戏机平台什么的不管)

首先,选择一款开发语言,当然是有IDE的最好,这里只说C/C++,跨平台的IDE有很多,比如Eclipse、NetBeans、Dev-cpp、CB(Code::Blocks)等等,我个人推荐使用CB,关于他的介绍什么的详见官网Code::Blocks。

然后,选择一个图形SDK或者引擎,跨平台的不是很多,OpenGL这是最底层的,必须学习,我们重点看看在他之上包装的SDK或引擎。几乎开源的引擎都是跨平台的,比如SDL(Simple DirectMedia Layer),Irrlicht,Ogre 3D,OSG(OpenSceneGraph)等等,这里我个人推荐2D使用SDL,3D使用OGRE。SDL包含了大部分常用的功能,从显示到音乐,从输入到视频回放等等,Ogre 3D则因为结构化美,插件式,底层无关性等特点而被诸多使用,比如搜狐的《天龙八部》。

现在来看看其他游戏开发需要用到的SDK,开源为主。

音视频:推荐FMoD和FFmpeg,FMoD音频SDK用于非商业游戏可自由使用,FFmpeg则是包含音视频的著名开源方案,暴风影音、KMP、QQ影音什么都是用他编解码(这三个软件已经被列为FFmpeg的耻辱 = =b),觉得前两种太大的话,可以选择Ogg Vorbis和Theora,一个处理音频,后一个处理视频。
输入控制:一般输入控制键盘啊鼠标啊手柄啊什么的用系统API就可以,当然,想省事的话也有OIS(Object Oriented Input System),凡是输入设备基本都支持了。
GUI:一般GUI都是自己设计的,当然,也有偷懒用的,推荐CEGUI和MyGUI。
网络:惭愧,网络接触的少,除了自己设计,只推荐RakNet,要想实行更大规模的网络连接,可以看看TrinityCore2。
物理:一个完整的游戏是少不了物理支持的,可以供我们免费使用的物理模块不少,但是以Havok和PhysX为最多使用的,所以我们这里只需其中一个。

游戏开发套件:
Torque 3D - 国外独立或小型制作者工作室等最多使用的套件,包含游戏用到的所有功能和内嵌编辑器,工具等,新的T3D可以开发Web 3D,特别是购买完全版还能获得源代码。
Unity 3D - 新兴的游戏套件,同样包含游戏用到的所有功能和内嵌编辑器,工具等,使用类C#的语言(mono)作为脚本,他的主攻方向是Web 3D,可以开发出在网页运行的3D游戏,对于独立开发可以免费使用。
Unreal Development Kit - Epic公司新近推出的,基于Unreal 3的游戏开发包,包括Unreal 3的所有功能和编辑器,工具等,对于独立开发可以免费使用。嘛,这个就不能跨平台了。

基本上游戏开发的都已经列出来的,善用谷歌,其他资料工具什么的都能很容易找到。

下面开始讲解CB+wxWidgets+Ogre 3D+FFmpeg+CEGUI+RakNet的教程,与君共勉!

1.下载CB。进入http://www.codeblocks.org/downloads/5选择codeblocks-8.02mingw-setup.exe并下载安装,如果你是在闻都死平台,那么还要进入http://forums.codeblocks.org/index.php/board,20.0.html选择最新一期的unicode windows wxWidget dll和mingw10m.dll,还有下方的build下载并覆盖原文件,mingw10m.dll放在 CB文件夹\MinGW\bin 下面。

2.下载wxWidgets。这是用来开发跨平台GUI的库,比如窗口,控件什么的,进入http://www.wxwindows.org/downloads/选择wxMSW下载并解压,为了后续方便解说,我把它解压到 CB文件夹\Projects\wxMSW。

3.下载Ogre 3D,FFmpeg,CEGUI,RakNet。
Ogre 3D:进入http://www.ogre3d.org/download/source下载(CB文件夹\Projects\Ogre)。还要下载MinGW Precompiled Dependencies。进入http://sourceforge.net/projects/ogrescenebuilde/files/下载地图编辑器(CB文件夹\Projects\Ogre\Ogitor),进入http://www.ogremax.com/downloads下载对应的用来导出3D建模软件的模型到OGRE的工具(CB文件夹\Projects\OGRE\Ogre Max)。
FFmpeg:使用任一Subversion客户端(比如TortoiseSVN)从svn://svn.ffmpeg.org/ffmpeg/trunk(CB文件夹\Projects\FFmpeg)检出完整源代码。
CEGUI:分别进入http://www.cegui.org.uk/wiki/index.php/CEGUI_Downloads_0.7.1(CB文件夹\Projects\CEGUI\CEGUI),http://www.cegui.org.uk/wiki/index.php/CELayoutEditor_Downloads_0.7.1(CB文件夹\Projects\CEGUI\LayoutEditor),http://www.cegui.org.uk/wiki/index.php/CEImagesetEditor_Downloads_0.7.1下载(CB文件夹\Projects\CEGUI\ImagesetEditor)。
RakNet:进入http://www.jenkinssoftware.com/下载(CB文件夹\Projects\RakNet)。

4.准备工作已经完成,下面开始逐个编译。
wxWidgets:参考http://blog.csdn.net/joliny/archive/2008/12/12/3505566.aspx
Ogre 3D:参考http://www.ogre3d.org/wiki/index.php/Building_Ogre_With_CMake,Ogitor参考http://wiki.ogitor.org/Building+Ogitor&structure=Development
FFmpeg:参考http://ffmpeg.org/general.html
CEGUI:拿来后可以直接编译。
RakNet:拿来后可以直接编译。
Havok/PhysX:拿来后不用编译。

到此,我们已经有了可以使用图形,音视频,用户界面,编辑器,网络各种库文件,可以开始我们的游戏开发之旅了~民那,钢巴列!(也许会写个游戏开发教程,再说吧 >.<)

shawind 发表于 2010-4-5 20:06:54

期待早日看到你的游戏开发教程。

lw 发表于 2010-4-5 21:26:18

之前为了编译VLC,费了很大力气,最后在QT4的无限编译时间前倒下了- -不过FFMPEG装好了……

E8200 编译了5小时未果= =终于放弃了,之后才看到有配置可以精简- -

PS:个人还是觉得跨平台实在不怎么有趣- -|||

菲尔迦娜 发表于 2010-5-1 10:14:28

嘛,跨平台主要是让那些懒得在日后进行移植工作而用的,虽然配置麻烦,但真的是一次搞定多平台齐发~

tamashii 发表于 2010-6-10 02:22:59

于是个人觉得一个Win32平台+DirectX足矣……

shawind 发表于 2010-6-14 08:54:46

各人有各人的想法和需求。
页: [1]
查看完整版本: 搭建你的跨平台游戏开发环境