Pheasant Courier postmortem: trying to deliver authenticity
In the last weekend of April, I participated in Ludum Dare 53 (this was my 7th Ludum Dare). The theme was: Delivery.
The Idea
I prepared 2 game ideas for this one. One was: "You deliver pizzas across the Solar System. Attach rockets to pizzas, and hurl them close enough to the Sun to cook them. Use Mars’ tomato, the Moon’s cheese, and of course the Earth’s crust." Ah, what could have been.
However, I used the other one: Arthur Key, the flightless bird working with homing pigeons. Originally, it was about an Internet provider, but it was changed to classic postal mail. I already use the Internet all the time, so this change was welcome.
And thus, Pheasant Courier was born. Not that it was named like this until the very moment I published it on the jam's website. Gosh, naming games can be very hard sometimes.
The environment
After a quick idea evaluation (questions like "what will our journey look like? do I need depth or verticality? how much?"), I decided to make a platformer. What's hard to do in platformers? Climbing a mountain! (yeah I played Celeste) And bam, like that, we have a goal.
You have a job. So the game starts in an office. We have our tutorial level. Offices are in cities. What's usually between a city and a mountain? The countryside! Boom, we have our first level. The Eagle (first boss) was inspired by another game idea, and is a good fit for a bird game.
It would have made more sense, in terms of environment, to put the Hunter (second boss) as boss of the countryside, and the Eagle as boss of the summit. But story-wise, it also makes sense that we become friends with the defeated Eagle and then she tells us to beat the crap out of the Hunter. This improves the story's morale too. Also, the summit is inhabited by a human now, so it makes sense for you to deliver a package up there.
Some of you might wonder: what's this odd-shaped terrain all over the place? That's the polygon system! I usually make terrain with tilemaps (and I actually used a tilemap for things like trees and bushes). But this time, the game takes place in hand-crafted, authentic, natural landscapes. I was also inspired by putting gliders on mountain slopes in Kerbal Space Program, and gliding them back to the runway. That's the kind of feeling I kind of aimed for, while staying in known 2D platformer territory.
There are three downsides to this simple polygon terrain system:
- I can't make floating islands or isolated caves with that (…for now)
- Settings like the office are more "architectural" and could have benefited from a classical tilemap system
- The floor, walls, and ceiling look the same (I already received complaints about 200%-slopes being too steep, it doesn't help that I used them as walls in my level design)
But apart from that, and the ugly skew in some cases of acute angles, I'm very satisfied with the look!
Graphics-wise, resolution was a pretty heavy constraint. The Ludum Dare website requires embedded games to be 948x533 pixels in definition. That's why the camera is so far out and there's no pixel scaling: it would look janky at non-integer zooming, and I need to show big chunks of the level because we play as a momentum-heavy gliding animal who can be fast. Redrawing everything would have taken time. Also frustratingly, that's very close, but not quite, to 960x540 (half-1080p).
This was the jam where I used my old drawing tablet the most. Software-wise, I used Aseprite with the AAP-RadiantXV color palette. I ended up adding pure white as a 16th color, because I wanted a bit more contrast.
The day before the jam, I was practicing drawing trees and groups of leaves, and I opted for the angular approach. This ended up saving me time, and I'm really proud of all the vegetation!
That was a pretty long chapter about the environment in the game. Now prepare for the discussion of game mechanics!
The mechanics
Since that famous mobile game, the truth is everywhere: if you're a bird in a game, you have to flap.
So, I started by making a basic player character who can run left and right, but instead of jumping, he can flap. Originally, you would need to run for some time before you could soar, like in Super Mario Bros 3, and you'd have different power-ups, but that was kind of complicated for a two-day project. I planned a large but finite level time limit, like in mario games, but I did a time counter for the whole playthrough instead.
The first item to be implemented wasn't actually the stick, it was the feather! This boost allows you to climb higher, and allows me to shape levels more precisely. It's just a bit awkward in the beginning when you can only flap once. I was inspired by a previous unreleased project.
"Package bashing" is a completely accidental attack idea. The initial idea was to put packages (or envelopes, floppy disks, etc) on a string behind us, acting as our hurtbox. But the opposite was implemented instead, when I found that applying a linear force towards the protagonist would make for a very slingy package with lots of momentum. Sometimes it's a bit awkward trying to attack enemies vertically, so I cranked up the bounciness of our packages. Now we're playing some kind of elastic head soccer. How cool is that?
If you experimented a bit (and if you've beaten the Hunter), you probably noticed that you can parry attacks with your packages. That was also a happy little accident. The Hunter's fight as a whole could deserve an entire devlog, there was a lot of details and tweaks to it and I didn't even implement every idea that crossed my mind.
Regarding difficulty (which is notoriously hard for me to dose properly), there are no lives and you die in one hit. Fortunately, there are frequent checkpoints in the form of… coffee. There's no real penalty for dying except for wasting a bit of time. Early playtesting indicated that with this system, bosses were kind of a walk in the park. Now, every time you die in a boss fight, the boss regains 2 HP if it's not full already. Maybe it's too much…?
What do you think about the game's difficulty? I heard it's very hard sometimes, is it of the fair kind or the frustrating kind? Love your feedback!
The characters
A while ago, I saw a (modern) gameboy game about a crow who starts in an office and must cross countryside, with limited flaps represented by feathers. I just found it again: it's Necrow Co., made for GBJam 9. I apologize for borrowing a good chunk of the idea!
Anyway. In my game, none of the birds have names (except Arthur Key the protagonist, and Eagle I guess). They probably have boring names, like John or Steve. The only human in this game is the hunter, who is named Hunter for now. At least it's simple!
Hunter was planned to attack us in a fighter jet (which in my native language has the same translation as "hunting plane"). But that pun doesn't work in English, and there was enough flying enemies anyway.
Non-boss enemies are:
- The rats (which are, essentially, just Goombas)
- The clouds (because it was rainy this weekend and there was even a bit of thunder at the end)
- And the goats (which are just rats with 5 HP instead of 2)
I was very… basic with the enemy patterns. I planned to do different states and behaviors for each enemy: rats would chase you, or run away from you. And they'd avoid falling off platforms (instead I just put slight slopes around them). Game jam scopes can be cruel sometimes!
And when enemies die, they explode! >:D As far as special effects go, explosions are really easy to reuse everywhere in the game. And they're cool, if not a bit absurd sometimes.
The audio
I stayed in known territory for the music. I used LMMS with the usual MIDI soundfonts, and I made:
- A bossa nova for the office (this time I did a minor one)
- A catchy tune with acoustic instruments for the countryside, inspired by many games' World-1 themes. Like in Tax Mage, an easy way for me to make that kind of song is to do a major/happy A-part which gets you moving and a minor B-part which tries things.
- A hyper powerful boss music, which I ended up reusing for the second boss (should have done the same thing for Ace of Rope at the time). I composed this one in slightly more than 30 minutes.
- For the mountain, a… mountainous tune. It's pan flutes and local percussion and nylon strings and choir, with an ascending chord progression. Classical recipe for "I'm climbing a mountain!" music.
- Various sound effects and fanfares (that's far from the best ending fanfare I've done, sorry)
Maybe you can tell I reused a lot of sound effects in many different places with many different pitches to save time.
The future
If I want to continue this project, I might need to do a bit of porting… because I used Godot 3. Yeah, I know, Godot 4 is available. But two things remain true: Godot 3 works better for web builds, and it gives me a smaller binary file. I made this choice months in advance, before the release of Godot 4.0. We'll see what version I'll choose for the next game jam…
Planned new features for Pheasant Courier are: better transitions, better buttons, fixing the polygon system, proper effects everywhere with lots of cute hand-drawn art, and maybe choosing a different font. Stuff like power-ups, new levels, new/interesting enemies, or a real settings menu are for the long term, I don't know how long this project will last.
Thanks for your attention!
There's a 2-3 week period in which I must not add new features to my game, as per the rules. So I will most likely make a new devlog, or at least an update, in a few weeks.
Until then, happy delivering, and see you on the next one!
Files
Get Pheasant Courier
Pheasant Courier
You're in a homing pigeon agency, but you can't fly!
Status | Prototype |
Author | cagibidev |
Genre | Platformer |
Tags | 2D, Colorful, Cute, Hand-drawn, Ludum Dare 53, Pixel Art, Short |
More posts
- Jam results are here + v1.1May 21, 2023
Leave a comment
Log in with itch.io to leave a comment.