Santa's Mail Sorter Itchio page.
This was made in about two days in the rush before Christmas.
The aim was to make a simple game that tied into Christmas in some way and also worked to send messages to some friends who haven't really seen each other for a long time because 2020.
The original idea was going to have you controlling Santa's sleigh flying through the night. You'd have to dodge some obstacles which I never decided on, (rogue elves trying to stop Christmas or something?) and either periodically or at the end of each level, you'd have to drop presents from the sleigh down passing chimneys. I even drew the sprite for the sleigh.
This didn't take off (heh) for a couple of reasons. The first is that real time things like that have lots of moving parts to keep track off, which would probably have taken longer than I had. The second is that I had a bug involving negative numbers where negative DX would cause the sleigh to shoot off backwards far quicker than it went forwards. I'm sure I must have come across this before, I even looked at another game I made using DX movement, but I have no idea how I fixed/avoided it in that game. So Santa's sleigh was out.
I was still vaguely interested in the delivery idea though and was thinking about letters. Doing something with letters would be a good excuse to have some interlude with a letter for each person or something like that. One thing led to another (I'm not sure of the exact sequence of events) and I realised at some point that I was basically making a clone of the mail sorting mini game from Zelda: Wind Waker. Ah well. If it works it works.
So the aim of the game is simple. You flip over an envelope to reveal the stamp on the back. You match either the shape or colour of the stamp to one of the shelves and stick the letter in the right one. Simple.
Some things I was really pleased with:
- The cursor for selecting the shelf. This is such a simple thing and obvious thing for any programmer probably, but it worked out well so I'm unreasonably pleased. Instead of messing around modifying X/Y coordinates in a big if/else statement, I just stuck the positions in two one dimensional arrays, one for X one for Y. That meant I could just have the input shuffle through the arrays and not let it go over the length of each array. Simple and elegant.
- The aesthetics. I'm very much no artist, so its always nice when things turn out reasonably well. The slight depth effect to the shelves using a darker colour looks great (although if you look closely the shading implies that the left and right shelves are both angled away from you?). I was especially pleased with the flip effect on the letter. Pico8's SSPR function lets you set coordinates to draw on the sprite sheet and a width to draw. So if you make one of those bigger and one smaller at the same time, it closes in from both sides and gives the impression of 3D movement. Then when it's as narrow as it goes, you just swap out the sprite you're drawing for the other side of the letter and reexpand it outwards again!
- The cards. These were pretty much the last thing I did, so they were also done the latest at night. But I managed to think of a little thing that made them all individual (mostly based on people's interests). The B1-Battledroid and the Frogs were copied from sprites I found on the internet, since I'm very much not talented enough for that.
- The letter stacks were a bit of a pain to do, but they look great. The central stack reflects how many letters need to be sorted each round and goes down when you post a letter. A letter also appears in each hole you put one in. These are also persistent, so over the course of the game big stacks appear and it really gives a sense of progress. If you noticed that the letter colours on the shelf don't reflect the stamp colours, yeah I know. I REALLY tried hard to get that to work, but It just wasn't coming, and other things were more important and had to come first. Originally there was also coloured stripe along the bottom of each letter as well to reflect the stamp, but again it was a pain to implement. I really wanted to make that work, but its ultimately a minor aesthetic thing that doesn't take away much from the main look.
- I'm reticent to call attention to this, since ultimately it comes from the original Windwaker design, but the combination of colour AND shape on the envelope is a nice thing to proof against colour blindness. Good job Windwaker, I guess?
Some things I wasn't so happy about:
- I didn't have time to make a proper title screen. I was really happy with the one for my last game, Bebboware, so its really a shame. Ultimately though when 1AM on Christmas day rolls around, I just wanted to kick it out the door and be done. It happens.
- The tutorial isn't great. Its just one wall of text that also gives you the whole theme of the game. Reading big reams of text isn't the best in Pico8 because of the low resolution. Not to mention a big text dump just isn't a great way to tutorialise. There's also no button prompts once you're in the game. Again, screen real estate is very limited in Pico8, but if I were to do it over, I'd definitely make room for it. As it is now, you read some abstract controls then are thrown in to figure it out and have to restart the whole game to see them.
- There's a very small bug in the letter flipper. When you put a letter in a slot, it loads a new letter, but it doesn't reset the flip effect on the letter. So if you manage to sort a letter while its part way through the flip animation, it'll load a new letter, but paused half-way through the animation. Its not a major thing, if you hit the flip button, the animation just carries on, and its also very hard to do if you aren't trying. But *I* know its there. Its actually probably a pretty easy fix, but whatever, what's done is done.
- The code for this is very messy and disorganised. It's small enough that it doesn't matter and as far as I can tell its almost entirely bug free, but as usual this wouldn't fly if I were doing anything bigger or more complicated. LOTS of if/else. Very yikes.