脚本化编程
脚本化编程的最大好处就是简单灵活,另外就是热更新,这在网游中广泛被采用,在网游中,通常采用引擎(c/C++)+脚本(lua/python)的架构,那种SDK性质的代码放在引擎中,这些代码在游戏上线后通常很稳定很少被修改,而真正游戏逻辑的制作就都在脚本层中进行。这样有两个好处:1.脚本层的bug基本不会导致程序的crash,因为是沙盒的。2.对于运行的代码,可以方便的采用热更新修复bug。
C与lua的交互
而如果想在脚本层编写逻辑代码,一个最重要的就是需要将引擎层即C++中的对象、函数、全局变量等等暴露给脚本层来访问,当然有时也要能让C++层能够方便的访问脚本层的全局变量。最近稍微仔细的探索了一下C++与Lua之间交互的知识,稍作总结,分享给需要的人。
在C中可以写代码访问调用lua(函数、变量..),同时也可以在C中写代码让所lua里面能访问c。c和lua的交互通常无外乎就以下这三种情况
1.这种情况C是启动程序,然后调用lua里的变量
2.这种情况C被编成库程序,启动程序是lua(通常是你的lua解释器lua.exe),在lua中可以使用c的变量
3.这种情况C是启动程序,然后调用lua里的变量,然后调用的l