[置顶] LUA脚本组件系统(二)

LUA脚本组件系统

----让LUA成为C++的子集



二脚本组件系统产生的背景、动机与意图

         毫无疑问,现代游戏开发无论是规模较小的休闲手机游戏,家用机平台游戏还是大型多人在线网络游戏都涉及到数十人的团队合作,有的大型MMOG甚至涉及到数百人的合作,耗时数年开发才能完成。相对于游戏玩家来说,他们希望在游戏中看到真实华丽的场景,听到动态逼真的音效,体验到行为智能的角色.这些超级复杂不但包括程序,还包括美术、音效、配置文件和各种表格的内容已经不可能再由程序员独立创造出来了,游戏已经成为了一种由美术、语音、表格等数据驱动的产品。

         由于静态编译的语言不可能在运行时动态的改变程序的数据模型,只靠C++这样的语言已经很难快速的整合各种数据实现快速开发了.而动态解释的脚本语言的灵活,简单,易学易用的特性,刚好可以弥补静态编译的语言的缺点。Lua作为一门动态语言,在游戏开发中被越来越多的项目使用,除了程序开发人员可以用其来实现快速开发,满足不断变更的需求外,游戏设计师也可以用其来快速的实现一些游戏玩法特性的原型,实现多种玩法。

任何事物都有两面性,灵活的脚本系统虽然可以实现高效的开发,更快的响应需求的变更,但由于其灵活易用的特点,往往可以用多种方法来实现相同的特性,如果设计得不好,就会使脚本难于维护和复用。因此设计一个良好的脚本系统是很有必要的。

那么一个良好的脚本系统应该具备什么样的特点呢?首先,要能封装和隐藏一些不必要的信息,因为暴露给其他使用者的信息越少,复杂度就越低,维护成本也就越少。其次,脚本和数据要能最大限度的复用,也就是说游戏设计师通过工具生成的数据和逻辑要能被复用,而不是每次做类似功能的需求时要从头做起。最后,脚本和数据要易于使用和维护,最好可以通过工具以可视化的方法来操作编辑甚至生成脚本。

怎么设计一个具有以上特点的脚本系统呢?在开始真正的脚本系统设计之前,让我们来了解一下一些相关的基本知识。

你可能感兴趣的:([置顶] LUA脚本组件系统(二))