03ca9c62b7326868e3bdcd989da5cf0c1236140f
Match the more familiar Unity-style object model instead of a struct-of-arrays ECS: GameObject hierarchy with type-indexed component queries, Transform inlined as the one performance-motivated exception. Data/behavior stay split the same way ECS required it, so hot-reload safety is unaffected. Also fixes an inconsistency in the previous reload sequence, which described migrating live component data on a contract change even though the Default ALC hosting contracts never unloads. Contract changes now explicitly require an editor restart instead. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N1qPfzq8TDCUMFMV3UwV5N
Lingua Engine
A modular, plugin-first game engine built around one idea: the kernel is a shared language, not a shared implementation. Everything the engine can do — rendering, physics, audio, even the editor itself — is a plugin that speaks that language. The kernel only defines the vocabulary plugins use to understand each other.
Built for Linux and Windows, in C#/.NET, with two goals that shape every design decision:
- Fast iteration. No Unity-style domain reload. Plugins hot-reload their
compiled code without resetting game state, because state never lives in
plugin code to begin with — see
docs/kernel-contract.md. - A small, frozen kernel. Everything else — including the parts most engines treat as core — is a plugin, versioned and replaceable per project.
Status
Pre-implementation. The current design is written up in
docs/kernel-contract.md: what belongs in the
kernel, the plugin contract, the hot-reload model, and the build order
(M0–M4). Nothing has shipped yet — this document is the thing to argue with
before code gets written.
License
Languages
C#
93.6%
C
4.5%
Shell
1.2%
CMake
0.7%