热更新必要性· App Store审核周期长· 应用更新频繁· 更新版本对留存数据有很大影响Lua相关· Lua:脚本,解释性语言· LuaJit:扩展高效版本,支持编译成二进制代码。· Tolua++:C/C++函数对象转化为lua能调用形式。· Cstolua:C#函数对象转化为lua能调用形式。 ulua、slua、unilua以及鹅厂johnche大神的xlua,ulua、slua是比较成型的解决方案,xlua现在起步不久,功能性以及周边不足够完善成熟,但tdr支持很好。性能方面ulua和slu
我所在的游戏架构是:前端:Unity3D后端:erlang+mysql(推荐mnesia)+ ProtolBuf 后台:PHP + erlang(cowboy)
写在前面 xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。 2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。 目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现,不足之处在于:1、接入成本高,有的项目已经用C#写完了,这时要接入需要把需要热更的地方用Lua重新实现;2、即使一开始就接入了,也存在同
目前Unity下的热更新方案有不少,这些方案都要求要热更新的地方一开始就得用脚本来实现,这带来一些问题:1、接入成本高,有的项目已经用C#写完了,这时要接入需要把需要热更的地方用脚本重新实现;2、即使一开始就接入了,也存在同时用两种语言开发难度较大的问题,有些项目只是想fix下bug而已,却被迫使用两种语言开发,明显代价有点大;3、脚本性能不如C#; 对于双语编程的问题,有人尝试通过把C#翻译成脚本来解决(js,lua都见过)。这种翻译往往在C#语法支持上都不完备,而且,性能问题仍然未解决,甚至更严重
前言Unity下的C#GC Alloc(下面简称gc)是个大问题,而嵌入一个动态类型的Lua后,它们之间的交互很容易就产生gc,各种Lua方案也把这作为性能优化的重点。这些优化说穿了其实不复杂。元凶在这里先看看这两个函数?123456789int inc1(int i){ return i + 1;} object inc2(object o){ return (int)o + 1;}window下实测inc1的性能是inc2的20倍!差距为什么那么大?主要原因在其参数及返回的类型,inc2参数
前几个月腾讯开源了一套热更新、热补丁解决方案,托管在Github最近抽出时间学习下,研究了下官方文档,受益颇深之后准备录制一套视频教程来讲解xLua,录制完成后会将链接分享在这篇博文里本文我来介绍xLua的自定义Loader先介绍两种Lua文件加载方法一.执行字符串方法[csharp] view plain copy LuaEnv luaenv = new LuaEnv(); luaenv.DoString("print('hello world')"); 二.执行Lua文件方法[csh
本文通过对XLua的HoxFix使用原理的研究揭示出来这样的一套方法。这个方法的第一步:通过对C#的类与函数设置Hotfix标签。来标识需要支持热更的类和函数。第二步:生成函数连接器来连接LUA脚本与C#函数。第三步:在C#脚本编译结束后,使用Mono提供的一套C#的API函数,对已经编译过的.Net体系生成的DLL文件进行修改。第四步,通过LUA脚本修改C#带有标签的类中静态变量,把代码的执行路径修改到LUA脚本中。通过这套方案可以实现对已经标识的C#代码进行动态更新。基础准备 知识准备 CIL: 通用中
第一个问题 XLua
Aladdin_XLua前言前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议,也受到广大开发者的热捧,然后我当然也抱着好奇的心去学习学习。后面也会将扩展之后的工程放在Git上,大家一起学习交流!在此感谢XLua作者创造出这么好用的框架!个人对XLua看法简洁易用,容易上手可扩展性高,添加自定义的CS模块或者第三方插件非常方便大厂维护,可靠特色:HotFix 关于这个HotFix是其他热更lua框架所不具备的,也是他最大的优势和特色之一,原理就是通过特性标记然后在IL逻辑层判断修改逻
前言在XLua没出来之前,开源的lua框架基本都是以界面用Lua开发为主,核心战斗用C#开发,但xLua出来之后主推C#开发,Lua用作HotFix,这里我展示的第一个例子就是基于界面的经典2D小游戏——俄罗斯方块,界面逻辑是用C#写,启动加载逻辑是用lua,后面我会继续第二个同样的Demo,但是以纯Lua为主,这个案例明天更新。效果图 由于我不会美术,所以这里使用的开源的游戏资源,感谢此作者。游戏启动C#启动Lua逻辑?12345678910111213141516171819202122232425
关于Lua的Unity UI面向过程编程模板该模板基于xLua实现,对xLua不熟悉的可以去了解下。改用别的Lua热更方案也容易。先发下示例地址https://github.com/skylecn/xLua/tree/master/Assets/XLua/Examples/UIFrame窗口如下窗口左侧是一个列表,选择列表中的项,右边会显示当前选择项的内容。下面是实现窗口功能的Lua文件。 req
可以看看这两篇文章,是鹅厂高级工程师写的腾讯开源手游热更新方案:Unity3D下的XLua方案介绍Unity下XLua方案的各值类型GC优化深度剖析
写在前面xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现,不足之处在于:接入成本高,有的项目已
lua作为一个小巧,灵活,支持热更新的语言,在游戏中广泛应用,可惜不是Unity默认支持的语言因此,将Lua集成到unity中就成了很多人的选择 Unity手游开发札记——Lua语言集成集成以后,Lua也是需要一个框架的: LUA框架说明与使用 Unity3D研究院编辑器之创建Lua脚本模板(十六)还需要一些必要的工具 Unity手游开发札记——ToLua#
前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议,也受到广大开发者的热捧,我把相关的一些资料做了一个整理。 腾讯开源手游热更新方案:Unity3D下的XLua方案介绍 腾讯开源手游热更新方案:Unity3D下的XLua技术内幕(一) Unity 游戏用XLua的HotFix实现热更原理揭秘 浅谈xLua自定义Loader
热更新对游戏很重要,但是unity自身是不支持热更新的,因此这方面还是有不少方案和文章 Unity热更新之LuaInterface(上篇) Unity热更新之LuaInterface(下篇) Lua 5.2/5.3 热更新小结腾讯也开源了一个热更新的解决方案 腾讯开源手游热更新方案:Unity3D下的XLua方案介绍slua的热更新方案: 
运行的时候可能会报错: Program [lua.exe] not found. 怎么办? 插件的不足之处没有内置lua环境, 需要自己安装比如 “Lua for window ”。 希望插件以后能内置环境。 按照作者的回复考虑体积搞大“至少两个平台 32 64,再加上luasocket模块, 还要考虑平台和版本问题 ”内置是
https://www.2cto.com/kf/201701/591817.html
Xlua/Generate Code,这个点过嘛
ai在游戏开发过程中一直都是被反复修改的一部分。策划短期内的需求随着游戏内容越来越丰富,难免会调整ai行为,所以我长久以来一直想有一个完全交给策划同志们编辑的游戏ai编辑器。 我们考虑一下游戏实际逻辑ai,比如有这样一些需求:角色需要找寻一个自己能打得过的野怪并且避让某些打不过的大型野怪,或角色达到一定等级做一些特定行为等。这些行为加条件的组合肯定是依赖于角色本身已经实现了一些基本的功能,例如行
标签暂无描述