Lattice 现在编译为.NET IL —— John Austin

主要观点:Lattice 是针对 Unity ECS 的高性能可视化脚本系统,本周达到重要里程碑,程序已完全编译为.NET IL。其目标是设计能编译为快速线性代码的可视化语言,受 Rust“零成本抽象”启发,新编译管道去除节点图表示,输出变为局部变量,主体变为普通静态方法。
关键信息

  • 过去多次写关于 Lattice 的博客都迷失,此次决定先开始写,追求数量。
  • 生成 C#存在问题,IL 更优,可在运行时修改脚本且易处理,用 Sigil 库捕获类型错误等。
  • 加入 IR 表示降低编译复杂度,仅 7 种操作符,IL 生成步只需为这 7 种操作符生成代码,IL 生成器约 500 行代码。
  • 新后端使 Lattice 速度变快,接近 C#,可自动并行化和 Burst 编译,目前满足需求,将转向游戏流程和用户体验工作。
    重要细节
  • 提到 Bolt、NodeCanvas 和 Playmaker 都解释其节点图,Lattice 发射单个静态方法一次执行游戏中的所有晶格脚本,.NET 和 Mono JIT 擅长处理纯静态方法。
  • 介绍了 IR 表示下各种节点的含义,如 Function 是静态 C#方法句柄等。
阅读 9
0 条评论