热更新
底层使用C++,Java,C#高级语言(编译型)实现模块的基础功能,例如绘图,物理计算,UI等等。为了能够让应用程序在不重新编译代码和发布版本的前提下快速的完成功能的迭代,不能纯粹使用编译型语言。
解决方法是融合一个脚本语言(解释型语言),不需要编译,直接更新源代码文件就可以实现功能的更新,另外非要求语言效率尽可能高,例如JavaScript,Lua,Python。Lua效率远高于另外两门语言。
C++负责底层基础模块,Lua负责抽象功能。
也有部分游戏仅仅用地曾预言编写一个对接Lua的借口,然后所有游戏逻辑都用lua编写。例如,完美世界的,梦幻诛仙2D回合制(C#暴露所有渲染接口,Lua调用完成所有逻辑)
Lua
Lua的体积很小,以至于往往使用静态链接完全嵌入到程序内部,这样在发布应用时不需要附带任何额外的运行时支持。
Lua的使用
方法1:Lua编译器
lua编译器->命令行执行luac命令编译”.lua”源代码,然后lua命令运行编译后的可执行文件
方法1:Lua源代码(C语言)
配置Lua开发环境 : 创建工程编译出的Lualib.lib静态库文件 -> 然后在游戏项目中配置Lua环境
1:把所有.h添加到工程下,并加入IncludePath的引用目录
2:把lib静态库加入到工程下,并加入Library引用目录,并在连接器中加入这个库的链接
3:在代码中调用相应的C函数来执行lua代码
4:在lua中执行C编写的注册好的函数