World 1-1 Remastered Post Mortem


We were tasked individually with re-creating World 1-1 from Super Mario Bros. that takes inspiration from a given artist within about a week (9 days total). I was given Grandma Moses who was a "renowned American folk artist". You can read more about her here...

What went right
  • Reproducing the Mechanics of Mario
    While my version does feel extremely floaty compared to the original since Mario runs a lot faster and jumps a bit higher, I did manage to recreate the platforming physics and item boxes that spawn coins.

Mario's collision is really smooth and solid, there is only once instance of it not being the case and that's when you try and jump while hugging a three/four high pipe. Since the collision box for them is ever so slightly larger.

Goomba collision is there and simply fades the screen to black and restarts the level when Mario happens to collide with any of them, instead of bouncing Mario up, have him face the screen, and fall down past the level.

Following a tutorial on 2D platforming collisions for GameMaker Studio, I quickly learnt about the wonder's of place_meeting().

if(place_meeting(x + global.hsp, y, obj_block))  
    while(!place_meeting(x + sign(global.hsp), y, obj_block)) x += sign(global.hsp);
    global.hsp = 0;

The above code stops the player from moving left or right if the object obj_block is there. And the vertical collision is quite similar, except just swapping x for y.

if(place_meeting(x, y + global.vsp, obj_block))  
    while(!place_meeting(x, y + sign(global.vsp), obj_block)) y += sign(global.vsp);
    global.vsp = 0;
  • Level layout & length
    It took me a solid half hour of individually counting all the tiles in the world to figure out the length of it, adding it together and then transplanting that over to GameMaker's level editor.

I opened the world in GIMP, chose the brush tool and just started clicking on every tile while counting in my head. Then writing the number on the blocks in the air to figure out their spacing between each other and the level itself. It was a nightmare consisting of constant recounting...

I opted to use GameMaker Studio purely for the reason of it's strengths with 2D games. I used GameMaker 5 previous to this version so I was used to coding it through drag and dropping various components on events to make the game, well... function.
This time it was practically code driven which allowed more headroom and tweaking from my position

Screenshot of GameMaker Studio's level grid layout system. You select the object you want to place and you can line it up really accurately with the grid enabled.

What went wrong
  • The art
    I'm really not too happy with the art I made to reflect the artist. Originally I took one painting Grandma Moses did which was Snowy Birch Tree, and tried to make my own version of it, making it colourful and all over the place with colours on colours. Instead of slowly mixing them in like the original.

Probably my worst work yet...

I decided to take a different approach since by the time I got around to the art style, I only had a day or two left before it was time for another playtest then submission. What I did was take the most presenting colours from original painting and re-colour all the assets to Super Mario Bros.. Which kinda turned out ok, but could have been significantly better (and reflect more of the brief) if I ended up using my own versions of the artwork instead of re-colouring.


While I think I did represent Grandma Moses in World 1-1. I could have done a much better job at doing so, mainly in the art department. So it's something I'm going to have to spend more time on so I can produce something that looks like what it should be.

The Future

In the future, I would like to plan for similar projects to this, where I should focus on the main focal point of the project, it just so happened that this one was the art style.
More project awareness and preparation will be done in the future so this problem can be somewhat avoided or more reduced than having it on this kind of scale...

Link to the repo on GitHub

Tom Lynn

Read more posts by this author.