配置游戏开发环境

05 Aug 2011

自从我毕业以后我就想把C++跟OpenGL捡起来,虽然现在遍地都是游戏开发平台,框架,工具。但是我依然坚持,而且我也厌倦了用Flash写东西了,估计跟工作有关。也不太想用auto garbage collection的语言写东西。还是自己手动管理内存听起来比较安逸,我是控制狂!所以现在简直就是绝好的一次机会!用了这么几个月现在的开发环境,感觉还是不错的。

废话了半天,我用的啥工具,啥API?

  1. Visual Studio 2010 Professional
  2. OpenGL. 这个是VS(Visual Studio)自带的,版本不太清楚,只要能用就行!
  3. freeglut. 这个是开源的glut(OpenGL utility Toolkit)。用起来简单,创建窗口啊,管理键盘输入啊都很方便。不过我只用它来写一些测试代码。游戏还是用的win32 API。
  4. Qt. 一个跨平台的GUI framwork。我才是看,打算用它来弄地图编辑器。不过要让它跟Visual Studio 2010配合,还真花了点时间...至少2个小时以上!
  5. DirectInput. 我的游戏支持手柄,所以肯定还是要用DirectInput的。不过仿佛微软更推荐XInput,可以Xbox的手柄。现在Logitech新的手柄也都支持XInput,仿佛连Mac OS X也支持XInput (不确定)。有机会还是两个都弄上,新旧手柄都支持。
  6. Git和Github,作为版本控制系统。用起来不错,网站也不错!我喜欢!比CVS,SVN好多了!

TODO:具体Visual Studio 2010的solution,project设置,我会另外抽空记录下来。这里只简单带过如何让这几样东西合作!

Visua Studio 2010 Professional 配置和安装

实际上这个没啥好说的,就是下载一个,装上就完了。至于我哪儿搞得Professional版本… Dreamspark呗,学生可以免费下!如果一路Next点下去就行了。不过劝大家还是装英文版,因为有时候某些插件对英文版的支持要好些。

VS的插件是相当有必要的,因为裸体的VS确实不咋样。装了这些:

Git Source Control Provider,顾名思义当然就是git有关咯,虽然我不直接用它commit,不过它还是有挺多直观的功能,比如显示你修改了哪些文件。

ItalicComments,我喜欢把代码和comment分得清晰些,这个插件相当不错。

Productivity Power Tools,微软的免费的插件,功能很多,自行查看吧… 我最常用的功能之一就是:Ctrl + Click 直接跳转到Variable definition或者Class文件。Flash Builder里边也有这么个功能,习惯!

Visual Assist X,这不是免费的…但是试用了一下,相当不错。特别是它的Refactoring功能。因为Visual C++的Refactoring就是一坨屎!

OpenGL

装完VS 2010以后,俩header文件:GL.h (OpenGL header file),GLU.h (OpenGL utility header file),都能在Microsoft SDKs的include文件夹里边找到:

1
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl

至于相对的俩lib文件:opengl32.lib和glu32.lib。同理,也在Microsoft SDKs文件夹里头:

1
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib

上边说到的两个地址,一个include文件夹,一个lib文件夹。VS在编译程序默认会在这俩文件夹里查找所需要的header和lib文件。所以不需要手动添加设置。

反正就是,你啥都不用管,装上VS以后,OpenGL理论上就能用了。不过要注意一点就是,如果你以为写下边俩行就能开始用OpenGL的话,那你就错了!(其实只需要inlcude glu.h就行了,因为glu.h includes gl.h)

[cpp] #include <gl\gl.h> #include <gl\glu.h> [/cpp]

你还需要加上 <div class='bogus-wrapper'>

<div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers">1 </pre></td><td class='code'><pre>#include <windows.h></pre></td></tr></table></div>
</div>

[cpp] #include <windows.h> // windows specific…. no idea why. #include <gl\gl.h> #include <gl\glu.h> [/cpp]

freeglut

安装起来稍微有点麻烦。有两种方法:

  1. 下载编译好的freeglut 2.6.0-3 for MSVC:http://www.transmissionzero.co.uk/software/freeglut-devel/
  2. 自己下载源码,用VS2010编译:http://freeglut.sourceforge.net/index.php#download

当然第二个要麻烦些。不过最重要的一点是要了解,总共只有6个文件需要安装。至于放哪儿,后边解释。

  • freeglut.h
  • freeglut_ext.h
  • freeglut_std.h
  • glut.h
  • freeglut.lib
  • freeglut.dll

第一种方法,下载,解压之后

里边都已经给你整齐得放好了。只需要你把它们放在该放的地方了。之后我会介绍把它们各自放哪儿比较“专业”!

第二种方法,自己编译,听起来很复杂,实际上也不难。说白了也就是用VS编译完了,把这6个文件找出来,放好,就完了~

怎么编译喃?!解压之后,里边有个文件夹叫include。顾名思义嘛,就是专门include header文件的文件夹嘛!

打开一看,里边有个GL文件夹,再进一步,果不其然,里头就有我们需要的前4个header文件。把它们拷贝出来,放在一个文件夹(随便你放哪儿,能找到就行)里边待用…

至于另外两个文件,freeglut.lib和freeglut.dll在哪儿。这就需要我们编译freeglut了。幸运的是,freeglut提供了Visual Studio 2008的solution。就在源代码文件夹里边。忽略另外一个叫VisualStudio2008Static的文件夹,那个solution没法编译出dll文件,因为我们需要dll文件,dynamic link library文件,光编译lib,static library不行:

进入文件夹,双击freeglut.sln。如果你用的Visual Studio 2010,会提示你VS会自动转换该solution成2010版本,直接点finish~不甩。

最后转换完solution,默认的start project就是freeglut。你可以立马点start debugging按钮,这样一来,freeglut.lib,freeglut.dll就会被编译到该solution的Debug文件夹里边了。注意的是,编译完的时候,会跳出来一个窗口说不能运行freeglut.dll程序:

当然这是废话,dll当然不能直接运行,直接忽略!我们需要的dll和lib文件都已经编译到Debug文件夹里边了。

这样一来,所有6个文件都齐全了,就差稍微组织一下结构了。俺的文件结构是:

freeglut | |—include |        |—— 4 header files | |—lib |     |—— freeglut.lib | |—freeglut.dll

接下来就是怎么安装这些文件了,或者说,到底把它们放哪儿。

  • freeglut.h
  • freeglut_ext.h
  • freeglut_std.h
  • glut.h

其中这4个是freeglut的header文件。你可以把它们仍在上边提到的Microsoft SDKs的include文件夹里边…当然这样弄相当不专业!本人认为,应该创建一个专门的文件夹来储存这些第三方library和header文件。

  • freeglut.lib

这个static library一样,你也可以非常不专业的把它扔在

1
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib

我不推荐!

最后的dynamic link library。

网上的教程都说扔在系统文件夹里边…说是x86,32位的电脑,把dll扔在:

1
C:\WINDOWS\system32\

x64,64位的电脑把dll扔在:

1
C:\Windows\SysWOW64\

虽然我又想说不专业,但是上边的这些直接扔在系统文件夹,VS在编译的时候默认查询的的文件夹里边,这样做有一个好处,那就是以后你所创建的所有的Project都可以不用一而在再而三的设置VS额外查询的include文件夹和lib文件夹,也不用把dll文件放在每个project的文件夹里边。

不过我认为,为了结构的清晰,还是需要创建一个专门library文件夹,把所有第三方的header文件,lib文件都分好类,放进去。dll文件还是手动放在在需要的VS project文件夹下边(一般都是有可执行的exe的project)。这样一来,整个project的结构就简洁清晰了很多…查找起来也方便了。唯一坏处是必须要手动修改VS Proejct的properties,告诉VS在编译的时候需要在某个include文件夹查找header文件,在某个lib文件夹查找.lib文件。

当你安装完所有文件以后,freeglut也就安装完成了。其实也不难。

至于详细的如何设置Visual Studio 2010 project properties,我以后有空分开再记录咯~

Qt

我还没认真开始写关于Qt的代码,所以也不清楚好用不。不过还是记一下如何配置,安装Qt。

总的来说,比较麻烦,费时间,就算用最简洁的编译设置,据说也需要编译半个小时。编译完成之后需要安装 Qt Visual Studio Add-in 这个plugin是Visual Studio编译Qt project必须的。听说Visual Studio Express不支持安装插件…这就有点麻烦了…所以,随便买个,偷个,抢个Professional来装上吧!

具体的安装方法,我参考了:

  1. How to compile Qt 4.7 with Visual Studio 2010
  2. How to build Qt for Visual Studio 2010

实际上,如果你把上边两个认真看一遍,也就肯定会弄了。我这里就不废话了。我是按照第一个方法来编译的,里边用到了一个叫jom的东西,反正就是可以指定用多个CPU核心来编译,速度会快一些,刚好我的是4核。睡了一觉就编译好了~具体几个小时不清楚…

我之前编译一直出错,估计因为我的电脑装了太多乱七八糟的东西,或者Visual Studio没有安装完整。一气之下就重装了整个电脑,最后也就编译成功了~

所以,有些无稽的错误,实在没法解决,那就重装电脑吧…

DirectInput, DirectX

这个需要同志们安装Microsoft DirectX SDK:

<div class='bogus-wrapper'>

<div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers">1 </pre></td><td class='code'><pre>http://msdn.microsoft.com/en-us/directx/aa937788</pre></td></tr></table></div>
</div>

最新的版本是2010 June的版本。下载安装好了之后,配置Visual Studio添加相对的文件和文件夹到Additional Include Directory,Additional Library Directories,Additional Dependencies,就可以使用DirectInput来控制手柄了。估计也可以用XInput,以后用空实验完了再来记录。

Git, Github

Visual Studio没有自带Git的ui。上边已经提到了,我用的是Git Source Control Provider。如何使用Git,如何注册并ssh github,就不是我能一两句能说明白的了。

总而言之,Git跟某些地球人都知道的CVS,SVN一样,是一个version control system。更准确的说是更高级的distributed version control system。另外的MercurialBazzar也都是差不多的。具体区别,我也不太清楚(仿佛Git很快),可以随便选一个用。我只是觉得Git的网站要好看些,所以就用它了~ 不过我要提醒的是,Git稍微有点难上手。

说白了distributed version control system跟普通的CVS,SVN的最大区别就是前者不需要服务器也能进行大多数核心操作,比如commit,view history,branching,merge,tagging…等等。除了不能把repository上传到服务器之外,其他几乎都行(废话)!所以说,如果单个程序员不用设置服务器也能用Git。所有的history,tags…都储存在本地。当然用起来也就非常之快咯。

当然用服务器也是有用的,Github就是其中一个Git hosting的提供商,它把写代码弄成了类似social network一样,相当不错!只是如果你要想用private repository需要给钱~当然我没钱,就将就Open source呗~

给点地址吧:

  1. Pro Git. 官方git tutorial,看完了你就牛了!我只看了前3章...
  2. Setup Git. Github的帮助文档,里边教你咋安装git,最重要的是它还告诉你怎么用ssh keys。没有正确的设置public和private key是没法用git protocol来push repository到github的。

完了~没了~我的开发环境大概记录了一下。

Liy at 00:00