《The Witness》為何押注自訂引擎:650 個無字謎題背後的 C++ 技術堆疊
Why The Witness Bet on a Custom Engine: The Stubborn C++ Stack Behind 650 Wordless Puzzles
Jonathan Blow 和 Thekla 為《The Witness》打造自訂 C++ 遊戲引擎,以實現無文字教學、沒有區域間載入畫面的開放島嶼,以及把環境細節設計成謎題線索。遊戲約有 650 個謎題,開發逾七年,團隊放棄 PS3 和 Xbox 360 版本,最終於 2016 年 1 月 26 日在 Windows 和 PlayStation 4 推出。
The short answer: Jonathan Blow built The Witness on a custom C++ engine because he needed an island that teaches without words.
No Unity. No Unreal. Starting in 2008 after Braid, Blow and Thekla, Inc. spent over seven years building both the game and the technology to run it — an open island with more than 500 puzzles, zero loading screens between regions, and a visual language precise enough that a hedge, a shadow, or a sun glare can be a puzzle rule. That choice bought total control and cost years of delay, two abandoned console targets, and so much C++ pain that Blow started designing a new programming language, Jai, before the game even shipped.
The commercial result is well documented: The Witness launched January 26, 2016 for Windows and PlayStation 4, sold over 100,000 copies in its first week — about what Braid had sold in a year — and recouped nearly all development costs. Braid itself had earned near $6 million by 2015, which funded The Witness without giving up creative control. 1 2 3
If you want the one-sentence lesson for indie devs: use a commercial engine to ship content, build a custom engine only if the way players learn is your content.
What The Witness actually is, technically
The Witness is a first-person single-player puzzle game on an open-world island divided into roughly eleven regions around a central mountain. Every core puzzle is solved the same way — draw a path on a grid from a round start node to a rounded end, without self-intersection — but the rules layered on top change completely: separate black from white, respect symmetry, use environmental context, or find a hidden path in the world itself. Blow wanted no verbal instructions; players learn purely by observation and epiphany. The game contains around 650 puzzles by Blow's count, with Steam describing it as over 500 puzzles with no filler, each bringing its own new idea. 1 4
The key technical line from its history is blunt: to create the game's visual language, the team developed their own game engine. Original plans for PlayStation 3 and Xbox 360 were abandoned as that engine became more demanding, and the team ultimately shipped on Windows and PlayStation 4 first, later adding Xbox One, macOS, iOS, and Nvidia Shield. 1
Blow's biography adds the second half: his games are made with custom game engines, and during The Witness he became frustrated with C++, the language Thekla used to create the game. Full-time work on a new language code-named Jai began after release, with the compiler now in beta. In other words, the engine worked, but the language hurt. 3
System requirements tell the payoff: minimum 1.8 GHz CPU, 4 GB RAM, Intel HD 4000, 5 GB storage. For a seamless 3D island in 2016, that is stubbornly light. 4
Why not Unity or Unreal in 2008-2016?
Context matters. When Blow started in late 2008, Unity was at version 2.x — useful for small 3D but not proven for a seamless open world with custom panel rendering and precise color/lighting control. Unreal required UDK licensing and a first-person-shooter-shaped pipeline.
Three things pushed Thekla to roll its own:
1. No loading screens as a design rule. The island is arranged so stuck players can simply walk to another region. That open flow only works if walking never breaks concentration. A custom engine let them guarantee streaming, 60 fps-style responsiveness, and instant panel feedback without fighting a general-purpose engine's defaults.
2. Visual precision as puzzle logic. Architects, landscape architects, and artists were hired to build structures where a branch shape, a shadow angle, or a reflection is the clue. Commercial engine upgrades that subtly change lighting, anti-aliasing, or draw distance would not just be visual — they would break puzzles. Owning the renderer froze the language.
3. Creative control funded by Braid. Braid was self-funded, won Innovation in Game Design at IGF 2006, became the highest-rated Xbox Live title for a time, and is now listed among the greatest games ever made. That $6 million gave Blow the rare indie luxury to hire a larger team without ceding control. Most teams cannot afford that; he could, and he spent it on technology. 2
The cost was predictable: seven-plus years, dropped PS3/Xbox 360 targets, and a team that had to maintain tools instead of just making puzzles.
My analysis: the engine was a grammar, not graphics
Here is where I diverge from the usual “custom engine = better graphics” story. I think The Witness is misunderstood if you file it with other custom-engine flexes like fast FPS renderers.
1. Epiphany latency is the real metric.
Most engines optimize frame latency. The Witness optimizes epiphany latency — the time from confusion to “aha!” If a panel takes an extra 200 ms to respond, if a cable-light does not instantly confirm a solve, if a distant turret beam pops in late, the teaching loop stutters. Blow’s custom engine is best understood as an epiphany compiler: island as source code, panels as functions, mountain beams as build status lights. Eleven regions are like eleven compiler passes; the mountain is the final link. Unity could have drawn the island, but in 2009-2012 it could not have guaranteed that pedagogical timing on Intel HD-class hardware.
2. Wordlessness requires frozen technology.
A game with dialogue can patch a confusing tutorial with more text. A wordless game cannot. Every rule must be readable from the world alone, which means the world must never change meaning accidentally. This is why abandoning PS3/Xbox 360 reads to me not as failure but as discipline: when the engine outgrew those machines, Thekla cut the machines, not the readability. My contrarian take: indie devs obsess over “which engine has more features,” but The Witness suggests the right question for puzzle games is “which stack lets me freeze meaning for five years?” Frozen custom C++ beats a moving commercial target if your puzzles are your language.
3. Jai is tuition, not a side quest.
The standard telling is “Blow got distracted by language design.” I read it opposite: C++ frustration was the engine’s most honest output. Blow wrote a monthly technical column for Game Developer magazine, ported Doom at Silicon Graphics, shipped contractors on Deus Ex: Invisible War and Thief: Deadly Shadows — he knew C++ deeply. If even he found it too slow for iteration, that is data, not ego. Most studios hide tool pain; Blow productized it into Jai. My advice to indies is less romantic: budget a “language tax.” If you go custom, assume 20-30% of time will be fighting the language, and decide in advance whether you will pay it in delays or in building your own tools.
In short: Doom’s custom C bought speed, Kenshi’s OGRE bought simulation freedom, Animal Well’s custom C++ bought mystery density. The Witness custom C++ bought teachability.
What indie devs can actually steal
You do not need to write an engine to learn from one:
- Prototype rules on paper first. The Witness teaches symmetry, separation, and perspective with grids before any 3D. Draw ten maze variants on paper; if they are not fun flat, 3D will not save them.
- Freeze your toolchain early if puzzles depend on visuals. Lock engine version, lighting, and color grading during content production. Do not take a mid-project upgrade that shifts brightness by 5% — in a Witness-like game, that is a logic change.
- Build restart-free iteration. The island lets stuck players walk away. In your game, ensure players can abandon a puzzle without menus, loads, or lost state. Test “walk-away rate,” not just solve rate.
- Measure epiphanies, not completions. Track where players gasp, screenshot, or call a friend over. The Witness has over 500 ideas because each puzzle had to earn its idea; cut any puzzle that only varies grid size.
- Plan your exit from C++ pain. If iteration feels slow in month three, it will feel brutal in year three. Either adopt hot-reload scripting early or scope down — do not hope discipline will fix tooling.
Train the same muscles in your browser
You cannot practice 80 hours of island logic in one sitting, but you can drill the sub-skills The Witness demands.
If you want pure lookahead patience, play a few slow games of Master Chess. It follows full chess rules with AI levels and local multiplayer, and its tips page is explicit about thinking multiple moves ahead and studying forks and pins — the same discipline Witness panels punish when you rush.
If you want maze-path intuition with active reshaping, try Bad Ice Cream. You collect fruit while breaking and building ice walls to split enemies and control corridors. Witness rarely lets you reshape the maze, but Bad Ice Cream trains the core habit: always plan an escape route before committing to a path.
If you want environmental observation — the art of noticing that a vase hides a code or a painting hides a button — spend an hour in Rooms Home Escape. Its loop of scanning rooms, collecting tools, linking a kitchen note to a living-room pattern, and revisiting old rooms when stuck is a compressed version of island exploration. Players describe the same “aha!” rhythm Thekla chased, just in a locked house instead of an open island.
None of these replace The Witness, and that is the point. Use them as warm-ups: ten minutes of chess for patience, ten minutes of ice mazes for path discipline, then return to the island with fresher eyes.
Limits and open questions
Custom did not guarantee universal love — some critics found the island lonely or the final Challenge too demanding, and the $39.99 launch price plus 5 GB footprint limited impulse buys compared to free browser puzzles. The Jai bet is still unresolved; the compiler remains in beta years later, so whether language ownership pays off for Thekla’s next game is unproven. And today, Unity 6 or Unreal 5 with Nanite and Lumen could likely render a Witness-like island far faster than 2009 tech allowed — the 2026 question is whether they could also preserve wordless readability without the same freezing discipline.
My take stands: The Witness did not succeed despite its stubborn engine. It succeeded because stubbornness was the pedagogy. If your game teaches by talking, rent an engine. If it teaches by being exactly this world, exactly this clear, for seven years, you may have to build the world-machine yourself — and be ready to invent a language when the old one slows you down.
Sources
- Game history, engine, puzzle count, sales, and platform shifts verified against Wikipedia and Steam on Oct 19, 2026; EasyHub game descriptions verified same day.
來源:DEV Community · dev.to