Note: this is n̲o̲t̲ a full game! This is a demo of a pen platformer engine I made a little while ago. Only 2 levels for now. Arrow keys to move... but you probably already know that. I'm most likely not going to add mobile controls unless this gains a lot of traction or I decide to expand it into a full game. Inspired by @123768631. All code by me. = = = = = = = = = = = = = = = = = = = = = = = = = = = A few developer notes: A long time ago, I made a similar pen pixel platformer engine that ran on the same principle: instead of redrawing the entire screen every frame (which would severely tank the fps), the script draws the level once and redraws a small part of it as the player moves to prevent the player from leaving an ugly trail. However, my redrawing method in that project was extremely crude, didn't fully cover over the trail, and ultimately restricted what I could really do with the concept. So almost two years after making that project, I finally decided to revisit the idea and improve my design, and now here we are. This script draws the entire level once when it gets loaded in. As the player moves, it then redraws a 3x3 area of tiles centered on the player's position in the previous frame to completely cover over the "copy" of the player left at the old location. The redrawing can cause a few visual oddities, like some tiles flickering or becoming uneven, but for the most part it looks pretty smooth, a lot smoother than my previous attempt. I could make a more detailed player that isn't a monochrome circle, but out of laziness I probably won't. And for once, my wall detection isn't glitchy! I'm embarrassed to admit this, but it took me over three years to figure out what was wrong with my earlier scripts. All I had to do was shift the order of a few blocks so that the collision checks in the x and y directions were done immediately after the player moved in those respective directions. This completely eliminated the need for all the weird ways I tried to differentiate between horizontal and vertical movement... I guess I'm a bit slow haha Feel free to use this engine; just please make sure you credit me (@-ShadowOfTheFuture-) Apologies in advance if my code is somewhat convoluted. I tried to make it more readable than some of my previous projects, but it may still be a bit hard to follow. If you're not sure what something does, please ask! I'll try my best to explain.