# Procedurally Generated Platformer

**URL:** <https://forum.makecode.com/t/procedurally-generated-platformer/8500>\
**Category:** Show & Tell\
**Tags:** featured-game, game\
**Created:** [June 2, 2021, 10:31pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500 "2021-06-02T22:31:46Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![LcAtonal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/lcatonal/32/16800_2.png) [@LcAtonal](https://forum.makecode.com/u/LcAtonal)\
**Post date:** [June 7, 2021, 3:47pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/21 "2021-06-07T15:47:33Z")

</div>

Yes we do.

---

<div class="post-metadata">

**Author:** ![omnisImperium](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/omnisimperium/32/2728_2.png) [@omnisImperium](https://forum.makecode.com/u/omnisImperium)\
**Post date:** [June 7, 2021, 3:50pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/22 "2021-06-07T15:50:06Z")

</div>

I agree… PETITION

---

<div class="post-metadata">

**Author:** ![ThunderDrop180](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/thunderdrop180/32/6820_2.png) [@ThunderDrop180](https://forum.makecode.com/u/ThunderDrop180)\
**Post date:** [June 7, 2021, 4:18pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/23 "2021-06-07T16:18:11Z")

</div>

i sign it

---

<div class="post-metadata">

**Author:** ![Agent\_14](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/agent_14/32/17567_2.png) [@Agent\_14](https://forum.makecode.com/u/Agent_14)\
**Post date:** [June 7, 2021, 4:18pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/24 "2021-06-07T16:18:20Z")

</div>

1 heart on Omnis’s post is signing the petition.

---

<div class="post-metadata">

**Author:** ![Primal\_Nexus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/primal_nexus/32/3540_2.png) [@Primal\_Nexus](https://forum.makecode.com/u/Primal_Nexus)\
**Post date:** [June 7, 2021, 4:18pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/25 "2021-06-07T16:18:40Z")

</div>

ADD NEW TAG (unsigned u owe me 😉 )

_Poll ([view on site](https://forum.makecode.com/t/procedurally-generated-platformer/8500/25))_

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [June 7, 2021, 4:37pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/26 "2021-06-07T16:37:39Z")

</div>

Naw not really it takes 3 seconds to create a poll 😆 /j

---

<div class="post-metadata">

**Author:** ![Primal\_Nexus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/primal_nexus/32/3540_2.png) [@Primal\_Nexus](https://forum.makecode.com/u/Primal_Nexus)\
**Post date:** [June 7, 2021, 6:24pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/27 "2021-06-07T18:24:42Z")

</div>

![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/7/76a39faf91bd85e98f19f5da9953fbf9a946c05e.png)  
hehe no u @UnsignedArduino

---

<div class="post-metadata">

**Author:** ![fd268](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/fd268/32/35044_2.png) [@fd268](https://forum.makecode.com/u/fd268)\
**Post date:** [June 10, 2021, 7:53pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/28 "2021-06-10T19:53:09Z")

</div>

58.72! 🙂

---

<div class="post-metadata">

**Author:** ![LcAtonal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/lcatonal/32/16800_2.png) [@LcAtonal](https://forum.makecode.com/u/LcAtonal)\
**Post date:** [June 17, 2021, 6:21am UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/30 "2021-06-17T06:21:22Z")

</div>

WHO VOTED NO  
Oh no what are we gonna do with the person who voted no?

---

<div class="post-metadata">

**Author:** ![Raed438](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/raed438/32/24469_2.png) [@Raed438](https://forum.makecode.com/u/Raed438)\
**Post date:** [June 17, 2021, 6:23am UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/31 "2021-06-17T06:23:58Z")

</div>

New Tiles In ArcadeMakecode

How To Get Those

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [June 17, 2021, 3:55pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/32 "2021-06-17T15:55:20Z")

</div>

~~? You should just be able to find them in the tile selector?~~

Oh nevermind it’s an extension:

> **[GitHub - riknoll/grafxkid-tiles: A MakeCode extension that collects the...](https://github.com/riknoll/grafxkid-tiles)**
>
> A MakeCode extension that collects the seasonal platformer assets drawn by Grafxkid and recolored by logic\_lab - GitHub - riknoll/grafxkid-tiles: A MakeCode extension that collects the seasonal pl...

Forum post:

> [@Platformer Tileset](https://forum.makecode.com/t/platformer-tileset/3023):
>
> Tile set that corresponds to the palette of makecode arcade. Use it for your game! This project is a remix of GrafxKid’s artwork for makecode arcade. [arcade-tileset1] [arcade-tileset2] [arcade-tileset3] [arcade-tileset4] [arcade-tileset5] [arcade-tileset6]

---

<div class="post-metadata">

**Author:** ![LcAtonal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/lcatonal/32/16800_2.png) [@LcAtonal](https://forum.makecode.com/u/LcAtonal)\
**Post date:** [June 17, 2021, 3:57pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/33 "2021-06-17T15:57:58Z")

</div>

Well, it is an extention and I also used it before and in fact it is in the forum

---

<div class="post-metadata">

**Author:** ![Raed438](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/raed438/32/24469_2.png) [@Raed438](https://forum.makecode.com/u/Raed438)\
**Post date:** [June 27, 2021, 7:42am UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/34 "2021-06-27T07:42:50Z")

</div>

How to Test the link before editing it

---

<div class="post-metadata">

**Author:** ![Raed438](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/raed438/32/24469_2.png) [@Raed438](https://forum.makecode.com/u/Raed438)\
**Post date:** [June 27, 2021, 7:42am UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/35 "2021-06-27T07:42:58Z")

</div>

🤣 That was so funny if the newer tiles are extension

---

<div class="post-metadata">

**Author:** ![Raed438](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/raed438/32/24469_2.png) [@Raed438](https://forum.makecode.com/u/Raed438)\
**Post date:** [June 28, 2021, 4:49pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/36 "2021-06-28T16:49:11Z")

</div>

It gives me an idea, I am creating Arcade Forces Speed Battle (😀😀😀😀👍👍👍👍👍👍

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [August 5, 2021, 4:49pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/37 "2021-08-05T16:49:25Z")

</div>

Wait whaaat? How did you mask that death animation into the frame? I need to know

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 5, 2021, 8:33pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/38 "2021-08-05T20:33:14Z")

</div>

So I first define some variables:  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/f/f09909f5db5ed701dffc7f8a494049afef582477.png)  
Then in a game update loop:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/5/557553d0edea0514cc32fcb85cddf483bb3b9a21.png)  
Every `round(1000 / recording_fps)` (which works out to be 33ms) it will make a temporary image that is half the screen size (plus one for border) and draw the screen to somewhere past the very top left, so that the center ends up being in the actual image. Then it draws the border and inserts it to the list of the last 2 seconds, which is the list `recording_frames`. Then if the length of the recording is over `(2 * recording_fps)` (which works out to be 60 frames) then it removes the oldest frame so there are always 2 seconds in memory.

When you lose, it first splits up the recording into the first second and second second. I have _no_ idea why I did that lol.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/d/d34d33a651ee0080fc08ae74faf1ad0d542d7ee7.png)

Then creates the sprite that will play back the last two seconds.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/3/3b685ca0182ac56562a74700f2afed6c23b866e2.png)

Then it makes the “RIP” text: (which is just a text sprite)

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/8/8a485a5b0426a22f088b232d496ab8da37f40372.png)

Then it plays the melody, the recording, and then the actual game over:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/c/c9c77c7b8f10fc2926fc20128d842c5cf856a18e.png)

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [August 5, 2021, 8:56pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/39 "2021-08-05T20:56:12Z")

</div>

Now that is big brain

---

<div class="post-metadata">

**Author:** ![LaserFoxPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/laserfoxpro/32/4105_2.png) [@LaserFoxPro](https://forum.makecode.com/u/LaserFoxPro)\
**Post date:** [August 6, 2021, 3:32pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/40 "2021-08-06T15:32:07Z")

</div>

“its big brain time”

---

<div class="post-metadata">

**Author:** ![squidink7](https://avatars.discourse-cdn.com/v4/letter/s/ac8455/32.png) [@squidink7](https://forum.makecode.com/u/squidink7)\
**Post date:** [September 14, 2021, 5:45pm UTC](https://forum.makecode.com/t/procedurally-generated-platformer/8500/41 "2021-09-14T17:45:42Z")

</div>

Thanks for sharing! this game is really cool. I’ve been fiddling with the code for a bit and got the new version to run on my pygamer by removing the death animation, as well as experimenting by adding 4 frames of [coyote time](https://www.giantbomb.com/coyote-time/3015-9701/) to the game as I found sometimes it felt like the player would fall off a ledge even after pressing jump. My modifications can be found [here](https://makecode.com/_1bkEzbfRuWEP) if anyones interested in taking a look (I’m most comfortable in javascript so I converted the project before modifying, sorry if that makes it unreadable to some). Once again, thanks for sharing! this game is an awesome time killer when I’m in need of something to do.

[Previous page](https://forum.makecode.com/t/procedurally-generated-platformer/8500.md?page=1)

[Next page](https://forum.makecode.com/t/procedurally-generated-platformer/8500.md?page=3)
