Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

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! ^^

(+1)

ahhthankyou⁝⁛ that is super cool to learn about (^▽^) ♡ i hope to get into using shaders in the future so your explanation is super helpful ⟪especially the formula you gaves to isolate every other pixel✦ i wouldnt have thought of that-・ᴗ・-⟫