腾讯开源手游热更新方案，Unity3D 下的 Lua 编程

游客

标题:腾讯开源手游热更新方案，Unity3D 下的 Lua 编程
正文:
xLua是Unity3D下Lua编程解决方案，自2016年初推广以来，已经应用于十多款腾讯自研游戏，因其良好性能、易用性、扩展性而广受好评。现在 腾讯已经将 xLua 开源到GitHub。2016年12月末，xLua刚刚实现新的突破：全平台支持用Lua修复C#代码bug。目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现，不足之处在于： 接入成本高，有的项目已经用C#写完了，这时要接入需要把需要热更的地方用Lua重新实现； 即使一开始就接入了，也存在同时用两种语言开发难度较大的问题； Lua性能不如C#； xLua热补丁技术支持在运行时把一个C#实现（函数，操作符，属性，事件，或者整个类）替换成Lua实现，意味着你可以： 平时用C#开发； 运行也是C#，性能秒杀Lua； 有bug的地方下发个Lua脚本fix了，下次整体更新时可以把Lua的实现换回正确的C#实现，更新时甚至可以做到不重启游戏； 这个新特性iOS，Android，Window，Mac都测试通过了，目前在做一些易用性优化。那么，腾讯开源的xLua究竟是怎样的技术？它是为何如此设计的？更令人关心的是，xLua的性能如何？带着这些问题，InfoQ对其作者进行了采访并将内容整理成文。技术背景腾讯自研手游，就我了解的项目来说，大多数游戏引擎都是Unity3D，少数用coco2d。xLua这个插件具体用到了哪些游戏中？虽说xLua是2015年3月就完成了第一个版本，但由于当时项目组热更的意识并没有很普遍，需求不是很强烈，xLua的开发资源都调到更紧急的项目了。直到15年年底正式集成到我们的apollo手游开发框架，才迎来xLua的第一个项目。到目前为止，我们已知的应用了xLua的项目有十多个，其中不乏一些重量级IP，或者按星级标准打造的产品。在xLua之前，面对iOS无法热更新的问题，有用ulua的，有用slua的，也有项目用自研的脚本语言，不过当时用人更新的项目也不多。热更新流程手游的热更新流程很简单，只是启动时检测下是否有新版本文件，有的话就下载覆盖老文件，然后启动。下载的文件如果是图片，模型这些是没问题的，但如果是U
[<<][[1]][2][3][>>]

查看评论(0)
发表评论

首页