《Lua游戏开发实践指南》一2.2Lua简介

2.2Lua简介

Lua和传统的脚本语言不同,它是一种易整合语言(glue language)。一般的脚本语言用于控制执行重复的任务,而易整合语言可以让使用者把其他语言开发的功能整合在一起。这样就让脚本程序员有了更大的发挥空间,而不仅仅局限于执行命令。程序员可以使用这种脚本在底层语言开发的功能模块基础上创建新的命令。本书将探讨如何使用Lua来整合C++的与游戏相关的一些功能,如GUI、AI、数据等。
Lua本身是一种简单而又强大的编程语言,它可以让脚本程序员完成大量的处理。这种语言拥有很强大的字符处理和数学运算能力、灵活的数据类型(很快就可以熟悉),以及定义函数的功能。但是如果没有整合其他环境的组件的“魔力”,这些基础的特性也就丧失了。(没错,你可以在命令行下执行Lua脚本并查看运行结果,但除了学习语言本身,对于游戏开发来说,命令行式的输出是没有实际意义的。)学习其他编程语言经典的第一课是如何输出“hello world”,Lua版本的方法参见代码清单21。
代码清单2-1用Lua编写的“hello world”程序

Lua非常适合作为更强大的底层编程语言的搭档,如C++。Lua能让游戏开发者快速建立游戏原型甚至是完整的游戏。游戏开发者可以在没有程序员帮忙的情况下构建整个图形界面。它还可以用来管理游戏进度文件的保存和载入,而且很容易阅读和调试。在游戏开发领域,Lua能帮助开发者构建一个高效并且方便验证游戏想法的环境。
按照开发Lua的团队的描述,Lua是一个可以集成在应用程序中的“语言引擎”。它本身是一种编程语言,并且还提供了很多可以和应用程序交换数据的API(应用编程接口)。另外,Lua还能够通过整合C++的模块来进行功能的扩展(这个就是我们之前所说的“整合”功能)。和程序开发语言(如C++)配合使用时,Lua也可以用来作为特定项目的框架语言。这种易扩展性使Lua非常适合作为游戏开发的环境。
作为独立的编程语言(在运行窗口中执行),Lua功能很有限,只能用做教学工具。(我们会在接下来的章节中使用控制台学习该语言。)Lua只有集成在其他语言中才能发挥它的价值。它的实现非常简单,仅仅通过一些LuaGlue函数就可以和底层语言通信,在用户自定义LuaGlue函数的基础上,它还可以进一步被扩展,甚至成为一种新的编程语言。

2.2.1Lua的历史

Lua在葡萄牙语中是“月亮”的意思,1993年由巴西的Pontifical Catholic University开发。该语言是由一个来自计算机图形技术组织(Tecgraf)的团队(Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo)开发,并作为自由软件发行。Lua开发小组的目标是开发一种小巧、高效并且能够很好地和C语言一起工作的编程语言。在脚本语言领域,Lua是最快、最高效的脚本语言之一,因此它有资格作为游戏开发的备选方案。Lua的内核小于120KB(Python的内核大约860KB,Perl的内核大约11MB),当编译和集成到游戏开发系统中时非常小巧。Lua通常比Python这种流行的游戏开发脚本语言运行更快速,完整的性能测试报告可以在计算机编程语言实战性能测试网站中找到(http://shootoutaliothdebianorg/)。
计算机图形技术组织(Tecgraf)成立于1987年,致力于开发和维护用于技术和科技领域的计算机图形和用户界面。除了Lua,Tecgraf小组还开发了IUP(一种开发用户界面的系统)、CanvasDraw(跨平台的图形库)、TWF(一种用于Web页面的图形文件格式)和其他一些系统。读者可以访问相关网站获取更多信息。

2.2.2Lua授权

Lua是免费的开源软件,可以免费用于科研及商业应用。关于开源软件的更多信息可访问wwwopensourceorg。
对于游戏开发专业人员,授权费对于开发技术的选择影响很大。通常,对于一个项目,游戏引擎的预算会超过50万美元,中间件技术会花费5千美元~5万美元不等。因此,开源软件对于开发团队来说是很有吸引力的。
开源软件因为本身不盈利,所以它们的代码通常有很多bug,又由于没有太多注释,因此难以理解。另外,没人为技术支持付钱,所以也谈不上什么技术支持。
Lua则避免了这些问题,它小巧,实现简单(而且还在维护),代码简洁、清晰。Lua的开发团队是由具有计算机工程背景的专家组成,并且一直在关注着它的升级。和其他开源项目不同,设计Lua旨在项目中扩展功能,而不是在API级别,因此它的内核一直很稳定。
Lua授权的精神在于用户可以在任何情况下免费使用,并且不需要取得版权所有者的许可。如果用户想知道更多Lua授权的信息,那么可以访问www.lua.org/license.html。

完整的Lua 50授权如下(CDROM中也提供了该授权):

时间: 2024-10-31 01:19:47

《Lua游戏开发实践指南》一2.2Lua简介的相关文章

《Lua游戏开发实践指南》一导读

前 言 Lua游戏开发 游戏开发是一个激动人心的过程,创造出让玩家花费数小时并乐在其中的游戏,给人带来的成就感是任何事情都无法比拟的.然而,这个创造的过程正在变得越来越难.那种奋战几个晚上或者几周就能单枪匹马设计出热门游戏的日子已经一去不复返,现在的游戏往往需要数十人的开发团队工作很多个月甚至几年才能完成.就算是那些可以从网上下载的最简单的"休闲游戏"也通常是由专业开发者组成的团队开发数月的成果. 尽管游戏开发的规模不断增大,但始终有一个不变的追求--测试.更新.调整,以及快速验证游戏

《Lua游戏开发实践指南》一3.2游戏项目中的Lua

3.2游戏项目中的Lua 把脚本语言集成到游戏项目中可以提升团队的开发效率,并且可以很好地扩展原生编译语言的能力.Lua在游戏开发的许多基础领域中都表现得很出色. 在游戏开发团队中,可能有许多成员都使用Lua来完成他们的工作.程序员负责将Lua整合到游戏开发环境中,通常,他们会需要编写一些Lua代码.游戏设计师是脚本语言的主要使用者,因为他们和上层的游戏设计和数据直接打交道.美术师也会经常使用Lua,进行诸如界面布局.设计和3D场景中各种模型的摆放之类的工作. Lua是非常强大的工具,可以用来完

《Lua游戏开发实践指南》一2.1脚本语言简介

2.1脚本语言简介 脚本语言可以方便地与计算机底层功能交互.这体现在它常常被当做批处理命令工具,即发送一系列重复的指令给命令处理器的工具.所以早期的脚本语言常常称做批处理语言或者作业控制语言. 一个熟悉的例子就是MSDOS时期的老的*bat文件,这种批处理文件就是简单的文本文件,它包含一系列顺序执行的DOS命令.该语言本身就是DOS命令集合,通过进一步扩展成为一种伪脚本(参考下面的示例). 计算机语言用于解决一些特定的问题,从系统控制级别的C和C++到人工智能处理语言(如LISP).脚本语言

《Lua游戏开发实践指南》一3.1脚本语言和游戏

3.1脚本语言和游戏 脚本语言可以让美术师直接开始界面设计,让设计师和初级程序员(脚本语言是一种让新手快速进入游戏开发的很好的方式)立即着手游戏流程和逻辑的开发,让关卡设计师能迅速掌控游戏环境和游戏体验.脚本语言不是非常高效--它们没有原生代码的运行效率,因此不适合作为开发高性能需求处理的工具.但易整合语言能够利用原生语言编写的模块扩展功能,比如Lua,可以作为控制机制来调用原生代码编写的高性能处理组件.(Lua是运行效率最高的脚本语言之一,因此大部分性能方面的问题都可以不用担心.)C函数可以利

《Lua游戏开发实践指南》一1.3为什么使用Lua

1.3为什么使用Lua 对于游戏开发而言,Lua是较好的选择,其设计的核心目标是可扩展性,因此在最初设计时就考虑到要能够集成在大型应用中.因为有了这样的设计目标,所以非常容易在应用程序中加入Lua脚本.Lua的易集成的特性还使得Lua可以很方便地与父程序通信.游戏程序员都希望脚本语言能够简单地实现游戏设计,在这方面,Lua也能够胜任.Lua免费.小巧.快速且易移植.所有的游戏开发者和游戏公司都喜欢"免费"的工具.通常讲,一分钱一分货,但是对于Lua来说,它完全超出你的预期.Lua采用了

《Lua游戏开发实践指南》一2.3本章小结

2.3本章小结 脚本语言最初只是一种简单的工具,目的是为了让资深用户在简单文本文件中能够批量执行常用命令.现在许多脚本语言,如Python.Ruby和Lua,可以提供像计算机编程语言一样强大而灵活的功能.最近几年,脚本语言已经"走"到了游戏开发业界的前端,作为一个可行的中间件产品,它可以有效地提升开发小组的工作效率以及游戏项目的性能.来自巴西的计算机图形技术组织(Tecgraf)的团队开发的Lua,由于它的小巧.高速以及与C和C++良好的兼容性,成为非常适合游戏开发的工具.Lua是免费

《Lua游戏开发实践指南》一1.4本章小结

1.4本章小结 游戏开发是一个令人兴奋的产业,人们一旦有了灵感就想马上开始行动.Lua赋予了我们这样的能力,让我们可以快速实现游戏核心概念,设计并测试界面,并且方便地管理大量的运行时数据,而这一切都不需要读者有很深厚的技术背景.在以后的章节中,我们将要学习如何在游戏项目中使用Lua,并学习语言本身的特性.然后,我们将开发一个完整的游戏,一起经历从开始到完工的整个过程.完成了这些,我们就可以很好地掌握这种灵活.小巧的开发语言,并切身感受到它给你的游戏和游戏开发体验所带来的不同.

《Lua游戏开发实践指南》一3.3本章小结

3.3本章小结 在游戏开发领域,Lua和C++是一个功能十分强大的组合.对于GUI开发.事件管理.数据保存和获取.游戏进度保存和载入以及人工智能这些游戏开发工作,需要能够快速地构建原型.测试和迭代设计,而这些正是Lua所擅长的.在核心底层语言开发的项目中,频繁的变更会导致系统的不稳定,并让开发者不能专注于更重要的开发任务.使用Lua环境分担这些工作,可以让设计师和程序员快速而安全地使用脚本来设计.测试和实现游戏功能.

《Lua游戏开发实践指南》一1.2更好的开发方式

1.2更好的开发方式 更好的方式是使用中层脚本语言来构建项目,它可以帮助游戏设计师把握整个开发的交互过程,让程序员去做大量更基础的工作.从游戏开发者的角度看,脚本语言可以帮助用户很容易地返回游戏开发过程.也许需要几个小时来构建一个"干净"的游戏项目,但脚本语言可以帮助用户快速做出修改并且立刻看到游戏的效果.游戏设计师可以独立于程序员尝试新想法,游戏美术设计师可以创建图形界面把游戏流程和功能组合到一起.脚本语言存在于由软件工程师编写并编译后的代码之上,通常是在运行时编译,是一种方便设计师