The making of a lonely swamp


Before the beginning

I’ve been making games with the PICO-8 lately. It’s a lovely little fantasy console with more limitations than most actual retro-consoles, making it great for the small experiences I enjoy.

The system has a fixed 16-color palette, and I’ve noticed that all of my previous games on the system used the darker green color. So before I had even joined the Mini Jam that this was made for, my mind was made up that “my next game won’t use green.”

I then came across Mini Jam with its “Frogs” theme and thought, perfect, if I’m going to have a self-imposed limitation like that, may as well make it a real challenge! So I joined and began thinking about non-green frogs. Poison dart frogs. Poison dart … frogs. What about a frog who can become a dart?

Just like that, I had my core gameplay mechanic. My excitement grew and then …

Day One

The jam began. We were off! The limitation: “only one level”. It’s worth nothing that the PICO-8 has a map editor that, if used well, can entirely function as a passable level editor. It has a limited size, but when there’s only one level that one level can be allowed to fill the entire thing! So I settled on a platformer of sorts, with a bit of exploration involved to cover the entire map.

Most of my games have been platformers, because that’s what I most like to play, but I’ve been rewriting the code from scratch each time. As a result, I feel like each plays more differently, has more of its own character, than if I were just copy-pasting between projects. (Though eventually I’ll feel I’ve gotten it “right” and make a parameterized library!)

So my first day was spent writing up yet another basic platforming engine, tuning things until it felt good to hop around within a single screen. Then came the realization that there’s only one level, and I’m going to need to move around the whole map. I’m used to doing the thing where you keep the player in the same column of the screen, but decided to pull it out a bit so you can see more in the direction you’re facing.

Playing Mario Maker has instilled in me this notion that the camera shouldn’t move in the vertical dimension unless the player is standing on something solid. But with the height of the dart-jumping and depth of the falls, it seemed I would need to experiment. I coded up something that mostly tries to track a grounded player but can also follow them as they rise or fall quickly. Far from perfect, but it feels good enough for me!

At this point, I had some satisfying movement — to the point that I was constantly distracting myself just hopping around! I didn’t even have a setting in mind yet, just some orange and cyan rectangles littering the screen to hop between. Needed a hazard of some sort. Spikes. They go with anything. So now we’ve got orange and cyan rectangles, and spikes!

The time had come to put in some real level geometry: deciding where the player needs to go, and giving them a path to get there. I wanted to make full use of the double-jump-to-become-a-dart mechanic, so a lot of sections of the platforming alone are based on that.

Once the basic paths are in place, it’s time for hazards. I had some spikes, so, have some spikes! But spikes are dull. They don’t do anything, they just sit there and wait for you to do something wrong. Now for some active hazards: I added an exploding mine, and some spinning balls of pain. By this point, it was basically decided that “red things are good” (because the player is red) and “grey things are bad” because they match the spikes. So the mine and the spinners are grey.

A short while later, and trying to keep in mind some sort of “introduce, reinforce, challenge” structure, I had a full map. Branching paths encourage exploration (we’ll need some collectibles in there!), and each kind of hazard has its own area, more or less, before a final section that tests everything.

Oh right, collectibles. I’d originally settled on including fifty coins to pick up. So I drew out a basic coin-like shape and started placing them in places that felt “destination-like”, plus a couple at the start to encourage learning to aim the dart-jump. Ended up putting in only about eighteen at that point, so I dropped in a couple free ones for an even twenty.

At some point I realized the cyan rectangles I was using as semisolid platforms looked like mushroom caps. So I switched the orange to a mycelium-purplish and decided on a “fungal” theme. Added in some checkpoints for kindness, and that was the end of day one!

Day Two

After a long sleep, I came back on day two and … hopped around a bunch. “Playtesting” we’ll call it that. I had a goal: “those extra screens”. You know the ones. Title screen, end card, maybe one of those “view controls” screens and a bit of story. But instead I just bounced around for a long while.

I removed some hazards in a couple sections to reduce difficulty, and at the suggestion of a friend shrank the HUD for improved visibility. And finally could get on with the day’s true purpose!

First came the end card, which needed a timer, some way of telling the player that, yes, they have indeed won, and what they missed if anything. At this point I had decided on the story: the reason the frog can become a dart (besides just being a pun) is that he’s been cursed by witches! And these witches can bring back the life that had been taken out by the fungus, but they need all of the amulets scattered about to do so. Amulets. Yep, that’s what those coin-things were all along, or, well, they do kind of look like gemstones in a way at least. So how about a couple endings: one where you’ve saved yourself, and one where you’ve saved the world? I ended up adding a third secret ending for the exceptionally skilled player, try to find it!

Three end cards, and their triggering methods, done and done.

Next up: a title screen. I made the menu and settled on a layout long before a title had been decided. The area where the title sits in the finished project read only “PLACEHOLDER TEXT” for a while. Wrote in the in-game story blurb, and then wrote some code to draw a controller for a “view controls” screen, and linked those up to the menu. Nice!

By now my eyes hurt a little from staring at my screen all day, so I went and took a nice long relaxing bath. That lasted about an hour, during which time I came up with my title. Now to find a font.

Apparently 8x16 pixel fonts for games are hard to find? Or I’m bad at searching. Either way, I just had to make one! So I drew up a sort of logo font, aiming for a calligraphic aesthetic “but with a sinister vibe”.

And oh my, where did the time go? The day had passed, and I slept to await the final day.

Day Three

A day of music, where all can rej— oh, what’s that? Creepy music? No rejoicing then, but there is music! I was going for that cold isolation of the Metroid atmosphere but without, you know, just ripping off Metroid. This frog is alone in this swamp, and I want the player to feel that. Am I a masterful composer? Nah, but, it turned out alright. Made some win-music too which I like even more.

And there it was: my first ever game jam concluded with the click of “Submit”, feeling like my amount of new work was inversely proportional to the amount of time elapsed. It was a fun experience! Definitely planning to do more of these in the future!

Get Lonely Swamp

Leave a comment

Log in with itch.io to leave a comment.