John Carmack’s Opinion on the Unity Engine: The Brutal Truth
TL;DR: John Carmack calls Unity's C# garbage collector baffling for real time work, especially VR where one dropped frame ruins immersion. He says the engine encourages sloppy code by hiding hardware from developers. Still, he respects that Unity ships: a messy project that reaches players beats a perfect custom engine that never launches.
John Carmack—the high priest of low-level optimization, the man who bent silicon to his will to create Doom and Quake—has always viewed the Unity engine through a lens of cold, hard pragmatism mixed with engineering heartbreak. For a developer who lives and breathes cache-coherent C++ and assembly, Unity is not just an engine; it is a fascinating, frustrating contradiction.
I. The War on Inefficiency: "Baffling" Architecture
To Carmack, the internal plumbing of Unity is a source of constant technical friction. His critique is centered on one primary culprit: C# and its Garbage Collector.
The GC Stutter: In the world of high-performance VR—where Carmack spent his years as the CTO of Oculus—a single dropped frame is a cardinal sin. He has famously called the presence of a garbage collector in a real-time engine "baffling." To him, the unpredictable "hiccups" of managed memory are like a heartbeat that skips at random—unacceptable for true immersion.
The "Sloppy" Trap: Carmack argues that Unity’s ease of use encourages a generation of "lazy" code. When the engine abstracts the hardware away, developers stop thinking about memory layouts and instruction counts, relying instead on the "brute force" of modern CPUs to hide inefficient architecture.
II. The Great Democratizer: A Necessary Evil?
Despite his technical "allergy" to managed code, Carmack is not a blind elitist. He acknowledges a reality that many purists ignore: Unity wins because it ships.
The Power of "Good Enough": Carmack has openly defended Unity as a tool that allowed thousands of creators—who could never dream of writing a custom renderer—to bring their visions to life. He respects the "value proposition" of a tool that prioritizes human productivity over machine efficiency.
Shipping vs. Perfection: In his view, a "perfect" custom engine that never ships a game is a failure. A "messy" Unity project that reaches millions of players is a success. This is the hallmark of Carmack’s legendary pragmatism.
III. The Engine Hierarchy: Unity vs. The Giants
Carmack’s assessment of the competitive landscape is characteristically blunt:
The Contender Carmack's Verdict
Custom Engines The peak of performance, but a dying art for all but the most elite teams.
Unity The "accessible" middle-ground. Heavy, bloated, and technically compromised, but undeniably effective.
Unreal Engine A "bloated behemoth." While "closer to the metal" than Unity, its codebase is so massive that Carmack has critiqued it as being almost impossible for a single mind to fully master.
IV. The End of the Engine Era: AI and AGI
In his most recent and most dramatic shift (2025-2026), Carmack has begun to look past the "Unity vs. Unreal" debate entirely. He believes we are witnessing the twilight of the traditional game engine.
Legacy Frameworks: He now views Unity as a "legacy" tool. In the age of AGI, Carmack envisions a world where "programming" is replaced by high-level intent.
- Vibe Coding: The next great "engine" won't be a piece of software you buy from a corporation; it will be an AI model that generates the world, the physics, and the logic on the fly. In this future, Unity’s C# scripts will look as ancient as punch cards.
The Final Verdict
To John Carmack, Unity is a "messy but necessary" compromise. He mourns the loss of pixel-perfect efficiency but celebrates the explosion of creativity it enabled. He views it as a bridge—a vital, clunky, and imperfect bridge—leading us toward a future where AI renders the very concept of a "game engine" obsolete.