U3D Engine - Walls, Floors, Pillars, Textures, and More!

U3D: a 3D voxel heightmap engine for MakeCode Arcade



U3D is a raycasting engine that renders a 3D world from a heightmap and colormap image pair, with tilemap-based textured walls on top. It runs as an extension.

What it does:

  • Heightmap terrain with vertical scale and smooth camera stepping
  • DDA raycaster with perspective-correct wall texturing, distance shading, and a lava/floor texture layer
  • Billboard sprites with bob, velocity, bounce, scale, animations, and pathfinding to the player
  • Per-tile height overrides at runtime: lets you animate doors, moving floors, collapsing platforms without touching the tilemap
  • Height-based collision so those dynamic tiles actually block the player
  • spinAround for orbit-cam cutscenes
  • Block extension with full visual block support

This has been a long build. There were some genuinely tricky bugs along the way (perspective metric mismatch causing wall shear, texture clamp-stretch at close range, literally sooooo many others) that took real work to track down. Posting this partly because I think other people might find the heightmap+raycaster combination interesting, and partly to get feedback before I keep going.

Runs at 40-50+ FPS in the MakeCode simulator on my iMac 2019 (Intel i5, AMD Radeon 570X). Physical hardware performance will vary, though the engine has gone through several rounds of optimization specifically with hardware constraints in mind.

Demo Project - Boiler Lab:



Extension Link (v0.4.0+):



Sources

Raycasting 3D render -- Blocks Edition
Mode 7 Engine

30 Likes

YES! YOU MADE IT AN EXTENSION! Now I gotta finish mine and make a game with both.

7 Likes

why does that look so cool :sob:

5 Likes

Are we sure we are using the same game engine? Sure doesn’t feel like it…

5 Likes

Unique you are the goat @UnsignedArduino get this on awesome arcade right this instant

10 Likes

DROP EVERYTHING IM DOING THIS TODAY!

8 Likes

wow how long did it take to make?

7 Likes

YES! now we can make DOOM.

9 Likes

Is this it? The 3D Renaissance? It has come…

8 Likes

Might be releasing an AMAZING demo game for this soon so stay tuned. But this is fully usable right now so definitely give U3D a shot.

13 Likes

YES! Just the kind of response I was hoping for.

Just keep in mind that updates will be released today and tomorrow for the extension. As of now, the latest release is v0.4.6. The next few updates will expose some functionality from the actual engine (sky color, FOV, player speed, etc.)

4 Likes

Genuinely. Nice that the raycasting goat sealed the deal :wink:

4 Likes

I’ve had bits and pieces of projects over the years, experimenting with allot of the components required to make an engine like this. So when I saw @SmolderDev 's code for heightmapping, I got really excited, since it’s a great way to add a floor and depth, which really transforms the normal Wolfenstein-esque raycaster.

4 Likes

No YOU’RE the goat Astro.

4 Likes

Just reminding yall it’s finally time to make a fully 3D Minecraft in makecode arcade? :wink:

3 Likes

You deserve this I… I.. speachless

ok so Nice check this out Breaking Makecode! [Contest] [Badges]

but

Congratulations You Have Now Won A

Screenshot 2026-03-07 11.34.03 AM

1st Place Badge in the Holy Cow Section

Note: more than one person can have the same badge in the same section its more like 1st place is just a ranking like 100% or 100 points

3 Likes

please make this an actual game! movement is buggy, but this is just insane

2 Likes

Okay, I tested it a little yesterday, and here are my thoughts:

  • First and most important: pretty cool!
  • It would be nice if there was a way to change the sky color, unless I’m missing something.
  • Could you not use another tilemap to put floor textures on every tile?
  • The Distance Shading turns all of the floors 1 color down, which makes it hard to have the color you want.
  • The Distance Shading might benefit from being able to adjust it, like changing the distance it takes to shade.
  • I don’t know how this could possibly be fixed, but taking the height map and color map and then attempting to tile the right spots in the tilemap is really hard, expecially on bigger maps and more natural looking areas.
2 Likes

So cool!! Gonna try this out for my backrooms game

4 Likes

You can see billboards through walls. Is that supposed to happen?

3 Likes