Howdy friends, it’s @TheWzzard, and it’s Post-Mortem time. My entry is for the Jam and I did it solo, handling all the code, sound effects, music, and a bit of sprite editing / recoloring!
First let me say I was very nervous going into the Jam.
- This was my first Jam of any kind.
- This was basically my third game ever.
- I didn’t do any warm-up which wouldn’t have been a huge problem but…
- The game project I’ve been working on for the past 6 months only takes input from IRC, is AI driven, and has procedural levels, so no physics, no direct input, and no level design.
I also decided beforehand that I did not want to make a game that revolved around violence, thinking my entry could stand out since FIGHTING STUFF is what many (most?) games are about. So when the theme was announced my heart sank. Weapon! Anything but that! How was I going to make a game that didn’t involve violence while keeping the theme?
Nothing came to me immediately but I knew that there was a lot of work ahead of me. I needed music, sound effects, input, an engine, and some kind of interface. So I started with the music and the rest hopefully would become apparent. I didn’t actually know what my gameplay would be like until Saturday!
Overall my experience was AWESOME! Such a rush!
What is High Fiverer?
The final product ended up a combo-chaining game where the player high fives lonely skeletons to make friends. It is fast, colorful, and challenging, with 13 levels and a very short combo timer. The weapon? Friendship also high fives! As you make friends they go and do some high fiving of their own, possibly making new friends who might also go and make some friends and so on and so on! Basically it’s high fives all the way down. For Friendship!
You can check out High Fiverer: The High Fivening here!
High FIverer in Motion!
- GameMaker: Studio
- Ableton Live
Breakdown of the work (from what I can remember)
- Friday – Most of the music and basic top-down engine, still not certain what the gameplay would be. At this point I had a character that could move in four directions and throw candy at skeletons to turn them into people. I definitely knew that making friends was going to be a part of the design but I still had no idea how it would actually work.
- Saturday – Riding my bike home from my Saturday morning class I decided to try to make the high-fiving game I had joked about months ago. The original idea for that game was more of an Arkham style combo thing, but with my somewhat functional top-down engine I felt I could make some kind of combo chaining game. The rest of the day was spent dealing with implementing that and adding mouse controls. Basic menus and a several levels were put together as well. I believe Saturday is when I made the high five visual effect that I am so proud of.
- Sunday – Tweaking levels, final music track, SFX, sound implementation, making more levels, and engine tweaks.
- Monday – Tweaking everything basically. Lots of great changes to collision, motion, and visuals were done on Monday, along with lots of work on levels and menus.
- Started with music – This gave me time to let the theme sink in and it meant that I could try to make all the other elements fit the music. This helped immensely for building my confidence and getting the ideas flowing.
- sfxr is awesome – I could have made sound effects in Ableton Live but it would have taken way longer!
- Confused about the deadline – Due to my horrible time-math skills I thought I had until Sunday evening to finish until I checked the website on Sunday afternoon. This actually helped because I had something I could have submitted that night but the “extra” time let me polish almost every element of the game.
- Made a positive game – There is enough negativity floating around, High Fiverer is meant to be challenging but also super positive at the same time, and I feel that the overall design accomplishes that goal. No one is killed, shamed, injured, or put down!
- Used existing artwork from opengameart – While I was hammering out the details of the gameplay I looked to the characters / tile-set to inspire me. This saved me time also but it had a drawback as well (see below).
- Visual feedback – Not only did adding a lot of feedback through simple shapes help me understand the timings and ranges I was tweaking, I found that they really helped make the game pop!
- Simple input – I went back and forth between mouse and keyboard input during the first 30 hours or so and eventually found that using mouse input would be simpler to implement and require way less time to tweak, which freed up more time for adding a third music track and adding more visual feedback.
- Room-centric approach and inheritance – GameMaker: Studio is the only development environment I’ve used for games and for this project I finally found the correct balance between using global variables and relying on room_restart() to simplify repeating stages. I also streamlined my menu building / tweaking process by leveraging inheritance as much as possible.
- Easing – This is my first attempt at using easing for anything and I almost started crying when I got the big-hands-converging-into-the-high-five-effect working.
- Streaming – I streamed almost all of my work on twitch and I had a handful of viewers that really helped me stay sane!
The ‘Less Good’
- Physics and collision – Since I couldn’t decide how input was going to work, the engine didn’t get iterated as much as I would have liked and with some better implementation the motion could actually be more exciting.
- Using existing artwork – Yes this was on The Good list too but I spent a lot of time polishing the look of the game but had to opt out of the Graphics category. The visuals definitely make the game more fun but I still wish I had made everything myself.
- Level design – Since I was tweaking how the movement and chaining worked until the very end, the levels are not as polished as I would have liked, though I am happy that the number of levels (13!) is far more than previous games I’ve made.
- Friend movement – The movement of the friends needed another iteration or two.
- Limited mechanics – This ties in with level design. I would have liked there to be more elements in the levels to change up the gameplay.
- View shifts – The changes in view have come a long way but some players have found them jarring.
The ‘Needs to Be Better Next Time’
- Weak onboarding – I tried to make the instructions as clear as possible but I ended up needing to post more info on my submission to clarify. Perhaps more text or numeric info during the game could have helped but I felt that I already had so much stuff on the screen.
- Too much compiling – For my next project I need to implement a way to change variables while the game is running to reduce the amount of time I spend changing something and re-compiling only to change it again. This ate up a lot of time even for a very small game. An in-engine level editor would have been very helpful also.
A little bit more detail about the Music
Since I’ve received some very positive feedback on the music so I’m going to describe my setup, my process, and approach a little. Listen along if you like on soundcloud: High Fiverer OST
First off my music composition / production setup included:
- Ableton Live 9 Suite w/ Ableton Push
- I cannot recommend this software enough for composition and production, such a workhorse
- Ableton Push is a hardware controller (pictured below) that streamlines Live MIDI workflow to the MAX
- Ableton Session Drums (These sound great and have lots of detail!)
- My go-to kit for these tracks was British Vintage
- I always run these through a multi-band compressor to make them pop
- Sampled instruments from the Live Suite
- Electric bass and electric guitar are sample sets that come with Live Suite!
- Same with the marimba on Keep Fiving
- A few custom soft-synth patches
- All synth tones are made with Ableton Operator which is excellent for FM and simple waveforms
- These patches all have controls mapped to the Push for easy tweaking
- A few commercial effects plugins, many Live effects and some free VST effects
- I used NI Replika for all delay processing like on the guitars
- All amp modeling and compression is done with Live effects
- Master channel processing uses TLs Maximizer, Stardust, SPICE, and CrossMix
Almost all of the individual voices were played using the Push as input, with only a small amount of sequencing on the Push, and some arranging and editing in Live’s Arrangement View. I find that is easier to smooth out transitions between sections in Arrangement View with a mouse and keyboard. I cannot recommend Push enough for speeding up workflow if you already play your parts on a MIDI keyboard. Going from sketch to finished piece can be stupid fast and I made sure to take full advantage of adjusting clip lengths using the device which I often use the mouse and keyboard for.
I employed a hybrid production style with rock ensemble instruments (electric guitar, bass, drum-set) alongside FM / simple waveform synthesizers. My first instrument is drum set so I really like having sampled acoustic drum sets on my tracks. Sequencing and playing them is a little trickier if you don’t want them to sound like loops or samples so having a robust sample set and using lots of variations in velocities and patterns is important.
Game music poses some unique challenges especially in a jam setting. My total running time for my three tracks is 5:25 and 2:28 of that is the menu / final screen music. This means that the remaining two tracks are going to loop a lot considering that some levels may take 20+ attempts. I consciously used uneven section lengths and high contrast between sections to try to lessen the fatigue of repeated listening. Removing internal repetition also helps along with trying to have distinct lengths for individual sections. Structural repetition can almost be worse than having a short total length. 4 bars + 4 bars + 4 bars + 4bars gets old really fast! Our minds are great at recognizing patterns so it’s much less boring if the overall structure takes a few listens to internalize.
Don’t forget that poor implementation can still ruin your finely crafted minute long loop! If events in the game aren’t tied to the music, avoid restarting it whenever possible, especially if players are going to be restarting levels or changing screens frequently. If the levels are very short don’t change / restart the music every level.
If you want to check out more of my work I have more game music available on my soundcloud and even some OGA licensed tracks that you can use (for example if your LD32 entry has no music), and I am available to do commissioned work. Thanks for reading! Stay positive!