A scripting backend is the technology that turns your managed C# into code the target hardware can actually execute. Mono and IL2CPP take fundamentally different routes to get there, and that difference is the whole story.
Mono is the original backend, built on a standard .NET runtime. It uses Just-In-Time (JIT) compilation: your C# becomes .NET Intermediate Language (IL), and that IL is compiled into native machine code on the fly, while the game is running.
The upside: Mono builds are fast, which makes day-to-day iteration quick, and JIT allows dynamic code generation at runtime, which is handy for reflection-heavy patterns or code that emits IL on the fly.
The downside: JIT adds runtime overhead, which can mean slower startup and lower performance in large projects, and it simply is not allowed on locked-down platforms.
IL2CPP (Intermediate Language To C++) is Unity’s own backend, and it works ahead of time (AOT). It compiles your C# to IL as usual, then its converter rewrites that IL into C++ source code, and finally a native platform compiler turns that C++ into machine code that is baked directly into the build. There is no JIT at runtime: the native code is already there, ready to run.
The trade-offs: IL2CPP cannot generate new code dynamically at runtime (a consequence of AOT), and, as everybody feels, its builds take much longer
IL2CPP stacks two heavy stages on top of a normal compile. First it generates C++ from your entire managed codebase; then a native toolchain compiles that often-enormous pile of C++ into machine code. Unity itself notes that including machine code increases both build time and final app size. Now multiply that by every target platform and every CI run, and “go build the player” turns into “go get lunch.” On a large title, the C++ compile stage alone can dominate the entire build.
Here is the good news: the slowest part of an IL2CPP build, compiling that mountain of generated C++, is exactly the kind of work that parallelizes beautifully. Incredibuild accelerates it.
On Incredibuild’s Unity acceleration page, IL2CPP is a first-class target: it shortens the C#-to-C++ conversion process for faster deployment across mobile, console, and VR/AR headsets. Under the hood, Incredibuild distributes that C++ compilation across hundreds of idle cores on your network or in the cloud, and its Build Cache makes sure a result is never recomputed when the inputs have not changed.
It wraps your existing Unity command-line build with zero changes to your project, scripts, or pipeline, and it only hashes file contents for caching; it never stores or inspects your source. Teams routinely turn hour-plus builds into minutes this way; Archosaur Games, for example, cut Unreal Engine build times by 76%, from 32:18 down to 14:10.
Bottom line: pick IL2CPP for the performance, reach, and protection, and let Incredibuild give you back the build time it costs.
Incredibuild empowers your teams to be productive and focus on innovating.