摘要: 前言 大家好,我们这期继续借着我们工作室正在运营的在线游戏《江湖X》来谈一下热更新机制以及我们的理解和解决方案。这里先简单的介绍一下热更新的概念,熟悉这部分的朋友可以跳过,直接看我们的方案。 热更新的概念 首先,“热”是相对于“冷”而言的。所谓热更新,即不更新游戏安装包体的情况下,在游戏或游戏启动界 阅读全文
posted @ 2017-12-01 18:41 colourstar 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 在编译期,如果要访问变量a时,会依照以下的顺序决定变量a的类型: local变量本身就存在于当前的register中,所有的指令都可以直接使用它的id来访问。而对于upvalue,lua则有专门的指令负责获取和设置。 全局变量在lua5.1中也是使用专门的指令,而5.2对这一点做了改变。Lua5.2 阅读全文
posted @ 2017-12-01 16:38 colourstar 阅读(292) 评论(0) 推荐(0) 编辑
摘要: OP_MOVE用来将寄存器B中的值拷贝到寄存器A中。由于Lua是register based vm,大部分的指令都是直接对寄存器进行操作,而不需要对数据进行压栈和弹栈,所以需要OP_MOVE指令的地方并不多。最直接的使用之处就是将一个local变量复制给另一个local变量时: local a; l 阅读全文
posted @ 2017-12-01 16:37 colourstar 阅读(543) 评论(0) 推荐(0) 编辑
摘要: Lua一直把虚拟机执行代码的效率作为一个非常重要的设计目标。而采用什么样的指令系统的对于虚拟机的执行效率来说至关重要。 Stack based vs Register based VM 根据指令获取操作数方式的不同,我们可以把虚拟机的实现分为stack based和register based。 S 阅读全文
posted @ 2017-12-01 16:32 colourstar 阅读(461) 评论(0) 推荐(0) 编辑