Notifications
Article
Unity与腾讯G6携手共建LiveCoding实时编程方案
Updated 3 months ago
195
0
移动端手机游戏的开发者往往面临着:在Unity中完成开发的游戏,在上线的时候,由于开发环境和运行环境的差异,导致众多BUG的产生,这被众多开发团队戏称为“版本之夜”。
在移动游戏上线的时候,开发团队往往需要大量时间等待资源打包、安装、一次次的验证版本。由于在手机上调试环境缺失,出现的问题难以进行定位,获得移动客户端上的运行日志,更是难上加难。
虽然使用动态脚本能够减轻一些版本发布遇见的问题,但是没有代码检查工具,没有智能代码提示,开发人员往往难以调试,维护和重构。Lua脚本开发也没有像Visual Assist一样好用的开发环境。
为了解决这些问题,针对“迭代效率”的痛点,腾讯游戏云服务的部门下的G6 Team,与Unity大中华区的开发工程师一起携手,共建LiveCoding实时编程方案和G6IDE

LiveCoding

LiveCoding是一套面向移动端开发的实时编程方案,使用LiveCoding实时编程方案,移动端不需要用户重新安装游戏,仅重启游戏即可生效。
LiveCoding主要由Lua脚本的实时热加载系统,C#代码变更后推送手机和资源快速打包验证的能力三部分组成。
  • 开发期间,对于Lua代码的修改,实时可在手机验证,无需重启游戏。
  • 开发期间,对于C#代码的修改,无需安装,一键编译DLL并发布,5秒到达,重启游戏即可生效。
  • 对于资源的修改,所有的预制件,无需安装,一键打包资源到目标平台,重启游戏即可生效。

下面是详细功能介绍:

Lua代码的更新

  • 保存运行时状态的更新
  • 提供保持状态的Lua Hotfix ,包括: 沙盒加载,Upvalue保持,函数替换等
  • 遍历运行环境,支持外部保存的Delegate的替换
  • 实时监测脚本变化,使用USB推送至手机并通知Hotfix

C#的更新

  • 开发期间的C#代码更新方案
  • 单独编译C#代码,快速生成DLL,无APK生成,无需安装
  • 编码方式无改变,一键更新手机并自动重启游戏
  • 采用了Unity最新的Scriptable Build Pipeline

资源的更新

  • 开发期更新单个资源
  • 支持着色器,材质的修改,便于验证各个平台的表现
  • 预制件的修改,便于修改配置,逻辑,适配等
  • 按需打包,按需更新,使用方式无感知,一键更新并自动重启游戏
  • 采用了Unity最新的Addressable Assets

G6IDE

为提升开发效率,游戏开发中,我们推荐以Lua脚本为第一语言来开发业务逻辑,遇到性能相关的逻辑时使用C#或C++。为解决Lua脚本一直以来的诟病,G6团队开发了G6IDE,致力于成为功能最完善的Lua IDE。
G6IDE具有以下特点:
  • 代码智能感知
基于语法分析,实时错误提示
智能代码提示,定义跳转
支持查找所有引用,支持重构时重命名

  • 调试功能
支持Editor调试,支持手机端的调试
支持条件断点,监控查看表达式
支持调试任一联网终端(DebugAnyWhere)
支持重定向日志到IDE,抓取终端文件,发布脚本等
  • 独创的类型注解功能,支持泛型
  • 内嵌Unity符号表

产品试用

了解了LiveCoding实时编程方案和G6IDE,你是否希望对产品进行试用呢?
G6IDE已开始接受试用申请,你可以添加微信公众号:腾讯G6游戏开发平台,登记申请使用。由于LiveCoding涉及Unity引擎修改,需要等待Unity新引擎版本的发布,敬请期待。

小结

我们即将迈入2019年,Unity和G6 Team进行进行紧密合作,对LiveCoding实时编程方案提供更多的功能,助力中国区的开发者,提升Unity环境下的开发效率和质量。
关注LiveCoding实时编程方案和G6IDE,请添加微信公众号:腾讯G6游戏开发平台。我们会定期更新最新的进展情况。
更多Unity最新信息,请访问Unity官方中文论坛(UnityChina.cn) !

Unity China
492
Comments