Wham, Bam, (I kind of) made some Game Jams!
Hello!
I hope we’re all well - it’s officially been (over) a month of starting my Astra Games Fellowship, which means it’s time for an update!
And what a month it’s been…
These past four(ish) weeks; I’ve wrestled with two different game engines, attempted to make x4 (well… x3) games and had to face the reality of what getting back into bad sleeping habits means when you have twin two year olds.
(I also to my horror accidentally became an AI Tech Bro, but we’ll get to that…)
First, a recap: At the beginning of the fellowship, the suggested structure was to do weekly game jams for the first four weeks, with the idea of loosening up and getting out ideas.
Me being me, I foolishly had ridiculously high expectations of myself to produce four charming, distinct games that I could show off.
You would think after some years of working in games I would have learnt from my hubris, but what is life if not just constant opportunities to learn (the same lessons over and over again).
Week One: Game Jam Theme “Fairy Tales” - Game: “Jack and the Beans”
So from the video above you can see I “sort of” made a game in the first week.
The theme was “Fairy Tales” and so I decided to take my “Merchant March” concept (a puzzle-trading game) and give it a fairy tale makeover with Jack & the Beanstalk. You play Jack and you’re trying to sell your pig for money at the market, but you have to first navigate a small sequence of giving different people what they want to progress.
The puzzle was planned as follows:
The core mechanic is picking up items. You pick up your pig and talk to the farmer, but the farmer tells you he can’t talk business until he finds paint for his sign.
So you go next to the artist for paint, but the artist needs an interesting life model, and your pig is sort-of interesting, but not interesting enough.
So then you go to the tailor to dress up your pig, but the tailor needs some new inspiration before they can think about dressing up your pig.
There is a bystander who just loves seeing people be compassionate, talk to him while holding your pig and he’ll give you a nicely knitted hankerchief which can inspire the Tailor, beginning the trading sequence.
The punchline at the end, when you give the paint to the farmer, is that he paints his sign to say something like “Buying no more pigs” or “Vegetarian Farmer” etc. This would of course be much to Jack’s dismay, but the farmer would give you some beans for your trouble and that would be the end.
I knew this puzzle was passable at best, but I just really wanted to focus on making something function. I wanted to prove that I could, after some time away, make a game by myself.
I tried my hand at Construct3, which is a web based game engine known for its welcoming visual scripting. And true to its word, it’s quite easy to get going, having some set based behaviours you can chuck on a sprite, allowing things to move and animate quickly.
But adding in more complexity got a bit trickier. I followed along with some really helpful tutorials to build my knowledge base - but the technical feat I needed to pull off was making all the characters respond appropriately to different items being held by the player. This meant using some of Construct’s coding language -JSON.
I nearly cracked it, but as you can see in the video, the labels and dialogue kept getting mixed up. I tried sifting through the forums and learning resources for Construct, but I found myself flailing to find relevant examples that I could use to unstuck myself.
Ultimately, with the plan to stick to the jam limit (and stick by my no work on the weekend policy) I drew a line under the game by Friday evening. It stuck in my throat a little having to admit defeat at the game only half functioning, especially when I could see the solution at the other end of the tunnel.
But I decided instead to look at the progress I made as a measure of success - I had never used Construct before, but had now opened up another potential tool to try and make games in. Even if the game was fundamentally broken, it was still satisfying to see my characters exist in a digital space again.
Week Two: Game Jam Theme “Making an existing game more Thinky” -Game: “Family Dinner”
After not quite finishing my game on the first week, I was more determined than ever to make a finished game on the second. The theme was to take an existing game with non-”thinky” mechanics and try to add “thinky” qualities to it.
At the back of my mind I was thinking that I’ve got an idea I’ve been wanting to explore that plays with the conceit of “Yes, Your Grace” but adds in more puzzle/deduction elements. However it didn’t take long to decide that it was too big to scope for a week, so instead I focused on a “Reigns”-like, as they share an adjacent type of game experience. I wanted to test if giving some blanket based information at the beginning before assigning cards left or right could help make those decisions feel more impactful.
I had also just watched the second season of The Bear (which is really good) and was particularly taken by the long form episode that involves a disastrous family dinner. This inspired my premise - you as the player would be going to your girlfriend’s family dinner. Before joining, your girlfriend offloads a bunch of information to help you navigate around the social landmines that exist in her families dynamic.
Similar to what I hope would be in real life, you would then need to try and hold this information in your mind and wield it effectively when being questioned by the family. The objective is simple, try to give the non-aggravating answers to survive the dinner, if you fail then the dinner is ruined.
So I soon got to work trying to implement it, this time focusing more on functionality rather than worrying about the art or writing until I was sure the game could actually run.
I was greatly helped by this “How to make reigns in unity” which I was able to follow along at quite some pace to get the basic functions working, like loading a deck of cards and moving it left or right to answer.
Once I had the main body of the game looking like it was working, I begun to write the cast of characters for this fictional family, quickly mapping out their idiosyncrasies to use as puzzle fodder and adding in some art to make the experience more believable.
However I hit a snag, or maybe it’s fair to say I was being too ambitious. I had the basic functionality working, but I wanted a little bit more complexity to allow the deck of cards to only be shown once, and also to have two decks of cards, so I could pace the content more appropriately.
The tutorial series I was following ended on a cliffhanger and I was struggling to find other resources that would synchronise with what I had so far.
So this is where I fell to the dark side (I will come back to reconcile with this later I promise). Despite my ill-feelings towards the gold rush of AI, especially as an artist and the way it scrapes artists’ work, I had heard that it was actually really good for coding (I was naive I know, again I’ll return to this).
Which means I tried out with Chat GPT to help get the last bit of code I needed to get the game working the way I wanted to and to my surprise, (even though it wasn’t quite as straightforward as I expected) I managed to get the code working to get the game to a somewhat finished state.
To top it off I added the song “Lotus Light” by Tim Hecker to just bring a bit of tension to the ordeal.
It did feel good to have a game that allowed you to play from start to finish. The question became, in the pursuit of trying to make a “polished” experience, was I undercutting the depth of the game design? I liked this concept a lot, but it did feel like I was only scratching the surface of what it could be - maybe it’s something I’ll return to in some sense, but for now I liked the the satisfaction of putting a full stop on it.
You can try out the game for yourself here.
Week Three: Game Jam Theme “Make a game around a Verb” Kit and Oran’s Second Birthday and Family visiting.
The third week I always knew was going to be tricky as my twin sons, Oran and Kit, were turning two and I had family coming to visit during the week. Alongside other responsibilities, I had already admitted to myself that it was very unlikely to make a game that week.
That didn’t stop me having a little poke though. I’m lucky enough to have a playdate (although not luckily enough to play it as much as I like). And I thought it would be fun to make something for it as it has such an accessible route to putting your own games to play.
The game jam theme was making a game around a verb (such a good theme) so I focused mine on crying, which was linking back to a very old game jam idea: Sad Train Man Game.
The plan was to make a game about a character who’s whole interaction with the world involved crying in it.
However as I soon found out, one afternoon was NOT enough time to grapple with the playdate. Instead I ended up with this screenshot of two of my characers standing in a desolate place with only the ghost of what it could be.
While taking a momentary pause, I realised I was feeling quite fatigued and was beginning to realise that by pushing my sleeping windows back (sometimes staying up an extra hour or so), I was starting to encroach on my energy levels (which as I type this out sounds incredibly obvious, but it’s not always so easy to have self awareness at the forefront of your mind).
Crunch is something I abhorrently disagree with when used in an industry/commercial setting, but if I’m being honest, when taken into a personal context, I would be hard pressed to admit that I don’t like pushing myself up against the limits. What I’m still not quite factoring into my time management is that my kids can wake up anywhere between 5am (on a REALLY BAD, but luckily rare morning) and 6.30am(ish) on average. If I’m not allowing myself enough sleep, over time I’m chipping away at my reserves. So I took this as a wake up call (actively encouraged by Daisy, my wife) to put rigid parameters in to make sure I’m sleeping enough, regardless of my enthusiasm for what I’m working on.
I took the rest of the week off to enjoy seeing family and enjoy my kids’ birthday (and try to circumvent how excited they got about seeing matches make fire for the first time…)
Week Four: Game Jam Theme “Everyday Things” - Game: “Wax Heads”
Returning to game-making mode with the fourth week, I wanted to start pivoting into considering one of my “bigger” ideas. The theme of “everday things” was a nice nudge to embrace working on “Wax Heads”.
Wax Heads is a game idea of mine set in a record shop, taking inspiration from the likes of Papers Please, Coffee Talk, Wilmots Warehouse and Strange Horticulture.
However I was convinced that to determine whether this game could be viable, I needed to have a rough set up in unity with the basic functions of navigation in place first.
Fast forward to me spending a couple of days disappearing down a Chat GPT rabbit hole, using previous concept art to build out a scene and spending way too much time trying to figure out how to have my sliding record shelves have stopping points (so you don’t slide the records off the screen into oblivion).
The result was this, which as a (slowly coming to be) proof of concept was exciting, in a look-at-it-move dopamine, kind of way.
What I didn’t appreciate was that I was effectively just spinning wheels and avoiding the real question of what this game is.
Fortunately I had a couple of well timed chats with mentors from Astra who helped me to have two distinctive revelations.
The first was, I don’t need to worry about the coding or programming functionality right now. These are ultimately not necessary as a means to working out if my game idea is actually good or not, for the game I want to make. I could do other means like paper prototypes or other cheap alternatives to actually work out, if there is something here.
The second revelation was about my naive interpretation of using Chat GPT as a means to generate code. Now as a non-programmer, I was very much addicted to the fast results I was seeing. However I learnt that the data which Chat GPT is able to build all of that code from “thin air” is actually all from code that has been scraped from users on GitHub.
My stomach felt queasy, of course Chat GPT wasn’t magically just inventing solutions to my problems, and of course there must have been a real labour cost to my sudden ease of use. There was no accusation or judgement levied at me for using it, but the opening of my eyes to how the “sausage” was made put me at a decisive choice, knowing now what you know, how do you want to proceed?
Naturally I felt a little deflated, I had been excited by the shiny moving parts that were sitting in my unity project and as someone who can be, at the best of times, quite self-righteous when discussing the value of labour, it felt embarassing to admit how easily I was taken in by the allure of AI’s answers to my gaps of knowledge.
Taking a minute, I switched off and played through some games that I had bought to help inspire me (this dev post is already way too long so I’ll just list them but avoid giving all the specific inspirational notes I had about them for the moment):
Funnily enough taking the time to just play some games worked, I felt galvanised with new ideas! Alongside a very helpful and illuminating call with one of my peers on the fellowship, who is more versed in game design than me, I suddenly had found a new confidence in trying to present the crux of what Wax Heads is.
At its core, Wax Heads is a game about social deduction, using clues of the environment, of records, of the physical appearence and dialogue of your customers to determine what is the right record for them.
It dawned on me that I could implement a crude version of this in Twine - Twine was something I knew how to use!
And so in a panic I set out to make a mini mock-up of 3 puzzles over the course of a day and a half, just in time for the jam’s end.
Having a rough structure of the puzzles exist, in a format that could be accessed by others, was both gratifying and exciting!
Cautiously I had to take stock that this was only a first dip into making this idea work, but I could already see ways to refine and stretch what I had made, and the initial feedback seemed to be promising.
The version of this is now up to play on my itch.io page here.
(I’m very happy for any feedback from substackers!)
So, What’s next
With that flush of excitement, I’m now expanding on Wax Heads. The fellowship program now suggests spending two weeks per project, so I’m working over this week and next to build out a deeper experience within twine that tests out more flavours of this puzzle mechanic, hopefully giving me more validation that there is something here worth pursuing.
In the next update I’ll go into more detail of how I’m planning out these puzzles.
My earnest hope is that I have something that feels concrete enough to pursue even further by the end of next Friday.
And to end on, having the right music to listen to while I work is super important to me, so I thought it would be fun each month to end with what was on my listening rotation as a palate cleanser.
Jonny Nash - Point of Entry
Being Dead - When Horses Would Run
Horsegirl - Visions of Modern Practice
Kelly Lee Owens - Kelly Lee Owens
Burial - Unknown Summer
Satsuki Shibano - Wave Notation 3: Erik Satie 1984
Bicep - Bicep
Kamasi Washington - Heaven and Earth
(Also - this dev post turned out SUPER long, not sure how people will feel about that, I imagine future updates will be more streamlined because they will feature less games all at once? We’ll see…)
Until next time!
Murray