In my game, the world view is 1D, all by a filter I made. But I've got no clue how to do shaders, so I made it by hand. The game renders an offscreen scene, and puts it into a render texture. I added a line, and then set up a gradient to set the colour of the line. Basically, the line would read what colour was drawn on the offscreen scene, and put that colour onto a small segment of the line. This would've worked... If Unity's gradient system supported more than 8 colours. So instead, I had to rework that system and generate a texture, that had to be mapped onto the line, instead of the super simple gradients. This took a long freakin long time to set up, and there was this whole issue with the created textures causing a memory leak that crashed Unity at least five times. I was wondering why this was, soI looked into the profiler, and apparently there was 100 textures being added each second, which unsurprisingly isn't healthy. None of these were being destroyed, so Unity was gladly storing thousands of textures, equating to gigabytes of memory, simply because I might be using them again (but clearly wasn't).
Oh, but that's not all; 1D had SO MANY shenanigans that I've got to talk about. Like for example, there are these boxes you can push around. Issue was that I couldn't use Unity's 2D colliders, because of how the world functions. The world is actually 2D, and you've got a 1D perception of it. Issue was that 2D colliders would collide with things that you couldn't see, any walls or whatever else you passed, which did not feel smooth. So I had to make my own 1D collision system that only handles collisions with the parts you can see, and by golly that was janky.
Now then, last one; mirrors. These posed the biggest pain for me, with EIGHT HOURS of headbanging, trying to figure out what was happening. I got into that terrible habit of not changing the code and hoping it would somehow perform differently. So mirrors could bend your 1D view, and are an important part of some of the puzzles in the game, but my gosh did they eat me up. I was able to get the view bouncing no issue, but instead it was another feature that made mirrors painful; the fact that you can only travel along your line of sight. If you look into a mirror and move into it, you get reflected so that you keep moving along your line of sight, but by golly the game hat make some big mental leaps. To be completely honest, I still don't know why this was such a pain, but I ended up recoding the entire game. That's right, 12 hours in, I was trashing my game, and restarting. It was just one of those issues that seemed nonsensical, I printed out every relevant value and nothing explained the behaviour. Restarting miraculously worked out, but remember those pushable boxes that I talked about earlier? Well what do you think happens when you push a box into the mirror? Hint, the game hated it, so I told the game 'if a box touches a mirror, then figure out a reasonable spot to take it and just teleport it there'. In the end, I couldn't even think of a level idea that contained both a box and mirror.
I got the game working but still, after all that, Unity still hates me. I must have somewhere used a function not supported by WebGL, since this build simply doesn't work. So now everyone's gotta waste time downloading, which we all know cuts a games view count in half. Anyways, the game somehow was completed, and surpassed all of my expectations, so please check it out, it'd be nice to know that the pain was worth it. I even had some time to do voice acting, and I could ramble on about the strange things I did to record the wacky voices, but I've talked long enough. https://justcamh.itch.io/tunnel-view