Tao提供的所有库都是完全开源的。其中的多数库都可以免费用在商业项目中,但还是有必要阅读许可证中列出的具体说明。Tao是一个出色的程序包,刚开始涉足游戏的开发商可以把它作为一个起点。
Tao包装了许多C库(见表1),并使得在C#中使用这些函数变得很简单。Mono,所以也可以用在Linux和Mac中。
OpenAL代表开放音频库(OpenAudioLibrary),是一个强大的开源库。《生化奇兵(BioShock)》、《雷神之锤4(Quake4)》、《毁灭战士3(DoomIII)》和《虚幻(Unreal)》等游戏都使用了这个音频库。它采用OpenGL作为模型,具有相同的状态机风格的设计和扩展方法。
SDL(SimpleDirectMediaLayer)
是一个跨平台的库,支持输入、声音和图形。SDL在游戏开发商中非常流行,在独立或者开源游戏中使用得尤其多。使用SDL开发的最著名的开源游戏之一是FreeCiv,它是《文明(Civilization)》的一个联机版本。多数Linux游戏端口中也使用了SDL。
PhysFs初看起来可能是一个物理库,但是实际上却是一个小型的IO库。它可以将全部游戏资源打包为一个较大的二进制文件,或者几个小的二进制文件。许多商业游戏都有类似的系统,例如《毁灭战士(Doom)》的wad系统或《雷神之锤(Quake)》的pak系统。它可以使游戏在发布后的修改和更新变得更加简单。
FreeGLUT是OpenGL实用程序工具包的免费版本。这个库中的函数可以让用户马上就能够使用OpenGL。它还有从键盘和鼠标接受输入的方法,以及绘制各种基本形状的方法,例如球形、立方形,甚至茶壶形(这个茶壶在计算机图形学中非常有名,它是由MartinNewell在犹他大学求学期间进行建模的。茶壶是一个非常复杂的表面,所以在测试新的图形技术时非常有用。动画电影《玩具总动员》中就有一个典型的茶壶模型,DirectX甚至有自己的茶壶创建方法D3DXCreateTeapot()。在讲授OpenGL时经常用到FreeGLUT,但是它的功能很有限,很少用于真正的项目。
ODE(OpenDynamicsEngine)是一个可以用在多个平台上的物理引擎,可以完成碰撞检测和刚体模拟。PC上的第一人称射击游戏《潜行者(S.T.A.L.K.E.R)》中就使用了ODE。Glfw是可以通过Tao使用的第三个可移植的OpenGL包装器。Glfw代表OpenGL框架(OpenGLframework),它的目的是扩展GLUT提供的功能。如果不想使用SDL,但又确实想使用框架来访问OpenGL,就可以考虑使用Glfw。
DevIL(Developer'sImageLibrary)
是一个从磁盘加载纹理到OpenGL中的库。DevIL与OpenGL有些类似,因为它也是一个状态机,并且有类似的方法名称。DevIL是跨平台的,支持多种(43种)不同的图片格式。Cg是本章前面提到的一种着色器语言。通过使用Tao.Cg,可以从文本文件或字符串中加载着色器程序,进行处理,然后在OpenGL中使用。
Lua可能是游戏开发中最流行的脚本语言。它是一种小型的、易于嵌入的语言,表达力非常强。使用Tao.Lua可以在脚本和C#程序之间传递函数和数据。Tao.FreeType是一个基本的字体包,可以将FreeType类型的字体转换成一幅位图。它的接口简单易用。
Tao提供的最后一个库是FFmpeg,这个名称由MPEG(一个视频标准)和FF(FastForward,快进)组成。它提供了一种播放视频的方式。如果想要在游戏中使用过场动画,FFmpeg是一个不错的选择。
评论