Skip to main content

Project status & roadmap

Current status

:::info Dual runtime All Unity / Lua combinations listed in the compatibility matrix are covered; Mono and Il2Cpp dual runtimes are done.

RuntimeEnvironmentStatus
Il2CppPlayer shippingDone (spec and implementation follow Il2Cpp zlua/)
MonoUnity EditorDone (Lua-visible semantics match Il2Cpp)

Authoritative contract: this repo’s docs/spec/ (sole semantic standard); on conflict resolve spec → Il2Cpp source → impl. See Spec overview. :::

:::tip Development tips

  • Day-to-day: iterate scripts and features in Editor (Mono).
  • Ship / performance: treat Il2Cpp Player as truth; before builds run ZLua/Generate/All (C++ stubs — not xLua-style C# Wrap). :::

Where should I develop / what should I test?

ScenarioSuggestion
New project prototypeEditor Mono + zlua-demo; run Generate before Player
Validate PlayerIl2Cpp; semantics follow the Spec
Perf vs xLuaIl2Cpp Player; see Performance
Full API semanticsSpec docs

Il2Cpp (Player)

Player-side C++ direct bridge, signature stub reuse, GetFunction Delegate bridge, lazy binding, and Marshal paths are landed. Implementation: Il2Cpp impl; codegen: Stubs.

Note: “No C# Wrap whitelist” ≠ “no codegen at all”. Il2Cpp still needs ZLua/Generate/All for C++ MethodBridge and other Lua→C# stubs; C#→Lua has no extra stubs.

Mono (Editor)

Shares the same Lua-visible semantics (spec) as Il2Cpp; implementation is Expression Emit with directories aligned to Il2Cpp modules. See Mono impl.

Key points:

  • No event-specific metatable; use ordinary add_Xxx / remove_Xxx methods
  • Bridge: per-member Expression Emit (vs Il2Cpp ReducedType stubs)
  • Editor does not need Generate C++ stubs; Generate when shipping Player

Capability boundaries (summary)

TopicNotes
EventNo { get, set, fire }; obj:add_EventName(fn)
GenerateNo per-type C# Wrap; Il2Cpp has C++ stub Generate
Opaque / ByVal / ByObjSee Struct Marshal
Dual-end differencesDifferent implementation paths; semantics follow the spec

Full matrix: Compatibility.

Version plans

Near term

  • Keep updating performance / GC / size measurements in compare
  • Keep correcting Spec and user Guides
  • Migration Guides and community feedback

Later

  • Luau
  • More platform and device measurements
  • Richer migration Guides (see Migration)

Next steps