Sorted! Our MiniJam 62 Entry. How did it go?

Waking up on the Friday of the Game Jam always got me thinking. It’s a long process for me – getting out of bed, checking what the limitation is, showering, eating a bit of breakfast and drinking a cooled cup of tea, all while thinking about what we were going to make that weekend. It gets me going, but if I don’t get an idea in that time it can be quite demotivating.

Fortunately, I didn’t have to think too long – checking our Discord I see Leon has already gotten an idea, and one I think would work really well. Royal Mail Overcooked. Brilliant! Instantly, ideas are sparking for how I want it to look, feel, sound. How it should be fast-paced all the time, with the player rushing about all over the place. Maybe we could incorporate local multiplayer… I think we need a bit of experience in that department first, though. I sat down, ready to get on with the game.

“What version of Unity do you want to use?” asks Leon.

“Shall we give 2020 a go?” I say.

That decision almost cost us…

Day One was a standard and straightforward for us. I designed a character that would be simple to animate and most of the objects the player would interact with – bins, boxes, conveyor belts, and box holders – most of which were made with Unity’s 9Slice sprites in mind. Leon got to work on player movement, box controlling and box spawning, as well as tallying up how many boxes are in each bin. 

We implemented a limit to how many boxes could spawn at once, and a limit to how many could be on a belt at any given time, which stopped an endless supply from being spawned, and that in turn helped in the long run to save us from lag issues. Hooray for future-proofing! Then it was onto the box holders, which acted as both an obstacle for the player and a way to put down a box when you need to empty a bin. We didn’t want the player to put a box down anywhere, as 1) that would confuse the code written, and 2) we wanted the players to have a bit of a challenge. Pretty early on into making levels we realised that if all box holders were full and the player was holding something, they wouldn’t be able to drop what they were carrying on the floor and would be stuck, so we also created a bin; a sort of ‘last resort’ option. 

Day One ends pretty satisfactorily.

Day Two begins, and I set to work on UI. Leon had found some pixel fonts from Kenney (whose artwork is always a big inspiration and help), and we’d settled on his Mini font. Again, I made the UI sprites 9Slice, and honestly it’s never been easier to do UI with that method. In other MiniJams, I’d always struggle with UI, but a few days prior to this Jam I’d found out about 9Slice, and I’m surprised I didn’t know about it sooner. Anyways, I got the buttons working, and made the menus in the usual Dyludium style – Game Logo at the top, buttons underneath.

Leon got boxes properly sitting on the box holders, as well as implemented the disposal properly (which I kept calling a bin, despite the box bins being bins… God this is confusing.) We initially had the idea of having a box-splitter, the idea there being that the conveyor belt could spawn a Double Box – two boxes stuck together – and the player would have to saw them apart. However, we were stumped on that for nearly an hour before we decided to scrap the idea. No big loss, though, as the levels were next on the list for me to do. 

My idea was that I wanted each level to get more and more hectic, with more things going on for the player to keep track of. But given the Double Box idea didn’t pan out, I thought it best to just randomise the layout of each level. One level has the conveyor at the bottom, another at the top, and another in the middle. In one level the bins might all be on one wall, and another time in each corner. I think I achieved that goal fairly easily. 

Leon got working on some main menu music, going with a chiptune style. The first draft was pretty nice, and only got better with improvement. Tomorrow was going to be the finishing touches, ironing out bugs and getting some music in. Day Three was shaping up to be the easiest day going…

Day Three started terribly. I boot up my PC to start work on a gif to share on social medias (follow us on Twitter and Facebook!) and as I finish up the gif and start exporting it… my computer dies on me. Fully. I go to switch it back on, and it boots up… crash. Boot up, crash, boot up, crash, a couple of whacks, boot up, crash. 

Bugger.

I relented, and left it for a few hours, and asked Leon to make a gif instead. He obliged, and we actually got one out! Hooray!

Leon started work on sound effects and more music, as well as implementing an AudioManager. When my computer started behaving again, I began work on a Pause Screen, accessible any time during play. It was a fairly simple process – assigning DontDestroyOnLoad to a Canvas. And that was that! Or so I hoped. Then we needed an End Screen, which I’d neglected to do for a day, so I set out to work on that. I tried doing it in each level first, then opted to also add the End Screen to DDoL too, to be more efficient. And then that required restructuring of each levels Game and Stat Managers, by adding the both of them to DDoL, and then we made variables static so the Level Manager in each level could interact with them and oh boy did that joint effort take a lot of time.

By the end of all this kerfuffle, it was about 9 o’clock at night – 6 hours before the end of the jam. Polish time! Hopefully when we’d Finnished this last bit, we could submit the game to the jam. There was no point Russian… I’ll stop.

On Day One, I’d made various sprites for the bins to show diegetically how full a bin was. I just hadn’t gotten around to implementing it yet. Sorted. Haha. Leon spotted a bug on Level 2 and 3 with packages not spawning, so fixed those. He then stopped the player moving when the end screen played. Super. Then the End Screen started popping up twice. Fixed. Now it’s not appearing… great. That was fixed too. The multiplier was giving out a long floating point number, so Leon rounded that out. And… done! Game fully polished and fully finished. Now it’s just time for Leon to export, and me to make a bunch of art assets for Itch and Social Media. It was smooth sailing from here.

Then we hit a rocky patch we didn’t see. Leon uploaded his zip file to Itch. A 1366×768 box loaded, and nothing else. No Unity symbol, nothing, nada. Time was ticking, we only had 2 hours or so left. Leon rebuilt the game, changing a few export settings, and uploaded. Now the Unity symbol appeared, but got stuck at 90%. It didn’t finish loading. It was like God himself had intervened to cause us (and only us) trouble. Pretty devilish, if you ask me. I tried resetting some settings I had changed earlier in Day One, to see if that would fix it. Nothing. Oh no.

One hour left.

I deleted some leftover files from Unity, Leon tried clicking different tick boxes. No change, still stuck at 90%. 

The clock was nearing 3.

A thread I’d found on the Unity forums said disabling something in a dropdown menu might fix it. Or it could be a tick box in the same dropdown menu that is only present in 2020 Unity. One of the two. Leon tried the first solution. Nope, not working. The tick box was unchecked, the game was rebuilt. The 1366×768 box loaded. Then the Unity symbol. Would it get stuck? Would we not be able to enter? I shut my eyes, half afraid, half asleep.

Du. du-d-d-du du du DU du.

It worked! Celebrations all round! Crack out the drinks! Fantastic! Finally! Finished!

What a rough experience. Lets just give the game a test, and make sure it’s all functioni… oh no. The audio keeps playing after the level is finished, and it hurts the ears a lot. Ouch. 

We settled for just deleting the AudioManager when it returned to the Main Menu and called it a night.

And that was our experience with MiniJam 62. Hectic, a bit like Sorted! really. 

In conclusion, we’ve taken a lot away from the experience. Test – constantly. Future-proof – or else.

Oh, and Unity 2020 is a right bugger.

Leave a comment

Design a site like this with WordPress.com
Get started