My LD40 Post-Mortem: "Noah's Apartment" - A puzzle game about pets

Hi! I'm Gastric Sparrow and this is an unnecessarily detailed blogpost about my journey, goals and lessons from my Ludum Dare 40 entry, "Noah's Apartment". Hopefully there's something you can take away for your next game jam(s)!

banner.png

So many cute animals whose lives are in your hands!

The game's entry page:

https://ldjam.com/events/ludum-dare/40/noahs-apartment
(Please vote - I just need 6 more! #shameless)

Noah's Apartment is a puzzle game about animals, where the more pets you have, the harder it is to keep them from eating each other. It's inspired by that riddle where a farmer brings a wolf, a goat and a cabbage to a river, and has to paddle them all across, one at a time, without realizing that having a wolf is kinda weird.

Screen Shot 2017-12-04 at 8.12.58 pm.png

As this is only my first LD ever entered, second game jam ever finished, and third game ever made, I stumbled on planning. I failed to reconcile the Compo deadline with my weekend work schedule, and so ended up having to submit my game to the Jam. Lesson 1: Plan your time and follow that plan! It's all good in the end, though, as I'm not expecting a high score, just a finished game that hopefully brings someone joy for a minute.

So let's look at the timeline:

First day (Saturday 1PM AEDT)

I received the theme. The more you have, the worse it is.

Of course it was that.

Among the final themes, it was the one I had actually given some thought to beforehand, only because of how tough it was. I even discussed with my lab partner, who suggested making the game look worse as you go on (which is a unique idea in itself. But not this time, baby.). Even with the extra amount of thought, I struggled to find something workable and interesting for the better half of the day. I did some deconstruction of the theme, which is always fun to do:

Screen Shot 2017-12-06 at 8.57.09 pm.png

Lesson 2: If you're looking to create something striking, the first ideas are always the ones to toss out. Money, power, inventory, etc. - all of these will be done by many and clichéd by the time players reach your game. Unless of course you can do it with such depth and finesse, in which case, funnily enough, the concept wouldn't matter anyway. But I couldn't, so... on to the idea generator!

At a suggestion by @XavierEkkel (who hosted the xkcd game jam that started this passion for me), I used a random noun generator for inspiration, and got “friend”. Interesting. The more friends you have, the worse it is? Perfect game for introverts! But still what should I do? Make a platformer where you avoid friends? Should I make it turn based? What’s the goal? Just running away?

I then came up with a slightly better “Fame Simulator”, where the more FANS you have, the worse it is. Hah, topical truth. Players would fill in a Mad Libs kind of information sheet beforehand about who your character is, what they do, what they make, and the game would incorporate that into the dialogue. (An example: You’re a pop star making hit records for "Moonmen Studios". You have to network with executives and fellow creatives while weeding out the leeches and avoid the crazy fans.) You’d have parodies of the big social networks as determinators of fame. Sounds fun, but also a daunting amount of work. My few problems were: things like morale and creativity were hard to quantize, and it didn't seem like I could make it fun (except for only the funny dialogues). Lesson 3: Know your limits (and know that time is one of them).

After work, I came home beaten at midnight. Why does it have to be a late work day? I was too tired, but couldn’t fall asleep. I kept thinking about my Fame game. I read other people's thoughts about the theme online through Twitter and Discord. Hmm, true... Tetris kinda IS the original "The more you have, the worse it is". That was when I decided...

Scratch all of it, I’d do a cute animal game. Pet-tris!

I jotted down what I could think of before falling asleep...

Second day (Compo deadline)

I read back what I had written down the night before. There were mechanics, thematic, art ideas, all jumbled like the thoughts of a madman. And a madman I was. "Herbivores are bae", I had written.

My game would have a bunch of animals plausible as pets, and what they eat. The most important thing was establishing an inter-woven food chain. It could be played like Tetris, but technically opposite in its goal, which is to accumulate instead of getting rid of tiles. It will definitely look nice, with animals morphed into little square and rectangle tiles.

The devilish thing: Players would have to choose between letting the pets in and throwing them out (because they're too carnivorous), and I figured it would be funny to have a text scroll that detailed that animal's demise ("Paul the Lion went to the sewer to find shelter, and later died of hypothermia"). Sorry. (Not really)

Then I also thought of Agario, and how animals could become bigger as they eat. They would be circular with physics bodies, and collisions triggering the act of eating. (I went with this version, but without the growing big). I kinda wanted to stay away from the Tetris thing, which seems clichéd to me at the time. Now I know that may have been cooler.

[Note: I also came up with the META idea - which is the more you have on screen (e.g. score / info) the worse it is. For example: scores eat up your fighting space / range of view; or information on screen can be read by the enemy and used against you. It’s cool, original, and would definitely strike a chord with people. But it was too late to change. I kinda want to see that in action, and wish I had gone with that, but... Lesson 4: Sometimes in real life you gotta make a difficult choice. Just like in video games!]

Sooo I got down to the Pet-tris idea. The first things I did was the physics body with temporary sprites. Then I made the wall - Tetris-inspired again. I hunched over polishing the animal sprites, making them as cute as possible. Finally, let them collide, and voila! Basic mechanics in the bag!

Screen Shot 2017-12-03 at 12.26.52 pm.png

Beautiful assets.

Except it’s not. I had wanted to let players directionally shoot pets out of a cannon, but had trouble with global positions due to MacOS’s high DPI display interfering with Godot's pixel grid. In the end, like the mouse position, the idea went out of the window. And then there was the problem with timing, like how to determine how long the pet has been in the “win zone”. Sometimes other pets interfere, other times the pets’ polygon trigger the collision multiple times! (I didn’t solve it until it was pointed out by players). So much went wrong, but alas! before the day is over, I have most of the mechanics in place.

Lesson 5: Practice. Always have your main mechanics in the bag before you even start. Don't rush in expecting to finish it without knowing how. Cause it will go wrong.

I realised I didn’t have time: It was 2AM, and I have to submit in 10 hours. I needed sleep, but also I needed to polish, make the main menu and cover art, AND implement audio.

When I woke up, I had to go out for some important paperwork ordeal.

So the day started at 10AM, and I had work at 12. I frantically threw together audio, using a tutorial, but the art was incomplete. I didn't submit.

I'm out of the Compo.

~~Compo~~ Jam deadline

As I came home, I calmed myself down. Sure it was disappointing, but I still have the Jam deadline to go. It didn't matter what score I would get, because I'm making this for the love of games, I told myself. So I added art, fixed some physics problem, and added tutorial text. I was going to submit the jam version early, because in my heart, it’s a compo entry. I still finished a game, by myself, in 2 days, plus or minus.

Lesson 6: You'll have goals that you won't finish, but keep your head up. It's a learning opportunity.

Final thoughts

What I learnt through this magical experience was more than anything I could have asked for. Here's the lessons summed up for you guys, and some more thoughts:

  • Lesson 1: Have a plan and follow that plan. Always know what you're doing.
  • Lesson 2: Spend some extra time to mull on your ideas, your creativity will surprise you!
  • Lesson 3: Know your limits, and play to your strengths.
  • Lesson 4: Don't be afraid to kill your ideas. Knowing how to make difficult decisions will help your journey a lot.
  • Lesson 5: Prepare and practice.

AND ALSO:

  • Share. I didn’t talk much with the Discord / Twitter people, even when they were sharing ideas. I felt I was in no position to offer my "expertise" because it’s my first LD, but I also wanted my ideas to myself. In the end that hurt me more, as the only ideas I had were my own, and no one could give me feedback, and I couldn’t realise how bad some of the ideas I held on to were.
  • Change it up. Don't be afraid to get out of your comfort zone. It will make it more fun. I've never done jams, now I do. I've always done jams on my own, now... It's still fun, but I'm craving more. That’s why I’m planning to do a jam as a team next time with another Godot developer. Two heads must be better, right?

What's to come?

Well the game is still extremely expandable (with a A!) and I plan to add plenty more in the future! Some ideas off the top of my head:

  • Water level: With more fish instead of mammals. And also terrain specific areas in the house.
  • Cat fight: If dogs and cats touch each other, they swap places.

Keep in touch if you want to see progress: https://gastricsparrow.itch.io. Thanks for reading, and best of luck with your jam products!

Source: ldjam.com archive

Found a bug?
Tell us on Discord