# 🏎️ Floorit - by Octodemon

**URL:** <https://forum.makecode.com/t/floorit-by-octodemon/44045>\
**Category:** Arcade\
**Tags:** game, art\
**Created:** [May 18, 2026, 5:36am UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045 "2026-05-18T05:36:27Z")\
**Posts on this page:** 11\
**Page:** 4

<div class="post-metadata">

**Author:** ![system\_hopper](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/system_hopper/32/32345_2.png) [@system\_hopper](https://forum.makecode.com/u/system_hopper)\
**Post date:** [May 29, 2026, 1:59am UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/63 "2026-05-29T01:59:18Z")

</div>

dude, genuinely I don’t even know how you did this. suggestion: BMW M3

---

<div class="post-metadata">

**Author:** ![Octodemon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/octodemon/32/15417_2.png) [@Octodemon](https://forum.makecode.com/u/Octodemon)\
**Post date:** [May 29, 2026, 5:00pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/64 "2026-05-29T17:00:11Z")

</div>

Believe it or not it’s simpler than it looks 🙃  
If I ever update this game again, I’ll definitely consider the M3!

---

<div class="post-metadata">

**Author:** ![OrigamiArtist](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/origamiartist/32/33299_2.png) [@OrigamiArtist](https://forum.makecode.com/u/OrigamiArtist)\
**Post date:** [May 29, 2026, 10:27pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/65 "2026-05-29T22:27:59Z")

</div>

I’m going to give this (based of @Sarge’s review templates) a game review!

-Gameplay-  
 Grass growing is more exciting  
 Boring  
 Middle  
 Very Exciting  
✅ Amazing  
-Graphics-  
 Downright bad  
 Not very good  
 A lot could be improved  
 Not that many changes, still very good!  
✅ Luke level  
-Performance-  
 3,000 + computer crashes  
 Glitches  
 Okay, still some bugs  
✅ Doesn’t crash, but still glitches  
 Flawless

-Overall rating-  
5/5 - The gameplay is awesome and great to play! Nice job!

~OrigamiArtist 🎨

---

<div class="post-metadata">

**Author:** ![RoboVacDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/robovacdev/32/29619_2.png) [@RoboVacDev](https://forum.makecode.com/u/RoboVacDev)\
**Post date:** [August 12, 2026, 2:17am UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/66 "2026-08-12T02:17:14Z")

</div>

Nice game @Octodemon! How did you make it so that when you enter the game a second tine the intro doesn’t play again.  
I have tried this so many times and still failed! Lol

---

<div class="post-metadata">

**Author:** ![Octodemon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/octodemon/32/15417_2.png) [@Octodemon](https://forum.makecode.com/u/Octodemon)\
**Post date:** [August 12, 2026, 5:42pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/67 "2026-08-12T17:42:13Z")

</div>

It’s actually really simple! All I did was I installed the settings extension and checked if a setting I named “game started” exists. If not the intro plays. At the end of the intro I create the “game started” setting so every time the project is restarted the intro doesn’t play again.  
Hope that helps!

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [August 12, 2026, 10:11pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/68 "2026-08-12T22:11:51Z")

</div>

The settings extension!

> **[One time intro](https://arcade.makecode.com/S14910-72023-47744-06977)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

press B to see it again.

---

<div class="post-metadata">

**Author:** ![TheGooberEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/thegooberearth/32/36693_2.png) [@TheGooberEarth](https://forum.makecode.com/u/TheGooberEarth)\
**Post date:** [August 12, 2026, 10:12pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/69 "2026-08-12T22:12:06Z")

</div>

It needs to use the settings extension I have an example right here

> **[gv](https://arcade.makecode.com/33068-90054-66117-73891)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

---

<div class="post-metadata">

**Author:** ![RoboVacDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/robovacdev/32/29619_2.png) [@RoboVacDev](https://forum.makecode.com/u/RoboVacDev)\
**Post date:** [August 12, 2026, 10:22pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/70 "2026-08-12T22:22:28Z")

</div>

Thanks so much for the answer. I got what I did wrong now.  
Thx!

---

<div class="post-metadata">

**Author:** ![RizeUpDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/rizeupdev/32/36816_2.png) [@RizeUpDev](https://forum.makecode.com/u/RizeUpDev)\
**Post date:** [September 6, 2026, 7:04pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/71 "2026-09-06T19:04:52Z")

</div>

Hey @Octodemon, you said that you were going to make a post about the racing AI used for this game. Could you release it soon?

---

<div class="post-metadata">

**Author:** ![Octodemon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/octodemon/32/15417_2.png) [@Octodemon](https://forum.makecode.com/u/Octodemon)\
**Post date:** [September 6, 2026, 11:47pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/72 "2026-09-06T23:47:02Z")

</div>

Sure! I’ve just been busy is all.

---

<div class="post-metadata">

**Author:** ![Octodemon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/octodemon/32/15417_2.png) [@Octodemon](https://forum.makecode.com/u/Octodemon)\
**Post date:** [September 7, 2026, 7:54pm UTC](https://forum.makecode.com/t/floorit-by-octodemon/44045/73 "2026-09-07T19:54:44Z")

</div>

Hey guys! As I’ve said a while ago, I was eventually going to release a few posts on how I made certain things in Floorit. So today I’ll be talking about how I made Floorit’s AI.

Floorit’s AI is not as complex as some might think and honestly quite simple! So below I’ll being going through the steps I made to code it!

# Step 1 : Teaching the AI the Track

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/0/30025b9bf912a2fc72add51d99cff6e1badc1e92.png)  
What I have in red is the angle I’m facing and what I have in blue is my car’s position. Now what I would do with these values is I would record them as I go along the track and then give the AI the same values so it would copy my movements.  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/2/6/26abf1f99c7bd05379ffb20b27b48061e87dbdfb.png)  
As you can see in this example here in the red circle, the Ai car is moving to the position I recorded, and in the blue circle it’s turning to the direction I recorded. In the green circle is the speed at which the car’s AI does these movements. (So for higher car classes the higher the speed is)  
Also, if you were wondering I added the random number blocks to the original position I recorded for variation of the AI so they don’t follow my path exactly and it looks like there is variation on each lap they complete.  
All I did was repeat this process until I got around the full track!

# Step 2: Pit Lanes

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/1/a/1ac9ce8af91191dbe5b5969d1068209a2d9e8161.png)  
Pit lanes were also fairly easy to code too! All I had to do is apply the same principles talked about in Step 1 but instead of the car going the normal route on the track, they instead go into the pit lane and pause for a bit. What decides this is the randomnumber variable at the top!  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/e/2/e2db595c13c9f92bb3c5840599eb980bdacf8620.png)  
In what I circled green are the player’s functions, so we won’t have to worry about those.  
In the red circle on the top that determines which pit each car enters (each car is assigned a number and they go to that respective pit lane)  
And on the other red circle at the bottom, it just determines how long the AI stays in the pit before exiting!  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/f/a/fab99c46ee056d44ba97bc8b6abe4a9bd564db5e.png)

# Step 3: Repeating the Track

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/4/7/47252e8f9883467c131d921317ab5d196df4040b.png)  
This is probably the simplest step out of all of them so far! Each sprite has a number of laps recorded onto them with the sprite data extension and when they meet that requirement they stop completely. If they haven’t, the code from steps 1 and 2 play again and the cycle is repeated.

**Extensions used:**

- Sprite Utils
- Sprite FX
- Sprite Data
- Sprite Events
- Timer

# Conclusion

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/b/0/b0fed1a6bef149bea25dfb3a21385087da3d62dc.png)  
That’s it from me! If you have any more questions on how I made something or how I coded something please feel free to ask! For now, look out for my new spinoff for Floorit, Floorit : The Wanted!

-Octodemon 🐙

[Previous page](https://forum.makecode.com/t/floorit-by-octodemon/44045.md?page=3)
