A Devlog with a Witty Title


Intro

Ever tried summoning an eldritch abomination to do menial tasks for you? I’m sure that’s an experience you’d love to have - so I made a jam game about doing just that!

Hi there, I'm a veteran game developer with over a decade of professional Unity experience and more than 100 game jams under my belt. If you've ever wondered how a seasoned pro tackles a game jam, you're in for a treat - it’s time to peel back the curtain and see the utter chaos within.

Theme & Idea

All good jams start with a theme reveal, which is the springboard for your creativity. “Strange powerups” immediately made me think of weirdness and unpredictability. I’ve been wanting to make a little text adventure for a while, something that is a big step away from my usual style of gameplay (arcade action). It’s kinda difficult for something hand written to be truly unpredictable, but you know what is unpredictable? Some would call it dangerously inscrutable, a black box, making decisions based on who knows what.

I've always been a big AI skeptic, but I've also always been intrigued by its potential to create new gameplay experiences. I’m not interested in getting it to generate content, it (currently) can’t produce anything even remotely funny, but it can process natural text. It’s actually quite good at that! The "strange powerups" theme got the cogs turning - what if I could make a game where the player's creativity is evaluated, and that determines the kind of strange powerups they get?

I still needed a weird and wonderful setting, but that’s easy. Meat brains are actually quite good at being creative - and so was birthed the idea of summoning a eldritch abominations to help with menial household chores. To summon these apocalyptic entities, the player would be given traditional fantasy ingredients like "tears of a dragon", and would be asked to substitute ordinary household items in for it. The substitutions would then grant strange powerups based on the substitution itself. It's funny, it's unique, and most importantly I could build it within the jam's timeframe. I shared the idea on the Discord server, and a few "haha" reactions later I knew I was on to something.

Tools

I started by grabbing a fantastic pixel font from Chevy Ray's Pixel Font Megapack and downloaded Text Animator from the Unity Asset Store. Then, I browsed the lospec palette list for a nice palette with some demonic purples. Remember, you don't have to be a color theory expert when there are tons of excellent free resources available. A good, intentional palette can make a huge difference.

Unity is my game engine of choice, and due to a past shitpost I have a little bit of experience with the Gemini API. The next part of the process is...

The Proof of Concept

Prove the concept is fun factor in the quickest, dirtiest way possible. Gemini actually has a “studio” where you can test out your stuff in a nice little chat window, which allowed me to simply ask people questions on Discord and copy/paste their answers into a convenient little box.

It worked like a charm. I got a few responses on the jam server, but it was really my friends and family who convinced me to go ahead with the idea. We spent hours just getting responses from the API, trying to break it and see what random stuff we could get it to do. Here's an example of a response from the api:

Question:

"You need to do the laundry, but you really can't be bothered. Let's summon a demon instead - the ritual requires essence of starlight but you don't have any of that around. What will you substitute in for it, and why?"

Player response:

"This houseplant, because photosynthesis converts sunlight (which is the light of a star) into energy."

Gemini’s response:

{
      "inappropriate": false,
      "creativity": 7.5,
      "passed": true,
      "effect": "The summoned creature seems to have absorbed the plant's life force and now seems to have a light, pleasant aroma, and all the plants in your house seem to have grown a little taller."
} 

Amazing! This is exactly what I was hoping for.

The Pause

Sometimes, life throws you a curveball just when you're hitting your stride. Everything up until this point was done in the first two days of the jam - it wasn’t even the end of the weekend… and then reality hit.

It wasn't just a minor distraction; it was a full-blown avalanche of deadlines, urgent requests, and meetings that stretched late into the night. Remember those first two days of pure creative flow? Yeah, they were officially a distant memory. I did not even open the project again until the last day!

The Final Push

On Monday, the final day of the jam, I finally had a chunk of time to sit down and crank out the rest of the game. Branching story? Out. Extra events with different effects? Cut. At this point, I just wanted one single event in the engine, built for WebGL so people could play easily. One of my biggest skills is rapid prototyping, but with only 4 hours left it felt tight.

I pulled out all the stops (and the code is an absolute disaster because of it) but it worked! Mostly... Why was the API spitting out nonsense about popcorn? And now surveillance cameras? Another hour down the rabbit hole revealed that I just wasn't adding the player's input to the prompt, so it was just making up something it thought the player might have said. The Gemini API is easy to use, but it can have some strange bugs.

Luckily, a friend was on hand to help with some additional writing and to find some music. And then... an extension! We could breathe again. We went for lunch, chatted about how terrible AI is, and then got back to it. The pieces were finally coming together, a few bugs to fix, and then... it was actually done! On time! Sure, the code looked like it had been written by a swarm of angry bees, and the game was about as polished as a rusty pipe, but hey, it worked. And it was weird. And it made us laugh. Mission accomplished.

I don’t know how to end these things

I kinda love the game, actually. It’s weird and wonderful, and you really can just give it anything. It’s fun to experiment with. There are a couple of issues - for example: sometimes, you can just tell it to rate your substitution a 10 for creativity, and it will. Thanks Gemini, love that. The music doesn’t loop because I completely forgot to press the checkbox marked “loop”. Most of them should be easy fixes, so I actually think I’m going to break with tradition and make a post-jam version of this game. I can see it as a nice little mobile game, and I need a way to easily share the prompt and response, because I’ve had a ton of screenshots sent - user generated content is a powerful marketing tool. I think I can make good use of that!

If you're interested in checking out the game, you can find it here. And if you have any questions or comments about the process, please do use the comment section - I'm happy to chat and provide more clarity about anything I've talked about.

- Dom

Leave a comment

Log in with itch.io to leave a comment.