Developing Chimera Rampage and Learning To Create Music & SFX : Post 1


"Chimera Rampage" is my entry to the "Learn You a Game Jam: Pixel Edition" game jam, which has the theme of "You are the monster". I thought it would be fun to have a short prototype where you play as a particularly nasty and creative fantasy/mythological being: the Chimera. This is the first entry in a series of devlogs that will feature the following:

  • The development process of this game
  • Talking about game design decisions made for this game
  • My learning of creating music and sound effects to be used in a game

The last of these points is because this project is my first time implementing custom-made audio into a game, where before I would use pre-made assets. I hope that talking through the development of this game, as well as the resources I link, helps others with the creation of their own projects.

The Game's Concept and its Design

The primary unique aspect of the game I wanted to make was for the player to switch between the three heads of the Chimera, gaining access to different abilities for each head. Having a suite of abilities contextualised by the trio of natures contained within a singular beast is, for myself, an interesting gameplay hook. The game was to be a top-down 2D action game with a bit of story told through dialogue.


(Chimera Design seen in Dungeons and Dragons Fifth Edition. Image Source: https://www.dndbeyond.com/monsters/16823-chimera)

To fully utilise the design of the Chimera; each head has its own two abilities, making for a total of six actions at the player's disposal. The player is able to quickly switch the active head using the "Q" and "E" buttons, and then use a head's abilities using left and right click. I wanted to ensure that the control scheme was easy and intuitive to grasp, especially since this is likely to be played by somebody going through a lot of different game jam entries. The Chimera's abilities were as such:

  • Dragon
    • Ember Bombardment - The dragon launches a fireball into the air that lands where the player's mouse currently is and explodes in an area. This ability deals moderate damage and has a short cooldown.
    • Fiery Breath - The dragon unleashes a torrent of flame in front of it, damaging enemies in a wide cone. This ability deals heavy damage and has a long cooldown.
  • Lion
    • Deadly Swipe - The lion sweeps its paws in front of it, dealing damage to enemies in an arc. This ability deals low damage, but can be used consecutively.
    • Devour - The lion consumes a number of lesser enemies in front of it. The ability deals heavy damage and heals the Chimera proportionally to the damage dealt, but has a very long cooldown.
  • Goat
    • Spiteful Ram - The goat charges forward, damaging enemies in a line and knocking them away. This ability deals moderate damage and has a short cooldown.
    • Baleful Wail - The goat lets out a loud cry in a wide area that slows enemies. This ability deals low damage and has a long cooldown.

These abilties provide a diverse set of options that incentivise frequent switching of the heads. The dragon allows the player to deal with large groups and distant targets, the lion allows high consistent damage to nearby enemies along with a way to recover health, and the goat allows for an attack that can reposition the Chimera along with a way to slow down encroaching enemies. This is intended to facilitate a dynamic gameplay loop that provides the player with opportunities to make moment-to-moment decisions on what toolset is most fitting for their current situation.

This type of design where the player has a selection of differing toolsets to quickly change between can be seen in games such as: Ys 8 & 9, the Trine series, and Sonic Heroes.

Early Code Design

To allow for a fast-paced action gameplay loop the code needs to be robust in matters of switching the active head. There could be a plethora of potential issues if the inputs of the player cause the different abilities to interfere with each other graphically or causing multiple actions to occur at once, confusing the player. To mitigate these issues and allow for a modular structure, I utilised a statemachine system.

State Transition Diagram

(A crude state transition diagram outlining which states can switch to which others. Drawn as part of the planning process.)

A statemachine allows for a defined set of inputs to happen in each state. This means that with appropriate cleanup done when entering and exiting a state it's nigh-impossible for unexpected behaviour to occur. The above diagram outlines how heads can only switch when they are idle, meaning that the player cannot switch to another head mid-ability and cause unexpected behaviour.

Statemachines are an extremely useful programming construct. A tutorial series by Gamedev.tv demonstrates how such a system works for a third-person action game, and can be seen here:  https://www.udemy.com/course/unity-3rd-person-combat-traversal/.

Audio Baby Steps

Prior to this game jam I had basically no knowledge of affairs related to producing any sort of audio for video games. All sound for previous games I've made has simply been importing assets into the game that "sounded right" and "totally provided a cool atmosphere". Thankfully, I had some means of actually making music: I had an electronic keyboard (piano) and I could play it. Not before quite a bit of research though. Let's go over the "things I learned" when trying very hard to understand what on earth I had to do to even begin composing music for the game.

1. A MIDI cable is a thing that exists, and is required for connecting a keyboard to a computer.

After quickly realising that simply playing something on the piano, recording it with my phone, and adding it into Unity wouldn't be the best of ideas, I had to learn that I required a MIDI cable and that my 2 kilogram bag filled with cables did not have a MIDI cable. MIDI stands for Musical Instrument Digital Interface and is typically the type of cable that passes audio data for audio devices. Thankfully, Amazon next day delivery is a blessing, and I got the cable rather quickly (this one in particular: https://www.amazon.co.uk/OTraki-Interface-Premium-Converter-Keyboard/dp/B07KYDP3...). Connecting the MIDI cable between my keyboard and my PC produced a satisfying "USB connection" noise that meant I had gotten a step towards some form of progress (after 5 minutes of it not working and having to realise that you need to put the "MIDI Out" part of the cable into the "MIDI In" part of the keyboard and vice versa. Thanks MIDI. ).

So does Windows 10 have a way to record MIDI audi-

2. 3rd-Party software is required to record funky keyboard tunes.

A quick search found that BandLab (https://www.bandlab.com/) is a website that allows composing tracks using a digital interface and recording music with MIDI connected devices. This functionality is useable after creating an account for free. Furthermore, input from the keyboard can be translated into a variety of digital instruments. BandLab provides a wide selection of woodwinds, brass, drums, strings and so forth that allows complex tracks to be formed with a single connected instrument. It also provides a virtual in-browser keyboard that can be played using the computer's keyboard (the one that you type with), meaning an instrument and MIDI cable are not required for composing music. With this rather helpful tool, it seems like the most difficult hurdle of making music would be overcome. However...

3. Being able to play the piano does not mean I know how to compose.

Composing music turns out to be pretty darn tricky. Despite being able to play semi-complex pieces of music, it turns out I have no clue what actually goes into the construction of a song. To rectify this end, a good amount of research has to be done, and I hope I am able to produce some half-decent tracks for the game by the end of the week.

Denouement

This post will hopefully be followed by additional entries as the game jam progresses. Thank you for reading, and I hope you gleaned something from this.

Leave a comment

Log in with itch.io to leave a comment.