游戏开发使用Lua的理由

本文探讨了Lua在游戏编程领域被广泛使用的原因,重点在于其虚拟机设计允许灵活的多进程、多线程集成,避免了如Python中的全局环境限制。通过对比lua_State* L参数的使用,展示了Lua如何无副作用地嵌入复杂框架,使其成为理想的嵌入式脚本语言。同时,文章提及Lua的轻量级特性对于未来客户端逻辑框架的复杂化趋势也有显著优势。
摘要由CSDN通过智能技术生成

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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值