Developing Chimera Rampage and Learning To Create Music & SFX : Post 3 (Final))


This is the third and final devlog concerning my entry, "Chimera Rampage", to the "Learn You a Game Jam: Pixel Edition". The first can be found at (https://high-lord.itch.io/chimera-rampage/devlog/548342/developing-chimera-rampa...). This entry will focus on:

  • Designing a boss fight
  • Coding a dialogue system
  • The learning of the game's artist

Hmm, This Game Could Benefit From a Boss Fight...

...I say to myself with only a few days remaining before the game jam's deadline, having plenty of work to do in other areas. Nevertheless, it was appealing enough to try to make one as the ending of the game, as climactic encounters against powerful foes can be some of the best parts of a game. This had to be done in limited time, however, which meant some tricks would need to be employed to have a functioning boss fight ready for the deadline. The primary "trick" (not really) was reusing other aspects of the game that were already made. For example, the Dragon's Ember attack became the boss's Rock Fall attack:


With a sprite change and switching how it was spawned, the boss had an attack. I believe it would have been foolish to program an entire new set of mechanics for the boss to use, as they would not have had the appropriate testing period to see if they functioned correctly. Using altered versions of existing abilties meant that it was already proven to work. It's easy to think of something like this as simply copy-pasting and being uninspired, but I believe that within gamedev such practices make sense, particularly with a tight deadline. In the end, the boss ended up having three attacks that it would cycle between depending on the current conditions. A success, in my opinion, considering the situation.

Damn, I Wish This Game Had More Than Just Combat...

...I pondered during the 57th playthrough of the game after finally working out why mushroom spores kept lingering around the map. The simplest addition, I thought, would be a dialogue system to present a story that contextualised the gameplay. With a few lines of code, the game went from "you play as a Chimera and kill things in a forest" to "The three Chimera heads: Whitefang, Hyacinth and Grimsby set out to conquer the emerald forest". Far more exciting. The primary script to accomplish this was a Dialogue Manager. This script is one heavily adapted from the structure proposed by the YouTuber Brackeys in his Dialogue System video:

My take on this system utilises "Conversations", which are essentially lists of "Dialogues". Dialogues contain information concerning who's talking, what they're saying, what their sprite is, etc. The Dialogue Manager takes in a conversation and goes through it, dialogue by dialogue, such that a story event can transpire. It features code that incrementally makes the text appear, and allows the player to display the text all at once if they click before the appearing finishes (shown below):

    IEnumerator TypeSentence(string sentence)
    {
        currentSentence = sentence;
        currentTextTyping = true;
        dialogueText.text = "";
        foreach (char letter in sentence.ToCharArray())
        {
            dialogueText.text += letter;
            dialogueAudioSource.Play();
            yield return new WaitForSeconds(timeBetweenLetterTyping);
        }
        currentTextTyping = false;
    }
    private void FinishTypingSentence()
    {
        if (typingCoroutine != null)
            StopCoroutine(typingCoroutine);
        dialogueText.text = currentSentence;
        currentTextTyping = false;
    }

This script (which can be seen in the project's GitHub) is particularly powerful because the Conversation list is comprised of ConversationNodes, which are an abstract class. This means that you can make the Conversation out of different types of nodes that the Manager handles differently, allowing for various scripted events to happen in between character dialogues, such as the music/background changing. These extensions were not utilised in this project, as it simply focused on dialogue between three bickering Chimera heads.

Artist Corner

I had an artist working alongside me for this project, and below is a section describing her learning during the jam (from her perspective):

The Chimera was the first collection of sprites I made. There were sprites not only for the body, but the neck, jaws and head. If I couldn't comprehend the animating, my partner would be able to try it on his side using Unity's animation system. The Lion and the Dragon are similar to the original Chimera's look (reference used: https://www.dndbeyond.com/monsters/16823-chimera), with the front body mainly being a Lion, the spine/back being that of a Dragon, and hind legs of a Goat. In particular, the Goat was meant to look like an Alpine Ibex, while the other two were based on the original. The enemies were also based off of DnD Monsters, that being the "Twig Blight", "Dryad", "Myconid" and a "Earth Elemental" each having a collection of sprites composed of their limbs.

Alpine Ibex Goat

Alpine Ibex Goat

I've played a lot of games with "Skill Icons", with "Divinity Original Sin 2" having particularly good ones. Skill icons help the player visually see what the skill is even before testing the attack. The icons would also represent the "Personality/Head" that the player attacks with and the characteristics in the icon, as well for the selected head.

I have never really animated a walk cycle before, so I began with looking at a tiger's walk cycle since that's what I'd base the movement on and because the Lion is the main body shape I was going for. My goal was to make an idle animation, where the Chimera would bob along with its heads, and if I did well, I'd give the heads an idle animation as well. I spent the best part of a day and a half trying to get my head around a multiple-frame walk cycle attempt. I ended up scrapping it and just having a still idle stand and a 2 frame walk. The main problem was the back legs, but I definitely had problems with front legs. Goats and lions walk differently, so making a goat's back leg move like a lions was taxing on time. I had tried animating in the past, but I had never done a walk cycle before. I've learnt that I should probably spend no less than a month next time I wish to attempt to understand it.

Overall, the most interesting parts were the skill icons and the sprite collection. Cutting up a drawing was certainly new.

Denouement

This ends the devlog of Chimera Rampage. I've definitely gotten a sizable foothold into working with audio in games, and will likely continue to make my own sounds for future projects. I hope that this was an interesting read, and that you gleaned something of interest.

Leave a comment

Log in with itch.io to leave a comment.