Join 3,512 readers in helping fund MetaFilter (Hide)


The guide to implementing 2d platformers
May 24, 2012 3:20 PM   Subscribe

Having previously been disappointed by the information available on the topic, this is my attempt at categorizing different ways to implement 2D platform games, list their strengths and weaknesses, and discuss some implementation details.
posted by Artw (33 comments total) 94 users marked this as a favorite

 
Wow, this is really, really great stuff. My brother and I, despite being complete noobs with regards to game design, have been "working" on a 2D platformer game for some time now, this article is incredibly useful.
posted by Doleful Creature at 3:39 PM on May 24, 2012


Another good article: Lou's Psudo 3D page, which details how to make an old-school racing game. Something I've been working with the past few weeks in an attempt to make a retro racing game.
posted by hellojed at 3:44 PM on May 24, 2012 [8 favorites]


Correction: Samus is two tiles high.
posted by JHarris at 3:51 PM on May 24, 2012


I'm only down to the Ladders section, but this is interesting. I love the tile breakdown - it's like the platform game version of perspective lines.
posted by postcommunism at 3:56 PM on May 24, 2012


This is a bit of a tangent, but Lode Runner is such a beautiful game. It's very simple and limited, with plenty of quirks, most notably the often-strange AI of the guys chasing you. And yet the design of the levels cunningly takes advantage of all of that, and uses both the game's strengths and weaknesses in a way that plays off the strengths and makes the weaknesses seem intentional. It's a game that's a bit weird but damn proud of itself. Charming, even.

I never played it back in the day, (and was not, in fact, alive when it came out) but I played through the original in an Apple ][ emulator a year or two ago. And now I'm stuck on level 34 of "Championship Lode Runner", the much more difficult sequel.

I feel like too many games keep adding bells and whistles, piling game elements and gimmicks on top of each other, instead of just saying, "look, we've got these few game elements, what can we do with them?" and then pushing those simple elements to their absolute limit. I think that VVVVVV (which I also love) is a good modern example of that sort of purposeful, refined simplicity.

I guess what I'm trying to say is, go play Lode Runner.
posted by jcreigh at 4:12 PM on May 24, 2012 [12 favorites]


Oh, this is wonderful.
posted by griphus at 4:19 PM on May 24, 2012


I will second jcreigh endorsement of Lode Runner. Back in high school a lot of us were addicted to it on the school's lone Apple IIc computer, and it wasn't long ago that we came very close to beating the Turbografx 16 Battle Lode Runner on Wii Virtual Console, which has some insane levels later on.
posted by JHarris at 4:39 PM on May 24, 2012


TEAM LODERUNNER FOR LIFE
posted by Doleful Creature at 4:41 PM on May 24, 2012


This is pretty great. Actually, the only one I've ever tried implementing is the bitmask. On an 8-bit Amstrad CPC, I think I must have been about 11. Great machine, I've always felt, but its big downfall was a lack of hardware sprites. So when I decided to make a platform game, I was faced not knowing assembly not being able to use actual tiles. So the levels were drawn with pixels, and the moving character read the pixel values under its feet to decide whether it was falling, or on solid ground.

It was pretty painful.
posted by Jimbob at 4:43 PM on May 24, 2012 [1 favorite]


One of the best things about Lode Runner was that it included a map editor. Good for making maps for your friends while you wait for your Axis & Allies turn to come up. Wasn't Championship Lode Runner wholly or in part customer-submitted maps?
posted by fleacircus at 5:01 PM on May 24, 2012


Very nice article!

One thing to consider: A brief mention that a 2D platformer can also be implemented with a standard 3D engine / toolset. Though it might be overkill to create such an engine for a 2D game, it might very well be time-saving to use an existing 3D engine. It all depends on whether one prefers to wear a programmer-hat or a designer-hat, for a given project.
posted by interim_descriptor at 5:18 PM on May 24, 2012 [1 favorite]


I ran into the guy who wrote Loderunner in a Vancouver BC strip bar in the mid-late 1980s, I think. He was set for life, as I recall. I have no idea how much of this anecdote is really true, other than being in the Hotel Cecil.
posted by maxwelton at 5:24 PM on May 24, 2012 [2 favorites]


That is what I heard about Doug Smith, maxwelton.
Here's IGN's interview with Doug Smith (back from when Lode Runner was getting remade in 3D).
Old discussion from rec.games.programmer
I read somewhere (which location the casual Googling that uncovered those two links didn't reveal) that what really made Doug Smith's fortune was the Japanese market, which has featured many ports of the game, including more than a couple specifically for arcades. Hudson especially released a lot of versions. In fact, the character design that we now recognize as Bomberman was originally used as an enemy in console Lode Runner games. Most of those versions, however, did not have the direct influence of Doug Smith, except for the 3D versions released around the N64 era.
posted by JHarris at 5:47 PM on May 24, 2012


Huh, I never realized the Lode Runner running guy was the same as the Choplifter running guy, even though the games had different authors. Ah, when four frames of animation was a tall order.
posted by RobotVoodooPower at 5:47 PM on May 24, 2012


I got to the first image then realised I must immediately install and clock Flashback.
posted by Wataki at 5:54 PM on May 24, 2012 [1 favorite]


Though it might be overkill to create such an engine for a 2D game, it might very well be time-saving to use an existing 3D engine.

I saw a Bubble Bobble clone that was done in two weeks (couple hours a night) in Unity3D. This was the first time the developer had worked with it. There's, of course, lots of tweaks and maybe hacks you have to make to get things to get your platformer to behave just so, but it is quite a head start.

I've heard similar things about GameSalad.

Of course, if you want to learn how to do make things the way the classics were made, shortcuts are moot.
posted by ignignokt at 6:02 PM on May 24, 2012


overkill to create such an engine for a 2D game

Not a game but that is exactly what South Park did when the first short sold and they realized that 2d hand animation would be rather impractical. I think it was done in the precursor to Maya.
posted by sammyo at 6:06 PM on May 24, 2012


Oh, and speaking of which, here's a pretty good talk on making a 2D game in Unity 3D. I think a lot of these guidelines probably apply to other 3D engines.
posted by ignignokt at 6:16 PM on May 24, 2012 [1 favorite]


Those who enjoy this may want to poke around this guide to Sonic the Hedgehog's physics.
posted by buriednexttoyou at 6:18 PM on May 24, 2012 [5 favorites]


There was also that South Park N64 game that used, if memory serves, the Turok engine.
posted by box at 6:25 PM on May 24, 2012


Don't forget about Amit's Game Programming Information (and his blogs/links/etc) site

(Been following his since the old rec.games.programmer.ai days)
posted by jkaczor at 6:32 PM on May 24, 2012 [1 favorite]


Lou's Pseudo 3D page

Good find. I didn't realize the trials Enduro had to endure (ha) to avoid a division operation. And road images in ROM! Ha!

I remember trying to pull off a 3D road in lo-res mode on the Apple ][ and having a really tough time of it (not realizing that Applesoft had slow-ass floating point operations by default).
posted by RobotVoodooPower at 6:50 PM on May 24, 2012


This is beautiful.

I've always found a lot of articles on "get something moving on the screen" or procedural generation, but so very few for polished interactions, especially with action games.
posted by 23 at 7:02 PM on May 24, 2012


BTW...

JUMPMAN!

Back to your regularly scheduled codery...
posted by Samizdata at 8:54 PM on May 24, 2012 [1 favorite]


For those of you pining for some old-school-type 2D platforming action, there's the recent-ish Rayman Origins (consoles, PC), which feature stunning visuals, lovely soundtrack and of course a proper hard difficulty level later in the game.
posted by Harald74 at 11:43 PM on May 24, 2012


Ah, Jumpman and Lode Runner. Two games that you'd think wouldn't hold up very well any more but totally do. (My love for the original C64 Jumpman sound effects and music is probably just nostalgia, but the game itself is still great.)
posted by straight at 12:04 AM on May 25, 2012


regarding using 3d for 2d games, one of the fastest ways of chucking sprites onto the screen is opengl / directx / hardware acceleration. Those api support the z axis, but there is nothing requiring you to actually use it.
posted by jonbro at 12:58 AM on May 25, 2012


straight, C64 Jumpman remains home to some of the best music on the platform IMO. It's not fancy and flourishy like Ron Hubbard's stuff, and there's really not that much of it, but it's clean, makes such excellent use of the available resources, and it does stuff like just throw in multiple randomly-selected level completion tunes just because it can.
posted by JHarris at 7:16 AM on May 25, 2012


After replaying Jumpman some last night (both in a C64 emulator and in that excellent and very faithful PC port I linked above), I think I agree, JHarris. And the sound effects are really great too -- the jumping sound, the pitter-patter of his little feet. But I'd forgotten how cheap a few of the levels are. That first intermediate level where you basically have to memorize which blocks are going to fall on your head each time you grab a bomb is some serious bullshit.

(Can I get a similar ruling on Douglas Fulton's theme for Skyfox? Nostalgia, or three-part symphonic SID masterpiece?)
posted by straight at 8:19 AM on May 25, 2012


I got to the first image then realised I must immediately install and clock Flashback.

I might be the only person in the world who distinctly remembers that game as being all-around superior to Out Of This World.
posted by naju at 9:07 AM on May 25, 2012


This is really great stuff! Especially all the helpful algorithm's for handling slopes. Sounds like a bitch to pull off, but it seems that certain 2D programming styles are more forgiving than others.
posted by PipRuss at 3:35 PM on May 25, 2012 [1 favorite]


Speaking of Jumpmans, this is a pretty good Jumpman. Man.
posted by buriednexttoyou at 6:04 PM on May 25, 2012


buriednexttoyou, that game reminds me of one of my favorite Wil Eisner splash pages.
posted by straight at 9:51 AM on May 26, 2012 [1 favorite]


« Older A relatively small group of people from Appalachia...  |  A short wordless documentary o... Newer »


This thread has been archived and is closed to new comments