Production Notes - Super Mafia Land

IMG_4291

I’ve made a lot of games.  Some of them are done in a few hours or a few months, but none has taken as long as our latest Super Mafia Land release.  We took our love and dedication to new heights on this one and somehow managed to carry out the goal to make this game a reality.  So while our scores may have been less than perfect our goals and ambitions on this game were nonetheless carried out: we really wanted to make a game that paid homage to (the best game ever made) Super Mario Bros 2.

We worked on this game for over eight months.  Granted, we weren’t working on it full time but we loved this game to death.  Both Nick (BoMToons) and myself are huge fans of Super Mario Bros 2.  In fact we both share the opinion that it’s one of the most unique and incredibly fun games we have ever played in our lives.  But to see so many online message boards and people filled with hatred against the game SMB2 seemed ludicrous to us. It’s not a traditional Mario game but it is one that really does a lot of amazing things.  After a bit of talking and reminiscing about how great this game was we decided to start on not a clone, but a game that pays homage to what we think (or at least what I think) is the greatest game ever made.  We wanted to show our love as only game developers know possible.

In May 2008 we started developing prototypes and initial artwork for the game.  I built a tile engine that got it’s workout in a few titles, including Maverick and Achievement Unlocked.  These tile-based games helped work out the kinks on the landscape hit detection and really made the tile engine kick into full gear.  The lovely thing about the tile engine is that it can generate a really nice level without being to strained on the processing.  It requires no hitTests, loops, arrays, or anything like that.  It reads in vectors and tile locations to determine collision and it worked well.

By then we also started to see the amazing artwork by Nick.  We never wanted to copy and paste the original sprite artwork like many other Flash Mario clones because it didn’t seem quite in-tune with our intentions to rip original artwork and drag it into our creation.  We redrew everything, reanimated everything, and even developed new characters with their own stats.  

prod3

We weren’t out to reap havoc in creating a Flash version of Super Mario Bros 2 but an entirely different setting and feel.  Sure, you can pickup enemies and chuck them but we wanted to add to make interesting things with that.  All the levels are brand new and designed and drawn by Nick.  Doors lead to special areas and interesting places and we really wanted the player to explore their surrounding.  Some enemies are similar to SMB2 but we really wanted to add our own flair and even our own unique end boss.  New music and characters were a start, and even our own way of making characters interact on the screen were important.

Character artwork is worth looking at all its own.  You probably didn’t realize this but the animation for a character in this game was 13 sprites per character per size, meaning 78 animated sprites just for characters were needed.  On top of that all the enemies and active parts of the stage were animated as well, such as the turnip plants blowing around and the ladybugs climbing the vines.

We settled for three characters, Guiseppe (a balanced character), Bruno (a buff but slow character), and Maria (a princess-like character with speed and less muscle).  The characters were developed as Italian gangster characters.

The levels are comprised of four levels of artwork and coding.

  • The bottom BG layer facilitates all the parallaxing in the game (background moves slower than foreground to give that illusion of depth.
  • The foreground layer facilitates all the artwork for the level, such as clouds, brick, or grass.
  • The tiles/script layer manages all the important collision and action data.  Tiles are placed across the level to indicate solid vs. climbable, etc.
  • The sprite layer works with all the characters and their movement, as well as any enemies or items on-stage.

By the time the levels were done and in place we realized that we had stretched ourselves and Flash a bit.  The game had levels reaching 18,000 pixels long and could barely be worked on in the Flash environment.  Numerous crashes and failures in the game engine due to extremities forced us to cutdown on initial level size and cut everything into fragmented level sections.  A beta of the initial engine tested by a few testers showed incredibly low framerates so we had to make those changes.

At one point the computer even couldn’t handle rendering the levels.  We upgraded the RAM in the system and started dumping parts of the files into test files so that we didn’t have to wait 5-10 seconds after each change we made to the file.

In response we spent nearly 3 weeks optimizing the engine for good speeds in the browser.  The game actually runs fairly smoothly in the browser although for some it may run a bit slow due to graphic complexity and such.

prod2

The complexities of coding a game like this are beyond troubling.  The interaction between character, enemy, and environment is far pass what many would recognize.  For example, how does the game react to a player carrying an enemy while riding a falling enemy while trying to access a door?  For this alone I can say that whoever programmed SMB2/Doki Doki Panic deserves many, many pats on the back.  These sorts of issues extend far and wide into the game and to nail all the issues and trouble spots is rough testing then even rougher debugging.

At points this game didn’t even look like it would ever see release.  Glitches in the Flash program caused the game to not function correctly, and then inadequate processing power by the computer drove the game to a halt.  Multiple bug issues arose and fell again as more features were added and then debugged.  The game chugged on some machines and ran fluid on others for no really good reason.  We were stumped for days at some points but managed to get through all the trouble spots.

By the end of the game we had all three levels done and the various enemies and obstacles in place.  It really was crunch time in the past few weeks getting this game ready to go.  I had sleepless nights and 16-hour coding sprees to get this game on its feet and ready for the world to see.  We worked hard.  Very hard.

We launched the game and got less than impressive results in user feedback, and while this was troubling for us there were many questions and points that were being raised that we never expected:

  • Even though we could never ever top SMB2, our game is compared to SMB2 rather than other Flash games.  Because this game is automatically received as a Mario game many people forget its even a Flash game and just compare it to every Mario game they’ve ever played.
  • This game is going to be compared to traditional Mario games even though SMB2 and SML are nothing close to those games.  A good portion of our reviews talk about Super Mario World.
  • Some decided to not even talk about our game and rather talk about SMB2, as if it was a conversation starter.

So while we might not have a perfect score, we did have an amazing experience learning how difficult it is to make a game like this.  As Nick said, “It’s a labour of love” and I couldn’t describe it any other way.  We love SMB2 more than many and we’ll stand up for it even when the Mario purists come to bite.  We could have paid homage to Super Mario World but our hearts go out to a true black sheep in the series and we’ll continue to praise it as one of our favourite and most inspiring games of all time.

13 Comments so far

  1. BoMToons on February 17th, 2009

    But mario is supposed to be able to jump on enemies to kill them. Your game must be bugged out since you can ride on top of enemies without hurting you or them.

  2. TharosTheDragon on February 17th, 2009

    John, that truly was a heartfelt blog post. I’m really moved. Excellent game, by the way.

  3. Tesh on February 17th, 2009

    SMB2 is an awesome game. This is a great little sendup/homage. The only trouble I have is with making the up key be the jump key; I expected a separate jump key for more precise control. (Then again, I’ve never liked using the up key for jump, it doesn’t feel right when I’m trying to contort my fingers on the keyboard.)

  4. Yllier on February 17th, 2009

    This is indeed a great post here :D. I want to say though, as a left handed gamer, this game was very frustrating to play. No, this isn’t the first game to do this, but when your almost forced to use your right hand on the arrow keys because your left hand is busy with the A key. It makes it very frustrating at times. Imagine playing a console shooter and switching the uses of each analog stick(Left one to look and right one to move). It’s almost like that, just not quite as bad. Other then that, I have fun in the 5 minutes it occupied my short attention.

  5. andrew on February 17th, 2009

    Very nice game. Flash gamers can definitely be fickle!

    Speed issues: In the future you may want to consider something which dynamically renders the tiles to a Bitmap, only drawing an area slightly larger than the “camera” can see. This would let you optimize more, instead of having Flash try to sort out thousands of DisplayObject/Sprite/MovieClip/etc instances. Even with varying size objects, you could use 2D bounding boxes to intersect them with the visible area and create a per-frame draw list. Then you could assign each a z-index, quickly sort them, etc. Then for the frames where new background titles aren’t coming into view, you’re just moving the merged background bitmap slightly, which is super-fast.

  6. Greg on February 17th, 2009

    Awesome, i love seeing people do this, as a person new to game dev ( ive done plenty of c# in my time ) id be really keen to see blogs on the basics of creating games like this :) algorithm, how to get characters to jump, collision detection etc.

  7. elf_boy on February 18th, 2009

    Great game. However, something I discovered early is that if you pick up a bomb as it explodes, you end up carrying nothing. I don’t know if this has been spotted, just wanted to point it out.

  8. Sailing10 on February 19th, 2009

    SMB2 is really incredible. I love those games and have the entire series: SMB1 SMB2 SMB3 etc. And I beat every one ( with the secret extras and levels ) but I agree SMB2 might be the best. Nice job at a tribute to it. Any Mario-Style game is awesome, but I want to see a GOOD clone of SSBB on Armor Games. The ones here are ok, but to be anywhere close to as good as SSBB a clone of it has to be very good as well.

  9. Robert on February 19th, 2009

    @andrew

    Game doesn’t use AS3. So that would be a start. ;)

  10. Squize on February 19th, 2009

    Great post.

    Just to touch on the optimisation / speed issues quickly, vectors are evil man, I’m really surprised you used them ( And I’ve got such a dislike for quality buttons. It’s like saying “Click me to see the game really ugly looking”. There’s far too much love in those assets to do that to them ).

    Ok, I’m guessing you’ve been beaten with enough sticks over this, so that’s the end of my nit picking :) What I mainly wanted to say was I’m so surprised the average feedback I’ve seen for this game. It’s not perfect, but mate, it’s better than 95% of everything else out there.
    Is it ’cause it’s too close to the original, so it’s being judged next to that as opposed to being judged as a Flash game in it’s own right, or is it because it’s “too big” ?
    That by gauging it at a certain level, with a high degree of polish, you’ve in effect raised expectations beyond what the game could match.

    Who knows.

    Personally speaking ( And as a developer too ) I’d much rather see these bigger Flash titles, which is the best way to push the platform forward, than to see another mouse avoider or “Escape the…” game.
    If when people push things they get a luke warm response, it’s kinda hard to keep that motivation and not just slip back into making the low cost / low risk games, which just isn’t good for anyone.

    If at the end of the day you guys get a buzz from playing it, and are proud of it, that’s all that matters. Other people liking your games is always just a pleasant bonus.

  11. DragonSoul on February 20th, 2009

    What a post! I’m glad you took the challenge… The game is pretty smooth and it has a lot of style. I really love the music and art!

    I think I’m most impressed by your ability to convey all the work and love that went into it however. =)

  12. mario games on February 24th, 2009

    what a nice blog.nice pitures and writings

  13. Finch on March 1st, 2009

    Wow. Awesome blog post. Your game was awesomely innovative and fun. Long live SMB2!

Leave a reply