At last, Nanoman!
Basically, a fan game heavily inspired by the early Mega Man series that I started working on a few months ago. A big thanks to Gruber Music for stepping in during the final stages and providing some great tunes for the 6 different levels!
If you're already a fan of Mega Man, you should feel right at home here. For the un-initiated, here's a breakdown of the controls.
- Arrows: Move (of course)
- Z: Jump - Tap for a small jump, hold for maximum height
- X: Fire / Menu select
- L-SHIFT: Open weapon selection menu. You'll have just one until you defeat some bosses
- If you're sick of a level, you can return to the stage selection screen through the PICO-8 pause menu (ENTER)
You'll often come across life (white glowing orbs) and energy pods. The energy pods will re-fill your special weapons, but you'll need to have the weapon you want to re-fill selected before you pick it up.
This game is HARD. Like, Mega Man hard. Expect to die a lot until you start to memorize stage layouts and enemy patterns. The game is indeed beatable; I've run the whole thing myself a few times. It takes about 15-16 minutes if you're in a hurry and don't die. I plan on making a full play-through video soon. There's a handy, built-in timer for you speed-runners out there that'll show up at the end of the game.
The code in this cart has been squashed with p8tool's luamin command. This was necessary to get this beast of a thing in under the compressed file size limit. Don't expect anything legible by clicking the code link. I'll see about posting the un-compressed code somewhere.
This is my first full-blown PICO-8 title. Some of the code is rather ugly; partly because early on, I was unsure of how best to save space, and partly because I had to utilize every token-saving strategy under the sun. I've done my best to comment the un-compressed code so you can follow what's going on.
The map data was generated and lightly compressed by external map editing carts (one for each level) and jammed into strings; there are 76 "screens" in all. The last level is also a string, but it's copied from map memory into a string at runtime, because the compressed file limit said I had to do it that way. I hope to do a write-up on just how I handled all of that soon.
That's about all my fried brain can think of at the moment. Enjoy!
Edit: I can't seem to upload anything to my profile here other than images, so I've uploaded the un-compressed cartridge data to github: https://github.com/flimflamboyant/NanoMan/tree/master
Wow really amazing! Really taking P8 to the limit here!
The jump and shoot are backwards on my gamepad; would be awesome to have remap in game!
My 2 cents on the Game Design: I think there are a few things that can make the game feel more frustrating than just "difficult":
1) Enemies that move in non-cardinal directions (circles, arcs) and ones that move/shoot inconsistently(springs that jump a different amount every time, floating eyeball that seems to shoot in 4 random directions, thing that jumps out of pit at a different height depending on where I am, etc). These may the game feel less predictable than MegaMan.
2) Lack of checkpoints. I know the levels are fairly short, but it feels overly punishing to have to play an entire level again when dying on a boss. Would be nice to have lives like MegaMan.
Again, really amazing job though! Looking forward to finishing at least one level, some day... :)
@mhughson I've noticed that PICO-8 games seem to go back-and forth on the button layout, and was wondering about this beforehand. I've played a lot of games on emulators and the "jump button on the outside" scheme seems pretty consistent, so it's what I'm used to.
Apparently, that's not carrying over to the controller when the d-pad and buttons are swapped (as it should). Unfortunately, I'd have to cut something from the game to support that, probably by adding a simple button swap option to the pause menu. Actually, I'm thinking that the option should be built-in to PICO-8, as I imagine that this is a common thing.
1) I've tried to make the game as predictable as possible. Nothing is randomized other than the item drops, though the player's actions can affect how enemies respond in some cases. The little green springy guys, as you mentioned, would be an example, though Mega Man does have a few enemies that react to your position. Their reactions are based on consistent and predictable logic, however, and if you watch the play-through video I made starting at 6:48 you can see an example of how you can use it to your advantage.
Sometimes, the timing of the bronze smashers can be affected as well, especially if they are moved in and out of the screen. Token restrictions affected just how rigorous I could be about forcing consistency in those cases. That's why most of them are of varying height, so if the timing doesn't look right, you can wait for it to change.
The blue spinners that pop out of the bottom are actually always consistent with the height that they've been assigned, which isn't consistent, because I'm a jerk. :)
2) Checkpoints might be a possibility. I'll look in to it. It's something I wanted to do early on, but didn't think I had the space. I'd have to change something to steal back some tokens, but it might be possible. I don't think I'd need much more than a simple "game over" screen, which wouldn't take much space. I don't think I have any room for adding 1-ups, though that's probably not a big deal. Probably one check-point per level, and a lives counter that resets every time you start a new stage.
@Sacha217 I'm not entirely sure how many hours this took. I started the project back in October; probably 16 weeks or so. A wild guess would put it somewhere around 300 hours, I suppose.
@sax Yeah, what Sascha217 said about the .png export. Also, the HTML5 export. There was certainly some temptation to go multi-cart with this thing, but I don't think I would have been able to restrain myself at that point, and this project would have gotten a whole lot bigger. I figured I should probably let the single-cart limitations keep me in check. :)
The thing with the button layout (on the weeb player) is that Z and C are identical. You can "choose" your layout by electing to go "ZX" or "XC" - so the actual layout itself doesn't really matter that much.
I really gotta respect this project! It takes a few components and manages to make it really exciting. But there are some points in the stages that make me "wtf!!". That said, this is certainly the most impressive cart I've seen to date.
Any chance you'll pop out an "Endless Attack" version of this, maybe?
The level compression is quite interesting, too.
Log in to post a comment