# Mode 7 Engine

**URL:** <https://forum.makecode.com/t/mode-7-engine/44560>\
**Category:** Show & Tell\
**Tags:** graphics-and-math\
**Created:** [June 16, 2026, 4:40pm UTC](https://forum.makecode.com/t/mode-7-engine/44560 "2026-06-16T16:40:01Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 16, 2026, 4:40pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/1 "2026-06-16T16:40:01Z")

</div>

After I posted my [Desert Bus port](https://forum.makecode.com/t/desert-bus-port/44512), I thought it would be best to share my [full Mode 7 engine](https://arcade.makecode.com/S82965-39462-46925-45482) that I actually built it off of. I think I’ve optimized the engine as much as I can while keeping as many features as possible. It allows you to use any map you want as the floor, apply shaders to the rendered result, and the most important thing that makes it more unique than other Mode 7 engines: it supports height. You can add heightmaps to your flat textures to give them some extra detail and even use the shaders to enhance it further. The heightmaps don’t always look right, but if you want DOOM-esque graphics, then this is a good shot at it. The engine may lag significantly on handheld devices, but I’m not sure. I can’t seem to find my Meowbit but when I do I’ll post a performance review on it. The current demo scene is a piece of [DOOM’s E1M1](https://static.wikia.nocookie.net/doom/images/f/f8/E1M1dots.png/revision/latest?cb=20060212210740), but you can easily change it to whatever you want and even remove the heightmap if you don’t like it. Enjoy using this!

> **[Mode 7 Engine v1.0.0](https://arcade.makecode.com/S82965-39462-46925-45482)**
>
> An engine designed for flat 3D rendering, but it also supports height!

---

<div class="post-metadata">

**Author:** ![coppercode](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/coppercode/32/26022_2.png) [@coppercode](https://forum.makecode.com/u/coppercode)\
**Post date:** [June 18, 2026, 2:07am UTC](https://forum.makecode.com/t/mode-7-engine/44560/2 "2026-06-18T02:07:05Z")

</div>

dude this is EPICCCCCCC! YOOOOOOOOOOOOOOOO

---

<div class="post-metadata">

**Author:** ![TheEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/theearth/32/34579_2.png) [@TheEarth](https://forum.makecode.com/u/TheEarth)\
**Post date:** [June 18, 2026, 2:11am UTC](https://forum.makecode.com/t/mode-7-engine/44560/3 "2026-06-18T02:11:22Z")

</div>

this actually needs replies but I never finished the desert bus game thingy you made for the stream

---

<div class="post-metadata">

**Author:** ![YamJam](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/yamjam/32/29681_2.png) [@YamJam](https://forum.makecode.com/u/YamJam)\
**Post date:** [June 18, 2026, 2:19am UTC](https://forum.makecode.com/t/mode-7-engine/44560/4 "2026-06-18T02:19:15Z")

</div>

PLEASE turn this into an easy to understand extension.

---

<div class="post-metadata">

**Author:** ![KawaiiGoddess](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kawaiigoddess/32/33722_2.png) [@KawaiiGoddess](https://forum.makecode.com/u/KawaiiGoddess)\
**Post date:** [June 18, 2026, 2:22am UTC](https://forum.makecode.com/t/mode-7-engine/44560/5 "2026-06-18T02:22:51Z")

</div>

Cool! I am making something with layers!

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 18, 2026, 4:41pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/6 "2026-06-18T16:41:16Z")

</div>

Thanks! I’m hoping to make a game with it soon.

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 18, 2026, 4:41pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/7 "2026-06-18T16:41:23Z")

</div>

C’mon man it’s just eight hours lol. All jokes aside, I’m hoping to optimize it enough to run on actual hardware. Could you imagine an eight hour driving sim running on the Meowbit?

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 18, 2026, 4:41pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/8 "2026-06-18T16:41:30Z")

</div>

I haven’t looked into extension development much but I’d be willing to try making it into one. I can probably optimize it even more if I did it that way. Great suggestion!

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 18, 2026, 4:41pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/9 "2026-06-18T16:41:34Z")

</div>

I’m glad to see someone using it! What exactly are layers though?

---

<div class="post-metadata">

**Author:** ![Unique](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unique/32/32724_2.png) [@Unique](https://forum.makecode.com/u/Unique)\
**Post date:** [June 18, 2026, 4:48pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/10 "2026-06-18T16:48:57Z")

</div>

Love this, actually- really cool stuff @SmolderDev. I might try to make some further optimizations to this engine to increase performance and stuff.

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 18, 2026, 4:54pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/11 "2026-06-18T16:54:17Z")

</div>

I’m glad you like it! I’m going to try to optimize it myself too, so hopefully our efforts can be combined.

---

<div class="post-metadata">

**Author:** ![YamJam](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/yamjam/32/29681_2.png) [@YamJam](https://forum.makecode.com/u/YamJam)\
**Post date:** [June 18, 2026, 4:54pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/12 "2026-06-18T16:54:24Z")

</div>

If you did make one, my tiny brain would be so glad to make a 3D game with layers without having to ask what every single block does!

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 18, 2026, 10:17pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/13 "2026-06-18T22:17:54Z")

</div>

Considering a few people want it, I’m going to look into extension development so I can get to work on it soon.

---

<div class="post-metadata">

**Author:** ![KawaiiGoddess](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kawaiigoddess/32/33722_2.png) [@KawaiiGoddess](https://forum.makecode.com/u/KawaiiGoddess)\
**Post date:** [June 18, 2026, 10:24pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/14 "2026-06-18T22:24:21Z")

</div>

Um… layers like for example pretend you are painting a house. You paint it pink and decide it is too light so then you go paint the exact area again. That is layer 2. Then again. 3, 4, 5…

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 19, 2026, 2:21am UTC](https://forum.makecode.com/t/mode-7-engine/44560/15 "2026-06-19T02:21:39Z")

</div>

I know what the main definition is lol. I just meant what do you mean by layers in terms of makecode arcade?

---

<div class="post-metadata">

**Author:** ![Unique](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unique/32/32724_2.png) [@Unique](https://forum.makecode.com/u/Unique)\
**Post date:** [June 19, 2026, 9:45pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/16 "2026-06-19T21:45:24Z")

</div>

@SmolderDev I’m in too deep lmao.

* * *

 ![Screenshot 2026-06-19 at 11.48.41 AM](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/f/df5ada5976126e6d7673ded2814961d03148c78c.png)

---

<div class="post-metadata">

**Author:** ![KawaiiGoddess](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kawaiigoddess/32/33722_2.png) [@KawaiiGoddess](https://forum.makecode.com/u/KawaiiGoddess)\
**Post date:** [June 19, 2026, 9:54pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/17 "2026-06-19T21:54:43Z")

</div>

Um… go here: [My Games :0](https://forum.makecode.com/t/vickys-3d-games/44561)

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 19, 2026, 10:43pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/18 "2026-06-19T22:43:20Z")

</div>

The textures look AWESOME! Was it just dividing up the lines into multiple pieces? This looks epic!

---

<div class="post-metadata">

**Author:** ![SmolderDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/smolderdev/32/33112_2.png) [@SmolderDev](https://forum.makecode.com/u/SmolderDev)\
**Post date:** [June 19, 2026, 10:43pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/19 "2026-06-19T22:43:31Z")

</div>

Oh you meant those kinds! Doing 3D that way is cool to get a bit more performance. In certain kinds of games it looks really nice too!

---

<div class="post-metadata">

**Author:** ![Brohann](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/brohann/32/17380_2.png) [@Brohann](https://forum.makecode.com/u/Brohann)\
**Post date:** [June 19, 2026, 11:26pm UTC](https://forum.makecode.com/t/mode-7-engine/44560/20 "2026-06-19T23:26:41Z")

</div>

here is my doom e1m1. the link is broken so you have to load it in

 ![arcade-d33m (1)](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/1/317eabf357491cf7191bb2b732be30d3effeed6e.png)

[Next page](https://forum.makecode.com/t/mode-7-engine/44560.md?page=2)
