Hi! Thank you so much!
Well spotted! The magic is a shader, the game is all in 3D, but with player movement restricted to a grid, and player turning managed in 90* increments.
The engine I've built this with is Godot, specifically the latest beta of it. Godot really helped as I was able to make "wall", "floor" "ceiling" and "arch" tiles completely in the editor, each of the cubes below is literally just a cube from the editor with a flat material on it. The arch is using Godot 3.1's CSG (Constructive Solid Geometry), which was a grey thin flat cube with a cylinder cut out, as shown with the below wireframe.
Behind the scenes the world looks like this! ^ (Also pictured an arch that looks awesome with the shader but I haven't added to the dungeon generation script yet)
What I did was get the camera's (player's eyes) view at 84 by 48 pixels, and then run it through a modified edge detection shader, with some other bits I added to give anything between a certain darkness range that dithering you see from the ceiling. Because it dithers every second pixel on a row thats why the dithering sort of "stays in place" and helps really sell that retro look C:
(actually it's "(X+Y) % 2 > 0" which means X + Y, is the remainder after dividing by two greater than zero, aka every second pixel, but alternating every second row, with X being pixels from the top left across, and Y being pixels from the top left down)
The shader also crushes it down to the two shades of green needed for the Game Jam. I also used world settings to implement distance "fog", but it's a super sharp cutoff which is why the far away hallways fade into blackness.
I'm also working on getting the basic combat done I had to cut out to make it in time, it should be done tonight or tomorrow night.
And thank you again so much! ^^