1.2更好的开发方式
更好的方式是使用中层脚本语言来构建项目,它可以帮助游戏设计师把握整个开发的交互过程,让程序员去做大量更基础的工作。
从游戏开发者的角度看,脚本语言可以帮助用户很容易地返回游戏开发过程。也许需要几个小时来构建一个“干净”的游戏项目,但脚本语言可以帮助用户快速做出修改并且立刻看到游戏的效果。游戏设计师可以独立于程序员尝试新想法,游戏美术设计师可以创建图形界面把游戏流程和功能组合到一起。
脚本语言存在于由软件工程师编写并编译后的代码之上,通常是在运行时编译,是一种方便设计师或者程序员处理和控制数据的简单语言。
为什么要使用脚本语言呢?对于资深从业人员或者业余开发者来说,这都是一个值得关注的问题。从游戏设计师的角度来说,使用脚本语言开发游戏可以很清楚地界定底层代码和游戏玩法代码。通常,在引入了脚本语言的项目中,底层模块交给像C++这样的核心语言,诸如界面交互、数据管理、人工智能和事件处理等,一般使用脚本语言实现。这种职责的划分可以让用户的游戏更加稳定,并且使得并行开发成为可能。
脚本语言还能使开发团队中的非技术成员参与到核心开发过程中。界面美术师不仅只制作界面素材,还能独立于程序员编写让界面运行在游戏中的脚本框架。要实现这些想法,设计师则可以不必麻烦程序员,而直接着手AI、数据处理或者创建场景脚本。
相对于C++这样的底层语言,脚本语言本身是易学易用的。由于Lua语言无须关心复杂的内存管理、对象渲染或者TCP/IP网络通信,所以十分容易上手并投入实际开发。学习脚本语言不需要花费很长时间,开发者可以在几个小时内就掌握它的语法和功能。
在本书中,我们将自下而上地学习如何使用Lua语言并利用C++的功能来创建一个完整的游戏。在这个过程中,会特别向读者展示脚本语言是如何优化开发过程的,不管是资深开发者还是业余爱好者,都将会有所收获。
脚本语言有很多,那我们为什么要选择Lua?纵观整个脚本语言领域,我们可以看到有Perl、Tcl、Ruby、Forth、Python、Java和Lua。尽管所有的脚本语言在特定领域都有自己的一席之地,但在游戏开发的世界中,Python和Lua是非常适合的(因为它们可以直接调用C++的功能)。
许多商业游戏已经成功地使用了Python和Lua,因为它们都有很强的兼容性,所以可以与编译后且基于C++技术的模块协同工作,而且还能扩展。如果读者有机会询问一下程序员对于这两种语言的看法,通常会有非常不同的观点,还可能有激烈的争论,就像体育中的“德比”赛事那样(想象一下芝加哥小熊对白袜,纽约喷气机对巨人,纽约大都会对洋基)。其实,这两种语言都是游戏开发领域中非常出色的工具。