Christmas Rush - Jame Gam 2022 - Postmortem



How did you hear about the competition? 

I had participated in the Christmas Jame Gam 2021 and saw they were putting it on again this year, so I joined.


What made you want to participate after the theme of "Christmas" and special item "Present" was announced? 

I'm not the most creative person, by far, so the biggest worry is always can I come up with a concept. They announced the theme early this year (Christmas) which I was not a fan of. I disagreed with announcing the theme early and I also wanted something constrained not wide open like Christmas. Regardless, I decided to try to come up with some ideas for each of the 3 options for the special item. 

I initially used Chatgpt to give me some ideas as I was drawing blanks. That bot is incredible and gave me 20 ideas. Even with that, I still wasn't coming up with anything. It wasn't looking good, until the Sunday before the Jam started, I came up with a decent concept for Christmas Tree (what I hoped for), and Present so I was just hoping they didn't chose Candy as I had nothing for it.

After briefly coming up with some ideas I decided to join.


Tell us about your team? 

I lucked out this year. Monday late afternoon I checked the team up channel one last time and saw Pedro was looking for a team. I contacted him but honestly didn't have any hope as artists are scooped up very quickly. To my surprise he was available and wanted to help.

I am a programmer by trade, been at it over 15 years (non-gamedev) and Pedro is a digital artist since 2017.


What is "Christmas Rush" about?

Christmas Rush is about coming up to the deadline to make all of the toys and wrap them on time and keeping the assembly line moving. You play as an elf who is tasked with keeping supplies at both work stations of the other elves. You are also tasked with preventing rogue elves from stealing all of the supplies from a workstation. 


 What are the core mechanics of the game? 

The core mechanics simply are to collect ears or ribbon, deliver it to the proper workstation and slap away any rogues that try to steal supplies. 


What went well during development?

The whole process went well in general I would say, there were some bumps of course but only 1 oh shit moment thinking we might not make it and that was Wednesday/Thursday (below). 

Using Unity as our choice of engine just amazed me again, I learn something huge every game I make and that was true again this time. The whole game was written as an Event Driven Architecture which makes everything decoupled. No systems are making cross system calls or anything of the sort, everything manages their own state and is updated based on events being broadcasted. I've done this for the last few games, so why do I mention it? The Unity portion came in later when it came time to add SFX, I didn't write a single line of code to implement sound effects into Christmas Rush. I simply added an additional Game Event Listener to our Audio Game Object and played the sound effect required based on existing event broadcasts. I couldn't believe how easy this was, I implemented all sound effects in about an hour for the whole game.

For me, the best thing of the whole Jam was that I didn't have to worry about the creation of the art, Pedro had it under control. I was a little nervous after day 1 as we only had the main character done but once Pedro got rolling, he hammered through the art and it looked awesome. Having a game that looks nice was a huge motivating factor for me, usually it's the opposite and I struggle to want to continue, but not Christmas Rush.


What was the most difficult thing during development?

Oh man, f***ing conveyor belts.


I knew what I did in the prototype wouldn't work in the real game but that is the purpose of prototyping, you can refine things when you go to actually convert features/functionality. Initially I was just shoehorning the conveyor belt system to work. It seemed to hold together the first few days but then late Wednesday we discovered a few pretty bad bugs. I tried to fix them Wednesday and just made things worse. Thursday morning, I realized the extent that the whole system was broken.....nothing really worked except the absolute happy path.

A bit of panic set in after discovering how broken the core game loop was and realizing these are game breaking bugs, and we are only 2 days away from submission. I mean, everything was broken. The conveyor would not stop under some circumstances, others it would stop and not move, sometimes refilling the 3rd elves station would allow him to work but not others. That is just a small list, there were about 4 other major issues all related to the conveyor belt and work systems.

It was the afternoon and after fighting with the system all morning (and Wednesday evening) I decided it was time to bite the bullet and rewrite the conveyor system. Like usual in software development, from the outside this seemed like a massive task but once I got into it, I rewrote the whole system in about an hour and a half. The conveyor belt, items, work stations etc were ALL tracking their own state of when the belt would start and stop. This was just stupid as they are all part of the same system and lead to a ton of timing bugs. I ripped it all out and only the conveyor belt now had the state and the other portions just asked if the belt was moving still or not and reacting to that or listening for the event broadcasts. Tadaa, almost all of the issues were resolved, there was an issue left with resource management but it became a simple fix (new event broadcast).

Another nasty bug I dealt with had to do with sprite flipping. Usually I just flip the x axis of the sprite component when the sprite is supposed to face in the other direction and this works great because my sprites are always single PNG files (or multiple frames). However, Pedro uses Photoshop, and you can import PSD files into Unity which allows you to keep the sprite as separate pieces, assemble them in the sprite editor and easily rig the sprite for animating. This was awesome. That being said, at first I needed to flip multiple sprites, not just one. This took a minute to write a component that would flip all of the sprites axis at once. However, because each portion of the sprite was a separate sprite and had their own pivot points, the sprite mangled itself when you tried to flip it. I pissed around with pivots for a bit then realized, I bet I can just flip the scale on the head transform and it will reverse it properly. I quickly commented out the earlier attempt, put one line in to flip the transform and boom, it worked.


What are some of the regrets you have about the version of the game that is your official competition submission?

Ah regrets, where would we be without them haha. I really wanted to get the online leaderboard into the competitions build but it was just too risky to put in at the end and jeopardize the stability. Other than that we had 1 other main mechanic I wanted to get in but didn't get to it. Each elf was going to have the ability to stop the line in need of medical attention so you would have to fetch the medic kit and take it to that elf before the line would start again. This would've added another level of difficulty but I think that is ok.


Final thoughts on the game? 

I am extremely thrilled with how the game turned out. I'd never made a resource management game and I knew going in that was the style of game I was most likely making based on the ideas I had come up with beforehand.

I made a major change to the rogues behaviour late Friday where instead of stealing one item he stole all of them from a workstation. This change was probably the best decision made throughout the whole development process. This made the rogues extremely relevant and you had to pay attention to them. On top of that, it made the game a lot more fun and super pleasing to slap the bastards away. Before this change the game wasn't very fun and after it, I wasn't sure how fun it was still. Then the ratings came in, people LOVED slapping the rogues and after judgement, the game actually pulled #12 for gameplay.

The game took me 66.5 hours to make, mostly spent in Unity doing layout work. Programming was only 15.5 hours of that. I don't believe Pedro tracked his time but he worked like a dog as well through the week.

I hope you enjoyed this post mortem as well as the daily dev logs while building the game. I also hope you check out the game and let me know your feedback. You can play here.


Files

Christmas-Rush-StandaloneLinux64.zip 35 MB
Dec 24, 2022
Christmas-Rush-StandaloneOSX.zip 44 MB
Dec 24, 2022
Christmas-Rush-StandaloneWindows64.zip 36 MB
Dec 24, 2022

Get Christmas Rush

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

(+1)

awesome postmortem bro! very nice, the results are incredible! thank you once again for the partnership!