Aug 30, 2015

Justice Five - Designing the Bosses

8:28 PM Posted by Lucas Izumi , , No comments
Justice Five is a boss-run kind of game. Each level consists of a boss fight which upon completion, leads to another. Justice Five is also a game about super heroes, and when we think of super heroes one of the first things that comes to our minds is: super powers. This also came to my mind when I thought of making a game with this settings but... how do we create and adapt super powers to gameplay?

In this post I will talk about the design process of the two first bosses.

The first boss 
The first boss invokes the Superman cliché: strong, flies, has a cape... I could use super strenght as a power to this one. He could keep flying and hammering the player from time to time but, based on the 'lore' I wanted to create, the eye beams would suit him so much better. I tried to make his art to look imponent. He would keep flying, just standing there and shooting his beams at the 'enemy' (aka the player), that inferior being. Why use super strenght when he could just wipe that monster with little effort?

The next thing in mind was: how to make the beams work? If they were too fast, the player would have little time to respond and no time at all to predict where the next beam would be fired. If they were too slow, they wouldn't seem "real".

Here's how I solved this: by indicanting to the player, through a target icon, where he would fire next. A few seconds later the beam would be fired in that direction. The targets for the beam are chosen randomly but within a certain area of the screen, that way the player always know where are the danger zones. Initially the boss was firing only one beam at once. This was making the fight very easy, because just one beam covers little screen space. This made me decide to make the boss also fire 3 beams at the same time, with the quantity of beams (1 or 3) being chosen randomly (40% chance for each). Now, with a decent amount of screen space covered, I had to create  a 'break' for the player. Since you can only attack this boss in a certain angle, sometimes players could find difficult dodging the beams and reaching him. And to fix this I created a special attack. During this attack, the boss stops firing beams and becomes completely vulnerable until he unleashes it.

With these settings players who enjoy a challenge can try to hit him while dodging his beams, and players who wants to play safe can have their time and only attack him during the special animation.

The second boss
Upon finishing the first level I opened Photoshop and started designing the second boss sprite. I wanted him to have lightning powers but until then I hadn't created any mechanics for him. After adding his sprite to the game I made him shoot lightning, but... the first boss also shot things at the player. To create variety I had to add more to it and... why not a shield? Characters that uses energy as the source of their power often use it to attack AND defense. I then created a shield for him. Immediatly that connection between lightning and triggering something just clicked in my head, so I created two devices that should be activated with the boss own attacks, disrupting his shield and letting him vulnerable so the player can hit him.

You may note that fighting this boss is like fighting the first one using the 'safe way': you have to dodge his attacks and wait for a opening. But in this case you create the opening.
This was one of the trickiest boss to balance. There was the speed of his projectiles and the time bewteen the barrier being destroyed and rebuild again. To test the projectile speed I was using the two lightning devices as reference: when standing next to the device, motionless, am I able to escape a projectile if I start running/jumping at the time they are shot?

As for the barrier time, I did it by brute force. Started with X seconds and tried to hit him (always using the longest way). Many times I would end up stuck inside the barrier, dying right after it. Evey time that happened I would add 1 to X and check again. I think in the end I found an optimal time.

You can play the game on the link below: