《Lua游戏开发实践指南》读后感

书籍地址:http://book.douban.com/subject/20392269/

一句话点评该书:想用Lua作游戏脚本开发的同学值得一读!

(一)本书特点

市面专门讲Lua的中文书籍很少,窃以为,一方面可能觉得Lua比较简单,可深入讲的东西并不多;另一方面,说明Lua的开发者数量,(尤其是国内)还是一个比较小众的群体,出版商们也无利可图。回到这本书,它不同于一般纯粹讲Lua语言本身的书籍,如:《Lua程序设计》等,而是专注于讲解Lua在游戏领域的应用,从书中列出的几个例子来看,可以看得出作者在游戏行业是有比较丰富的经验的。下面摘取了书中的一些要点,与诸君分享之:)

(二)要点分享

(1)Lua在游戏开发的应用场景

1)编辑游戏的用户界面

我的理解:GUI图形绘制等基础功能还是要由宿主语言来完成,如:C/C++,Lua可以负责GUI的排版、布局等逻辑处理;

2)定义、存储和管理基础游戏数据

我的理解:游戏对象各配置数据如果比较简单的,均可以用Lua代码直接描述,用以代替文本文件,并省却解析的代价。复杂一点的,可以结合excel(保存为cvs文件),并利用Lua强大的文本解析功能来完成。

3)管理实时游戏事件

我的理解:玩家与游戏的交互都是通过鼠标、键盘等外设来完成,而在游戏设计中,普遍的做法是用事件机制来驱动完成。在Lua中可以通过定义LuaGrue函数与C/C++等宿主语言进行交互调用来形成一整套完整的事件系统。具体实现时,宿主语言实现捕获鼠标、键盘各类事件的底层接口,而事件触发后具体做什么,以及事件之间可能的依赖关系等逻辑,则由Lua来完成;

4)创建和维护开发者友好的游戏存储和载入系统

我的理解:在单机游戏中的游戏存档等数据,也可以很方便的用Lua来直接描述;

5)编写游戏的人工智能系统

我的理解:作者说的在AI中应用Lua,我觉得应用场景应该是在一些比较小的单机游戏中,而在大型多人在线的网络游戏中,恐怕还是需要性能更高的C/C++来实现。当然,作者也讲到,一个灵活的做法是,先用Lua来快速实现原型,遇到性能瓶颈了,再用C/C++来替换。

作者在讲到Lua在游戏开发团队中的应用分工时说,“程序员负责将Lua整合到游戏开发环境中,游戏设计师(策划)是脚本语言的主要使用者,因为他们和上层的游戏设计和数据直接打交道,美术师也会经常使用Lua,进行诸如界面布局、设计和3D场景中各种模型的摆放之类的工作。”看到这里时,不禁感叹,我们与国外游戏开发同行的水平差距:人家认为游戏策划和美术人员写脚本是理所当然的事情,而咱们这里,却认为这些不都是程序员该干的活吗?开发理念的高低直接导致了开发成果的巨大差异!

(三)本书的不足

(1)书中讲的Lua版本是5.0,而现在最新的已是5.2.1了,与C语言通信的API也有了一些变化;

(2)没有讲Lua的一个重要特性:协程,协程在异步编程中应用广泛,不但能简化传统异步编程的代码编写,而且还能有效的提高性能;

发表评论

电子邮件地址不会被公开。 必填项已用*标注