Author Archive

Generating Terrain

terraingeneration

On the cusp of moving into the uber-geek status, Joey and I programmed a terrain generation feature in Actionscript 3 yesterday.  It’s for a new defense/offense style game we’re cooking up.  The game will have pregenerated levels however we really wanted to do an unlimited mode for the die-hard/got-too-much-time crowd who really wants to have some extended fun.

After a brief read of the Paul Martz article on how he generates terrain, we decided that fractal terrain is exactly what we needed especially for how we want to place objects on the terrain.  In essence, the article talks about how you take a line segment and keep cutting it in half and pushing up or down.  This way the terrain starts to form peaks and valleys.

We also experimented with a method that draws lines at random angles across the screen.  In the end we found this method draws really peculiar shapes and that even when you start the weight the line towards the center that it starts looking like a sine wave.

Overall it looks great, especially when generated 20 times like seen above.  But we’ll only be generating once so ideally we’ll need to polish up the mountains being made for the final release.

Upcoming blog post will talk about our game and what we’re planning, stay tuned!  It’s a smaller project so it’ll be a great little diversion from the massive projects.

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.

Rapid Game Development

flying

There is something to be said about the game development process.  It can be a long and difficult rollercoaster ride of bugs, features, and deadlines.  But sometimes we say to ourselves, “what can we do in X days” and we push ourselves to see what we can do.  Rapid game development is a fun challenge we have here at Armor Games and it’s a great way to really see what our developers can do.

While most games take weeks to months we sometimes set a 1-5 day challenge.  In this time we explore new concepts or generate great ideas and put them to the simplest use possible.  Like the concept of the Global Game Jam developers are given a topic and a certain amount of days to go at it.  It’s an invigorating, fresh way to game development.

For example, one my latest games, Run Elephant Run (pictured above), was a 2-day challenge.  The challenge was to create a game that involved a minor storyline and papparazzi, and somehow it came together in less than 16 hours.

scribb

Another game with an incredibly short development cycle was Scribble!  This game was developed in my dorm room at about 8pm at night and finished later that morning. It was less than a day in production!

The fun part about all this is that if the games work out we can develop them into possibly bigger sequels.  We love making games and pushing ourselves so these time crunches are a lot of fun.  Stressful towards the end, but for only a few days work it’s amazing how fast the brain moves to come up with simple game ideas.  Something about tiny gameplay ideas just make them flow through the development process.

We’re going to do another in-house game challenge sometime this year.  Stay tuned!

Run Elephant Run Releases

elephantrun2

Although it was only in production for 48 hours, Run Elephant Run was somehow not involved with the 48-hour game jam, but I am going to say it was “in-spirit.”   I started on Thursday morning and wrapped up Friday night before leaving on a small mini-vacation to the coast.

This game is super silly and super fun from a developer’s perspective.  With a focus in storytelling and changing environments this was not about special codes or incredible game engines.  This was a small game telling a silly little story through simple graphics and art style.  I had a good chance to play with Photoshop and other art programs  In spirit with Elephant Rave and Achievement Unlocked, the elephant comes back for a round three title with mission in-hand once more.

Anyway, go play my new game and enjoy my first 2009 contribution :).  Also go check out Tasslefoot’s walkthrough, who once again makes a video before I even have time to put the game on another site.

In other news, I’m going back to the super-long-taking-forever platformer after this.  We’ve optimized this one to run MUCH better than it was before so I’m excited to get back into gear.

-J

Lag: Beta Testing Thanks

Yesterday we had an incredibly fast beta test for the platformer I’m working on.

Basically what is going on is the game levels are huge.  These levels reach about 12,000 pixels in length and another 8,000 pixels in height.  For a player that is about 100 pixels tall that’s a lot to deal with.  We ran a quick beta test to see what the framerates were for zero optimization playthroughs.  So far we learned a few things:

A)  Some people got framerates below 7 fps for some more troubling areas of the levels.  This was a huge problem.

B)  Some people got inconsistent framerates between 15-30 with an incredible amount of change.  This isn’t good either.

C)  Some were lucky enough to have consistently flawless framerates.  These people are lucky.

So what we did is went back through the engine, took a look at the spots that were causing problems, and making the correct changes to eliminate the trouble spots.  Between computers, Flash will run just about as fast as your CPU goes so that is why there is so much change between user A and B.  Between locations we were looking at different amounts of graphics and complexity in those graphics.

Because we can’t get a consistent framerate between computers we opted to find a consistent framerate within the game.  Overnight I have managed to bolster the framerate to a whopping 25-30 fps consistently in all areas; this is an increase of over 50-100% on most computers.  20 is about the lowest I am seeing but even that is good enough.

The problem isn’t so much the code but the way Flash works with artwork.  We have to make changes to the way Flash displays images in order to make the game faster and stronger.

Progress has been slow but steady.  There is so much left to do in this game but we know we need to get it done ASAP but we can’t overstep the major details.

Thanks to everyone who threw in their computers for a few minutes yesterday to get some readings back from the current unoptimized engine.  We appreciate it!

Fast Beta Test Tomorrow

Hi everyone,

Tomorrow, 1/24/09, we’re going to have a less than (<) 24 beta testing of my new platformer.  It’ll appear around 1 pm Pacific Time and run into the evening for launch on Sunday or Monday.  We need your help and the beta will be open to everyone!

Check the Armor Blog tomorrow for more details if you are interested.  No need to sign up, only need your feedback.  Just trying to iron out bugs.

Thanks!

-John

I Love Teasing You

teasing

I only tease because I love, and I only love because I am not a robot.

But the above image is just a taste of what’s to come in the coming days of the John/AG vs. Bomtoons mix tape. We’ve been working hard to bring you a lovely platformer full of testosterone-pumped mafia brutes and wavy landscapes that redefine the meaning of “rolling hills” (I chuckle at my own puns).

3 fun-filled levels, 3 lovingly adorable mafia killers, and maybe a boss here or there. It will be a nice little platforming romp for all ages (3 and up, choking hazard for young infants or toddlers).

Coming soon! -John

Happy New Year!

newyear

Hey there!

JayIsGames just put up their Best of 2008 voting and many games from Armor Games are nominated!  If you have a bit of free time pop over there and cast a quick ballot for the games you think are the best of the best for 2008.  It was an amazing year for casual and Flash gaming so it’ll be a tough choice (it was for me).

VOTE NOW!

Second, the blog got a bit backed up with comments since early January and these comments have now been managed.  Thanks for your patience!

Third, we have several fun projects coming up for 2009.  Among them several new website features, new games, sequels, and of course… well I can’t spoil it all.  I am personally working on several projects including a platformer and that ever-so-sneaky RPG (it’s still in production!).  The game is looking phenomenal with some additional artistic help from an artist so I can’t wait to showcase it this month (or early next).

Happy 2009 everyone!  And don’t forget to recognize 2008 by going to JayIsGames for voting!

A HOLE BECKONS

In some damp, musty forest on the edge of a kingdom stands a hole marked only by a flag and young oak tree.  What it means we will know fairly soon…

forestimage

Perfect Parking Spot 2

Yes, it does make a difference and it does matter.

About a year ago I wrote an article about the perfect parking spot.  It illustrated a parking spot of the kings, one that exemplified all that I strive for in perfect parking.  Good spot, good location, nice sunlight times; it was a match made in heaven.  However, after the honeymoon things started to go downhill.

  • I wrote this article before Winter happened.  Later that month my parking spot cushion (the area I stepped out into, a little dirt patch) became a muddy graveyard of sticks and dirt.  I forgot to take a picture, but it looked something like this:

  • Sometime in later Winter someone started to TAKE MY SPOT.  They didn’t know it was my spot, but like my own creature-of-habit tendencies they pulled into that spot every day, and I had to adjust.  The problem is that a second set of offices share the same parking lot area and these spots are closer to them then they are to our building, so they take it.
  • In Spring these birds started to appear and hang out in the tree that acts as the primary source of shade in the afternoon (to cool the car).  Bird droppings soon became more annoying than a seatbelt that couldn’t be cooled fast enough, so I gave up on the spots under the tree.
  • In late Spring I moved to another spot under another tree that was less populated.  Around the end of Spring the tree started dropping little sticky cherry-like fruits that left marks that were super hard to scrub off.  I had to move again.

  • In Summer crows started to hang out in the parking lot, so trees or locations around larger trees were becoming dangerous locations, and these birds dealt critical damage to car cleanliness.
  • By this time the ratio of distance traveled vs. accommodating elements was becoming a serious issue.  I was now walking across the parking lot or having to park in some random spot which I didn’t like.  It became a serious manner.

However, this story ends happily, as I finally found a good parking spot.

I managed to find a parking spot that was marked “Reserved.”  I noticed no one every parked in it, and even though it was “Reserved” for someone, that someone never used it.  And everyone else seemed to avoid it too since they didn’t want to take that person’s reserved spot.  So I decided that it was “Reserved” for me.  I now park in it daily.

I am fairly certain that next year I’ll be telling you how this parking spot fails, but in the meantime it’s the best I can do.  I know it’s such a small difference in my life, but every day I get off work and I know my car is going to be the first thing I deal with.  So I like to know that when work is finished I get to step into a cooled-down, same spot, no mess, close proximity parking spot.

Or maybe I should just walk.

« Previous PageNext Page »