Before we jump into the fun stuff, as this is my first blog post, I’d like to do a brief introduction. My name is Eric, a Game Design Master’s student and Lead Developer on Bacon. For those unfamiliar, Bacon is a 2D Beat Em Up being developed in Unity. The plot revolves around two former police officers, Adams and Douglas, who left the job to open up their own burger shop. Among the usual problems that come with starting your own business, Adams and Douglas had bigger problems to worry about. Many gangs around the neighborhood, with their own competing restaurants, didn’t like losing business to these guys, so they decided to wage war against them. The player must fight through waves of enemies, playing as either the karate-fighting Adams, or the stay-back-shooter Douglas. The game supports local co-op for two friends to join together and unleash the ultimate justice!
This article is going to focus on Douglas, breaking down how he stands on his own through movement and unique weapons to create a fun gameplay experience that requires a different playstyle to utilize the most efficiently.
#2: The Need for Improvement
As a character that only attacks in the form of ranged weapons, the player’s goal when using Douglas becomes keeping distance and dealing out massive damage. From a designers perspective, you need to make this kind of combat fun and balanced. When playing as Douglas partner, Adams, you are able to perform really fun melee strikes and string them together to inflict satisfying combos. It is a challenge to try and match that level of excitement for a character that must constantly avoid enemies.
Now I can’t speak much to the design of Douglas, because, as lead developer, I didn’t have a lot to do with how he was designed. It is my job to carry out the designers vision and make changes where necessary. We quickly noticed that Douglas just wasn’t all that fun to play as. It sounds harsh to say, but compared to his melee counterpart, Adams, Douglas was just always player two. We narrowed it down to being because two main issues:
1. He’s too slow.
2. His guns just weren’t all that exciting.
Over the last couple of months, I have focused to address these three key points and turn Douglas into a number one contender!
#3: Hurry Up!
Douglas doesn’t have the most agile look to him. He literally walks around holding a soda. Hes meant to tank a lot of damage and return it right back.We felt he would be too overpowered if we allowed him to move around the level too quickly. Balance is important. But keeping him to a speed that seemed appropriate for his other traits, he would quickly become surrounded by enemies and have no chance of getting away.
So, we got together and thought, how do we make Douglas faster, without making him faster? As impossible as a question that would seem, the solution was quite simple and very common in these types of games. Dodge. Roll.A dodge roll! It made so much sense. Having a constrained dodge roll will give Douglas that extra pep in his step, and at the same time giving him some extra protection. Surrounded by enemies?
I quickly coded a prototype for the roll, so when pressed, the player would perform a quick boost of movement in the direction they were currently moving. To add the dodge factor, I utilized the already functioning state machine I use for the player characters. So, when Douglas is in his ROLL state, I change the collision layer he is on, making him invulnerable to enemies. Not too long after the idea, I had a working prototype of the dodge roll and it made things so much better so fast. The usefulness of the roll was apparent almost instantly. Surrounded by enemies? Dodge roll! Need to save your friend before they die but you are too far away? Dodge roll! Want to see one of the best, in my opinion, animations in the entire game? Dodge Roll!
All right, that last point doesnt seem that imperative to gameplay, but I still must include it. When we sat down with our Lead Artist, Gabe, talking about how we need a roll animation for Douglas, we thought, what would it look like for an overweight cop, who moves around with soda in hand, to roll? Before the day ended we were rewarded with the absolute perfect animation!
The man literally throws his cup of soda into the air and catches it upon finishing his roll! Genius.
#4: Juice It up
Another issue we had with Douglas was his guns. At this current moment, Douglas will have access to five different guns (water gun, pistol, SMG, shotgun, and minigun). They just werent all that exciting to use. Not when compared to Adams combo maneuvers. When Adams performs his combo strikes, there is cool, fiery explosions at the end of his punches and kicks, really adding in that polished element that just isn’t present with Douglas guns. So, we decided to take a step back and think about what we can do to give that extra bit of juice needed.
It all started with the Minigun. This is usually going to be the last gun the player unlocks for Douglas because it is, in my opinion, the strongest of them all. The minigun is also the most unique gun we have, since the way it fires bullets is very different compared to the others. A traditional minigun doesn’t just start firing at its fastest fire rate from the start, it needs to warm up once the user begins to hold the trigger. The longer you hold the trigger, the faster and faster it pumps out bullets. None of our other guns use this mechanic, they all just have their default fire rate and stick to it.
I initially programmed it so the minigun has a slow fire rate and a fast fire rate. These are the bounds that its current fire rate will stay between, starting slow, and gradually increasing until it reaches its fastest allowed speed. This really worked because it balanced the minigun in the large scheme of things. If the player wants to deal some crazy damage, they must play carefully while the gun begins heating up. After playtesting, we realized that the gun wasn’t cooling down. Once it heated up all the way, you can release the trigger and once you began shooting again, it was already at its fastest. You could say it was preheated. Which isn’t very realistic, or fair. To combat this, I wrote a quick function that gets called when you’re holding the minigun and you release the trigger. It begins cooling down over x seconds, until it reaches its slowest speed allowed. And if the player begins firing midway through the cooldown, it will just pick up where it was. This worked very well, and made the gun stand out from the others.
But this wasn’t enough. After we saw the minigun functioning properly, we thought it needed more. Something was missing. The feedback to the player that this gun is massive and powerful just wasn’t there. What would make this gun feel powerful in the player’s hands? A screen shake! I wrote a function that every time a bullet was spawned from the gun, a small screen shake would take place. We made it subtle because it’s on every bullet spawn. Its fastest fire rate right now is set to .05. Every .05 seconds it will produce a bullet. The screen shake grows and grows as more bullets are getting pumped out, almost making it hard for the player to control the gun at its maximum fire rate. It was great.
We are currently taking this train of thought to the other guns, and are really excited with the results we are getting! People are getting excited watching gameplay of Douglas now which is fantastic to see.
Douglas isn’t 100% completed. We are still wanting to add even more juice, especially to his gun mechanics. There are a lot of opportunities there, such as, animations when the guns are firing, comical muzzle flashes, etc. It was a very enlightening process to see Douglas go from a character who tends to stay in the background and avoid the action, to a character that wants to get up in the enemies fasces and raise hell. The roll mechanic gives the player more options when playing now, being able to change the perspective of the fight at any moment. And now with some engaging and fun weapons at his disposal, we really think players are going to jump to play as Douglas a lot more now.
Bacon, Lead Dev