3.1脚本语言和游戏
脚本语言可以让美术师直接开始界面设计,让设计师和初级程序员(脚本语言是一种让新手快速进入游戏开发的很好的方式)立即着手游戏流程和逻辑的开发,让关卡设计师能迅速掌控游戏环境和游戏体验。
脚本语言不是非常高效——它们没有原生代码的运行效率,因此不适合作为开发高性能需求处理的工具。但易整合语言能够利用原生语言编写的模块扩展功能,比如Lua,可以作为控制机制来调用原生代码编写的高性能处理组件。(Lua是运行效率最高的脚本语言之一,因此大部分性能方面的问题都可以不用担心。)C函数可以利用自己高性能的特点,并且整合到Lua中,让脚本程序员可以利用这些功能。
这种处理的一个例子是在游戏世界中放置一个3D模型的功能。渲染系统完全由C++开发,但Lua可以调用C++来创建一个特定模型的实体对象,并且设置其在场景中的位置,然后Lua还可以为这个3D模型指定动画。Lua并不处理任何实时的复杂运算来改变该模型,而只是告诉底层渲染系统什么时候该做什么。在下面的例子中(参见代码清单31),AddEnvironmentObject()是一个LuaGlue函数——它可以直接调用C++方法并且让Lua能够控制底层的3D渲染功能。这种函数由C++程序员编写,把底层的功能提供给脚本程序员和设计师。