Elemental Monsters & Redesigns

This week I improved my engine for Goblin Hero by beginning a system by which each enemy monster in the game has an elemental type, similar to the types found in Pokemon. Each monster in the game is weak to a certain element, and strong against another. Earth does extra damage against Flame, Flame does extra damage against Ice, and so on, and Light and Dark are both strong against each other. It can be visualized like this:

The advantage flow of Goblin Hero’s elemental types.

The part of this system I implemented this week was to add an elemental type as an attribute of the monster class, and to add a colored name display in battle to indicate the elemental type of each monster. My first version of this system had an obvious problem in the form of name overlap:

Monster names overlapping each other and running off the edge of the screen.

Clearly this wasn’t going to work. With a modern game resolution this might not be a problem, but Goblin Hero is running at the tiny screen resolution of the NES: 256×240 pixels. Not a lot of room to work with. So I made some fixes: Monster names are centered above the sprites, their vowels are removed and they’re offset vertically, all to prevent overlap. The actual code I wrote for this purpose was inserted into the Battle function here:

The code responsible for enemy monster name display.

The hardest part of this for me was actually the vowel removal. I got stuck on that problem for a while, and had to brush up a bit on string comprehension basics, like slicing, to get it to work. It was also tricky because some names have multiple vowels, which is why I eventually added a list to keep track of vowel locations and a counter for how many had been removed. The final result looks like this:

Shortened, centered and colorized names appear above each enemy monster.

In this example, the Forest Slimes are Poison type, the Wasp Witch is Dark type and the Scavenger is Earth type, so the Slimes would be weak to Ice, the Witch would be weak to Light and the Scavenger would be weak to Poison. I think this name solution okay, but I might change the system again to only display one name at a time, in the center, when the player is choosing which monster to attack. That would probably be a more traditional rpg enemy name display system, and would get rid of the need to remove vowels. The tricky part of this is making a cursor that changes its list of possible locations on the fly, to skip over dead monsters.

I’ve been quite busy this week, so I have another topic to go over: New enemy monster sprites! I redrew several of my enemy designs, some of them being among my oldest. These are a few of my favorite redesigns:

The redrawn Forest Slime, Lost Skull and Hungry Shroom.

I’ve also started a process of palette swapping enemy monster designs to bring the total number of enemy monsters in Goblin Hero up from about 50 to about 150 altogether. This will help make it realistic for me to make a game that’s three times as long!

Some of the many palette swapped enemy monster variations in Goblin Hero.

As far as the elemental system goes, I plan to eventually implement spells the player can cast, that deal elemental damage. Using the right spells against the right monsters will be an important part of the game’s strategy. Each of the four party members also have an element: Poison for Ivy the Goblin, Flame for Skratch the Orc, Ice for Helena the Skeleton and Earth for Bolder the Troll. I might include this in battle by having enemy monsters occasionally use elemental attacks against the player characters.

One thought on “Elemental Monsters & Redesigns

Leave a comment

Design a site like this with WordPress.com
Get started