Bootstrap

游戏开发使用Lua的理由

Lua 为什么在游戏编程领域被广泛运用?

作者:Meta
链接:https://www.zhihu.com/question/21717567/answer/229327361
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我从另一个角度来回答这个问题。揭示游戏程序框架与Lua关系一个关键的方面。和所有人一样,曾经认为所有脚本语言能嵌入到引擎中都是一样的。直到引擎架构足够复杂的时候,才发现了区别。在将脚本嵌入到本身就要处理多进程、多线程的框架之中时,脚本本身的架构会造成根本性差异,以下讨论都是针对这一点说的。先放一张源码行数对比表:放心,我不是来说Lua有多么简洁多么美妙,问题不在这里。问题是:为什么Lua这么短?任何一种程序,它所包含的逻辑功能大致和源码规模是相关的。任何一种实用性的语言都不可能比Lua的源码规模更小,而且未来Lua也不会变大很多,原因是——Lua严格限制了自己要解决的问题,从而把语言特性限制在一个非常有限的范围之内。其实要说Python等其它动态语言,谁也没想让自己变得臃肿(又不是Windows),但是事情并不总能按照想象的发展。根源在于虚拟机的框架设计主导了语言未来的走向,这里比较一下在C语言中初始化Python和Lua的方法:lua_State* L1;
lua_State* L2;

L1 = luaL_newstate();
L2 = luaL_newstate()

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;