Well thank you very much, that was very nice of you. There was a bit of paperwork to fill out, but it was well worth it to say that I technically made some money from a game I developed. =)
JadeLombax
Creator of
Recent community posts
Thank you, I'm glad to hear that you enjoyed it. It was mainly an exercise in trying to fit a little explorable game world in as little program space as possible, just a kilobyte. I just make little games as a hobby and I've never been paid anything for them. I went through and set up some things, though, and if you wanted to donate a bit, that would be very cool.
Thanks 🙂,
I saw your walkthrough, glad to see no new game-breaking bugs popped up.
To answer your question, I had to develop systems and techniques to cram a lot of information and logic into a tiny space, since despite much being faster than an NES, Pico-8's game carts can only be a tiny 32 kilobytes, while many NES games were hundreds of kilobytes. If you look at the other games I've posted on Itch, you'll see they're all 1KB or less. That's been due to a combination of finding optimization an interesting challenge, and also that severe size constraints really help to limit scope. For this project in particular, I used a system I built that greatly compresses level maps by storing them as placeable objects instead of individual tiles. If you're interested, you can check it out here: https://www.lexaloffle.com/bbs/?tid=42848
I am planning to work on more games that are bigger than a kilobyte, I'm actually currently working on a Pico-8 version of the original Mega Man. Like SMB, it's helping me learn a lot. I think I can get it to fit in a Pico-8 cart without significant cuts, though it'll take a while to finish.
Oh, okay, I thought you meant commented, long-form code. Here's a link to the code from the cart. I'm especially proud of the combined map decompression/autotiling system in about 100 chars at the beginning. ;)
https://pico-8-edu.com/c=AHB4YQkpBABPcc5oa-Bzy0Bel8v-tzaA-ZMUBjJ8isIifo8DzWV4Fe...
Thanks,
There's actually no separate source code, as I code all my tiny projects in compressed form by hand. I guess that's terrible practice, but I'm not a software dev, and it lets me better monitor and control the size.
I'd be happy to answer any questions or explain things if the code's too cryptic, though.
Thank you, I'm flattered.😊
When I was little kid, I remember my oldest brother slowly typing in lengthy programs from magazines on our old computer, usually to be rather underwhelmed with a primitive game that held our attention for a few minutes. Guess I'm fascinated by the idea of fitting something surprising and complex inside a tiny space.
I agree it's a bit unpolished in some spots. I'm hoping to make a more fully fleshed-out version sometime that adds and refines a lot of things. As it is, I had to cram like crazy to fit the whole thing in 1 kilobyte. That's less than 1% the size of the original NES Metroid. Those are good points, though, I'll see if I can free up enough space to tweak them.
As always, thank you for being a kind and gracious host. =)
I found a hybrid system for the map that seems to work pretty well: deliberate design elements laid on top of procedural generation. I'm calling the little robot K5, as it's the last part of his serial number. Initially was going to call him Gizmo, but it didn't really fit with the more realistic tone I was going for. Speaking of naming, my initial name for the game was MapDroid, do you think that's a bit too on-the-nose for a non-size-restricted version?
As for the power cell, I believe only 2 are truly hidden, I'd recommend searching the depths of the red crystal area, or around the waterfall. ;)
Thank you very much, that's high praise coming from someone with your coding savvy.
There's definitely some procedural generation smoke and mirrors, but it's a video game, what it looks like is kinda the whole thing. Glad to hear people are legitimately liking how the game plays. It's my first-ever shot at a Metroidvania, so that's encouraging for potential future projects.
Thank you, glad to hear you're enjoying it!
I might have to shatter the illusion a bit, but there's actually not very much map detail stored. The world is made up of just 35 rectangle and oval shapes drawn to the screen and copied to map memory. The trick is that the shapes are drawn over 64 cel-like room shapes composed of several hundred randomly-drawn black rectangles. I hit on this after initially trying pure procedural generation, which was too chaotic. Combining random detail with specifically-designed features seems to give most of the effect of storing a lot more information, though you have to work with what's there. It's kinda like looking for faces on a textured ceiling. =)
Thank you, looks like you got a good time! I would have liked to include at least some sound effects, but even that would have eaten up space fast. I'd like to make a more fleshed-out, non-size-limited version of this at some point, I just have to work at limiting my scope (a big reason I started size-coding in the first place).
Oh also, they're technically power cells (yeah, I know they're squares, but Metroid gets away with it. ; )
I'm glad you enjoyed it. I have to say my intention wasn't to be evil, more that I only had 12 total collectibles, and if I handed them all out in a straightforward way, the game would basically have zero longevity or replayability. If i'd really wanted to be evil, I could have included some blind pitfalls (including ones of that drop you out of the whole map), or made pits you could fall down and not get out of. =P Also, while the destructible walls aren't marked, they don't have any crystals on them, as you can't destroy those.
What you're saying about the double jump (or as I like to think of it, 'jump jets') makes sense. I didn't have any space for explanation (I mean, the game's title doubles as an explanation of your objective) but I had hoped the deep pit you have to climb out of in the green quadrant would help players come to grips with it.
Thank you, having the game stand on its own merits regardless of file size was my goal. I'm realizing the time in seconds is pretty awkward, but couldn't fit proper formatting. As it is, the title logo and time display are part of the same print command. And yes, they are green squares, they're supposed to be metroid-style power cells. =P
Nice job on the graphics and sound, and coming up with smart simplifications! The 97 seconds remaining submission is kind of the cherry on top. =) Was thinking about a demake of Dig-Dug or Frogger, and had made a little test, but my project took too much time for that. Glad to see somebody made one.
Thanks,
I've just been practicing the digital equivalent of jumping up and down on a suitcase to cram 'em in as tight as they'll go. ;) This one was tricky. I had a good base from my last entry, but as I've found when encoding sprite and map data in custom, highly-compressed form, things can get very temperamental.
Thanks for letting me know about the glitch, didn't have a lot of time for playtesting. I uploaded a fixed version. It appears I had failed to update a number from 21 to 22...
I can very much relate, it's both an interesting puzzle and an extreme means of scope limitation. I get game ideas, but see the potential for something beyond my current skills and don't know where to start. Moving forward, my strategy for any more substantial projects will be to make a small, simple version first, then a slightly scaled-back version after I've gained the initial know-how.
I can sympathize with having to hack things down. Personally I think one of the best things about cramming code like this is that it forces you to find efficient ways of doing things, and you can use that in other projects that aren't so constrained. I'm planning to make a non-crunched version of my entry sometime after the jam, to further polish it up and flesh out some of the ideas.
Particle effects, I like the ambition! Was planning to make a racing game as my second entry, but my current one is demanding actual world design and I've never made a game of its type before. Sometimes I wonder why I make things so hard for myself, but I guess that's kind of the nature of size coding. 😛
Great job on the animation! Read your comment about ninja stars and the ctrl-f glyph to mind, so altered a couple lines of code and changed the balls to stars. Here's a link (1024 compressed bytes):
https://pico-8-edu.com/?c=AHB4YQZyBAAPcPL1229xxSUnJHcc0zSXBIkTilNeo4muuP2mE57qnE...
The little 6 is a single-character substitute for "\^", which is a common control code. Zep didn't necessarily make all the shortcuts like that very obvious. I actually included characters 0-15 in the tool, they're just in the code as comments and you can copy and paste them, since they're not printable in a running program.
Well, I actually don't have a less-minified version, as I usually code my small projects directly in condensed form. I can give you some info on how things work, though. There's a string at the beginning:, ?"⁶1⁶c6⁶!5f10+⬅️5✽●6⌂3", which activates the secret palette colors. Basically, the question mark is a condensed print command, '⁶1⁶c6" replaces the flip() and cls() commands, and "⁶!5f10" functions as a poke command to hex address 5f10. The symbols that follow are the values that colors 0,1,2,3.... are assigned. The bezel is drawn using the reversed shape feature in Pico-8 0.2.6, which is activated here by another poke command in a string. If you haven't, I'd recommend looking up and reading about P8SCII control codes, which can do all kinds of useful things in a small space. Some of the required symbols are tricky to print out, so I made a little tool that makes that part easy, you can find it here: https://www.lexaloffle.com/bbs/?tid=40525
Again, thanks. Glad you're enjoying it. I've had ideas for LCD-themed projects for a while. I've spent time trying to overcome the limits of Pico-8's low resolution to build worlds that seem large and open, so it's neat to see what's possible when going the other direction and depicting something small and close. I'm thinking I might try and simulate a bit of motion blur next time.😉