I finally opened then engine and the room split in two

Last post I made a promise, the next one wouldn’t be about planning, it would be about doing. This is me keeping it.

For weeks, honestly, longer than i’ll admit, the design lived on paper and a few bits on the engine. And paper is safe. On paper the game always works. The scary part was never the design it was opening Unity and finding out whether the one idea the whole thesis rests on could actually exist as running code. So i kept not opening it.

Then I opened it. And the things works.

Here’s what “the thing” is. The whole game is built on two players seeing the same room differently, one reads its human meaning, the other reads its machinery and only getting anywhere by talking across that gap. For that to be real, I needed one room to render two different ways at once, one view per player. In unity, that turns out to be two cameras and layers.

The trick is something called a culling mask. unity draws each camera separately and you can tell each camera which layers of the world its allowed to see. So I put the “human meaning” objects on one layer and the “machinery” objects on another, gave each players camera a mask that only lets it see its own layer and the shared layers as well like walls and common area. And pointed each camera as its own half of the screen.

And there it was. The same room, on screen twice, showing two different things. Move an object that only lives on the Witness layer and it appears in one view and simply isn't there in the other. The sentence I’ve written in every post, two players, one world, seen two ways and stopped being something I was hoping to build towards, and became something I was looking at.

I’ll be honest about how that felt, because I’d built it up as this enormous technical wall but it wasn’t the wall I’d imagined. Most of the difficulty was in my head. The actual mechanism is almost embarrassingly simple, a few layers and two masks. Which is its own small lesson: the thing I was most afraid of was mostly fear, not difficulty.

There’s a reason this milestone matters more than “I got something on screen.” This is the load bearing wall of the whole project. If the two cameras couldn’t show two genuinely different worlds, there’d be no asymmetry, no reason to talk, no instrument, no thesis. Everything I build from here sits on top of this one thing working. Now it does. The riskiest assumption in the project just turned out to be true.

It’s greybox colored blocks, no art yet and I’ve made my peace with that. Last post I also promised a pixel art tile, but to be truthfully I went for the cameras first and left the tile, because art design can evolve as I keep on working on the project as well as its easy to for now to have smaller sprites to work with. A game that proves its point in ugly blocks is worth more than a beautiful one that never proves anything. Art is a job I can do later, or buy, or defer. The asymmetry working is the job only I can do and it’s done.

What I learned: the wall I was most scared of was made of paper. The design being ‘done’ had quietly become a way to avoid finding out whether it was true. Opening the engine didn’t just move the project forward it called my own bluff. Well next post would be when I get two people to actually solve something across the gap.