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.
| Runtime | Environment | Status |
|---|---|---|
| Il2Cpp | Player shipping | Done (spec and implementation follow Il2Cpp zlua/) |
| Mono | Unity Editor | Done (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?
| Scenario | Suggestion |
|---|---|
| New project prototype | Editor Mono + zlua-demo; run Generate before Player |
| Validate Player | Il2Cpp; semantics follow the Spec |
| Perf vs xLua | Il2Cpp Player; see Performance |
| Full API semantics | Spec 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_Xxxmethods - Bridge: per-member Expression Emit (vs Il2Cpp ReducedType stubs)
- Editor does not need Generate C++ stubs; Generate when shipping Player
Capability boundaries (summary)
| Topic | Notes |
|---|---|
| Event | No { get, set, fire }; obj:add_EventName(fn) |
| Generate | No per-type C# Wrap; Il2Cpp has C++ stub Generate |
| Opaque / ByVal / ByObj | See Struct Marshal |
| Dual-end differences | Different 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)