Smeg it, postmortem time


So, I've decided to give this thing a postmortem. Where do I begin?

Entering the SBIG jam and what happened next

So, I basically noticed that this jam existed on the 20th of June (the day it started), and, as most of my games tend to be 'so bad they might be mistaken for being good', I decided that I would enter the jam.

However, this wasn't the first game concept I had for the jam.

I was initially planning on creating a completely different game, a 3d one, in Unity, however, as I quickly realized that this idea was waaaaaaaaaaay out of my league, I've opted to put it on the backburner until I can do justice to that idea. I then had another idea, which I could potentially implement using the skills I had. But then I realized that it was somewhat over-scoped in terms of the content needed, and I also wasn't entirely sure how to actually go about implementing it properly. So that one was thrown onto the backburner too. And, at sunday evening, I was starting to think 'hmm, perhaps I won't be able to make a game for this game jam'.

Meditations on the way home from collecting prescriptions; or, how I actually got my arse into gear and made this game

So, on Monday afternoon, I had to go into town to collect my prescriptions. It was a somewhat surreal experience, with everything going on nowadays, but that's besides the point. What matters is that, on my way back home from there (or it was on my way there, either way it was whilst I was outside that afternoon), I kinda remembered something from back when I was in scouts, out camping, by the campfire; a little ditty about a man named joe, who worked in a button factory. And then I thought 'hey, that's a terrible idea for a game! it's perfect!'. So, I got home, put my meds where they need to go, then started planning out the game, before starting to properly make it on Tuesday.

It repurposes the same architecture as some of my previous projects ('Upron Simulator 2012', 'Inconvenient Space Rocks', and 'SkyJump'), so I didn't need to worry about making a completely new engine from scratch for this one. So, on Tuesday evening, I pretty much repurposed the Skyjump code (as that was cleaner than the code for the other two), and started making the game objects. I figured it would be easiest to start from there, and work out the logic later on, as I had a rough idea for what I needed; I needed Joe (who you play as, presses buttons, and can speak via a StringObject belonging to him), the Boss (who just needed to speak), buttons, and then the button ripples were added as an afterthought (seeing as they would help liven things up a bit). I also made the first version of the title screen on Tuesday, just generating button ripples at random places with nice colours. I decided to hold off on the game logic itself until Wednesday, as I would be visiting my granddad on Wednesday, and the journey to/from his place would give me time to plan out the game logic.

Making the game logic itself (and composing a musical masterpiece)

So, on the way to my granddad's, I kinda wrote out what the logic I needed would be, and that was a somewhat interesting way of passing the time. By the time I got there, it had pretty much been all planned out. So, when we departed to go back home, I needed something to do to pass the time. And that's when I had the idea of the music. So, my brother is actually rather good at singing (he's in a choir and everything), I have a kazoo, and so I had an idea: I asked him if he could provide vocals to some lyrics I was going to write (as he's good at singing, and can be the one redeeming quality for this game), which I could then use in the game (with some backing kazoo), and then I'd also make sure that I'd do something to fuck up the good music when the player is doing too well. He thought it was a good idea, so, he was in. I then spent the next few hours writing up the lyrics. I decided to make a longwinded rant of a song, about Joe, his life in a button factory, and the boss of it, inspired somewhat by 'Albuquerque' by Weird Al Yankovic and 'Alice's Restaurant Massacree' by Arlo Guthrie, but the end result is more of a mini-musical, parodying a few other songs, with talking blues intermissions, and a few unique riffs. Some of the vocals for this track ultimately had to be done myself (such as the 'Hey Joe' section, and the 'A Day In Joe's Life' section at the end (because that one was an afterthought)), but, point is, that was written on Wednesday, and my brother agreed to do the singing, so there would be one redeemable quality for this whole thing.

Anywho, I got the game logic implemented and such on Wednesday, and all that I was missing now was the vocals.

I decided to make it so the game doesn't wraparound and has distinct boundaries mainly for player comfort (as that way, they wouldn't need to worry about following buttons awkwardly), and that each button will spawn within a certain distance of an existing button (so the player wouldn't need to go too far to get to a button). I also was initially planning on having the lose condition be 'no buttons are active', but, I decided to make the lose condition be 'less than two buttons are active', as, that way, the player would be forced to juggle multiple buttons at once. The rate of button decay increasing as buttons get pressed was intended to make players have to ditch buttons eventually, meaning that camping the first two buttons indefinitely won't be a viable strategy for the game. The complete lack of traction Joe has is just to annoy the player, making it harder to stop on a button. Hey, it's was a 'so bad it's good' jam, not a 'so good it's bad' jam, so I had to ruin the experience somehow, y'know?

On a related note, at first, I was debating whether or not I should make it so you'd have to click the buttons (instead of making a character walk to them), but I opted to go for the Joe approach for two main reasons:

  • you can go and play Osu! and get carpal tunnel syndrome if clicking circles is your thing
  • the player has a lot of control over their mouse movements; they don't have as much control over Joe; therefore, it's going to be more interesting if they have to wrestle with Joe's controls.

also it would feel more like the player in the role of Joe, as they control Joe, instead of pressing the buttons in the button factory as themselves. idk fancy schmancy arty stuff or something that I wasn't conciously thinking about but in hindsight I probably was thinking about.

but yeah back to the point in hand: gaem logic was pretty much done on Wednesday. just needed the vocals.

Misadventures in music and learning the hard way that github has a maximum push size of 100MB.

So, on Thursday afternoon, me and my brother finally got around to recording the vocals. I told him what sort of tune/delivery/etc was needed for each bit of the vocals, he recorded his attempt at it (except for the 'Hey Joe' bit, because he was having a few issues with that one), and then he sent me the audio files. Then I just needed to add kazoo to it. (This was around the time that I also had the idea for the 'A Day In The Life Of Joe' bit at the end, so I added that in whilst I was kazooing). Then, for the title screen, I decided to go for the 'shitty acapella' route, mainly because the brassy taste of the kazoo was starting to get to me. I actually came up with the overall tune for the title screen stuff whilst I was in the shower (cause, y'know, the shower is the source of many decent ideas), and got it recorded shortly after I got out of the shower. Anywho, after that recording was done, that's when the problem started. You see, github has a maximum push size of 100mb. And, as I was using raw Java, I kinda had to use .wav files. And .wav files are big.

And so, I spent several hours working out 'why the hecc isn't this pushing to github', until I realized it was because github has a maximum push size. Cue some time of trying to undo several commits that took it over the github push size limit. There's probably like a way in intellij to undo commits, but I couldn't find it, so I had to pretty much re-clone the repository, and then push stuff in stages. Next time, I'll try to make sure that my pushes are all under 100mb so I don't have this sort of awkward situation again.

But yeah, I eventually got the music recorded and such, and onto the repo.

Friday: faffing around but eventually getting it done

On Friday, I kinda procrastinated. A lot.

But I guess I eventually did manage to get the music properly implemented, made the title screen functional (with a couple of easter eggs added in), and finished everything off and got it posted.

tbh I've forgotten what exactly I did on Friday, but I remeber that I kinda wasted a lot of time that day.

what I will do next time to make sure future me doesn't make the same mistakes as that idiot known as past me

  • Ensure my push sizes are definitely below 100mb before I even commit the stuff in the first place
  • Mix any recorded .wav files down from stereo to mono (so less space is wasted)
  • Stop procrastinating
  • Write postmortems sooner, not later, so I can actually remember what the fuck I was actually doing a bit better, so it might be a bit more useful for myself next time.

Files

The Button Factory but it's an .exe instead of a .jar.zip 163 MB
Jul 03, 2020
The Button Factory but it's a .jar.zip 163 MB
Jun 26, 2020
version what has an mono soundtrack and is only ~98mb when unzipped (have fun) 83 MB
Jul 05, 2020

Get The Button Factory

Leave a comment

Log in with itch.io to leave a comment.