Innovate As You Want. A plugin-oriented game engine written in C#.
Build your game's rendering models, gameplay systems, and Editor tools on a shared foundation. InnoEngine provides backend-neutral mechanisms, explicit platform composition, and a common asset and plugin workflow.
Get started · Wiki · Architecture · Extend the engine
Active development. APIs and project data evolve together. See current validation and limitations before relying on a product path.
Requirements: Git, the native x64/ARM64 .NET SDK 10.0.402 (C# 14), and your host's C++ toolchain. Windows x64 requires MSVC C++ desktop tools, Windows SDK, and C++ CMake tools. macOS ARM64 requires Xcode command line tools and CMake on PATH. Host setup and first launch.
git clone --branch kernel --recurse-submodules https://github.com/Wolfiora/InnoEngine.git
cd InnoEngineOpen InnoEngine.sln in a .NET 10-capable Rider or Visual Studio 2026. Choose one of two startup projects:
| Start | What it does |
|---|---|
| InnoEngine.Editor | Builds the current host Editor through project references and opens a project-folder picker. |
| InnoEngine.Build | Prepares host Editor support by default; editor builds the complete Editor. Cleaning is explicit. |
The same commands work from a terminal:
dotnet run --project "entry/InnoEngine.Editor/InnoEngine.Editor.csproj"Use the branch containing these changes; the command above selects kernel. BGCS is restored from pinned NuGet packages, and third-party sources are submodules under extern/. The first build needs network access and prepares native support and bindings before opening a window. Subsequent builds compile changed C# dependencies and reuse valid support caches. No prior Build run, shared .run file, or Browser workload is required for a desktop Editor. Game scripts and assets use import and reload; game exports prepare their own Player support packs.
Have a project already? Pass its directory after --. To try FlappyBird, clone InnoEngine.Samples separately and select its FlappyBird folder.
Startup, advanced commands, and game exports → · Current acceptance
| Target | Products | Managed deployment |
|---|---|---|
| Windows x64 | Editor, Player | CoreCLR, NativeAOT |
| macOS ARM64 | Editor, Player | CoreCLR, NativeAOT |
| Browser Wasm32 / WebGL 2 | Player | Mono Wasm, Mono Wasm AOT |
Windows x64 has current Editor, Support Pack, CoreCLR, and NativeAOT acceptance evidence. Browser publication is blocked by the pinned BGCS package's aggregate ABI capability; macOS requires a native ARM64 host. See the current results and remaining checks. Visual, DPI, input, audio, and long-running device checks are recorded separately.
- Shared mechanisms. Identity, serialization, events, assets, scenes, rendering, audio, input, storage, and execution lifecycles.
- Replaceable implementations. SDL3, BGFX, MiniAudio, FreeType/HarfBuzz, RmlUi, and ImGui live in reusable backends. Platform integrations connect actual SDK differences.
- Explicit ownership. Sessions own resources; candidate publication, Missing recovery, and verified generation retirement support hot reload.
- Plugins shape the engine. Rendering models, components, importers, and Editor tools share the same discovery and authoring infrastructure.
Author under Assets/; install .iplugin packages under Plugins/. Installed plugin content enters the existing asset pipeline as read-only sources. Plugin workflow →
entry/ Two development launchers and host dispatch
src/ Shared foundation, content, services, runtime, and product hosting
backends/ Reusable adapters, native bindings, and component build recipes
platforms/ System/SDK integration, product entry points, and packaging
build/ Common pipelines, toolchains, and explicit distribution composition
tests/ Domain and cross-component contract tests
extern/ Third-party source dependencies
docs/ Architecture, workflows, and API Wiki
New platforms select backends and supply the required integrations. New backends implement domain contracts and join the explicit product/build composition. Extension guide →
| Start here | Find |
|---|---|
| API Wiki | Project pages and public contracts |
| Scripting | Game code and extension APIs |
| Build | CLI, native toolchains, and game exports |
| Architecture | Layers, dependencies, and ownership |
Apache License 2.0. Third-party dependencies retain their respective licenses.
