Finding the Fun in Combat and other such improments
About a month ago, I joined the Mech Jam. I am an avid lover of mechs and of making games. And this was a jam of making a game with mechs. This was something I could not miss out on.
The jam lasted for around two weeks, by the end of those two weeks I had Paradise Mecha, a third-person, hack & slash. It was a solid entry, no major bugs, but it was missing somethings.
Before I go over what changed in the game, I want to discuss what the problems were in the first place.
Jam Version
Updated Version
I had three problems with the jam game.
- The combat wasn't very fun, satisfying, or polished. With an over reliance on the blasters.
- Everything was rather dull. There were almost no visual effects when interacting with the environment. The jungle felt very lack-luster and empty.
- The colors were way too desaturated. Which made me very unhappy.
The folks that played the game had two major problems* with it
- The game was very, incredible hard.
- Since the game was so hard, the only way to beat the game was to ignore all the other enemies and just attack the enemy ship. Which kinda made the other aspects of the game irrelevant.
*Okay, so maybe it was only one problem. But it was a very big problem so I had to split it into two.
Lets start with the combat. How does one make combat more fun and engaging?
^ So lets break down what exactly was wrong with the combat.
- It didn't feel nice to hit enemies. There was very little visual and audio effects when hitting enemies. The enemies would flash red, and that was it. Not very satisfying at all.
- Swing the sword felt empty and lackluster.
- You had to move close to the enemies to hit them. Which is how it works in real life, but in a hack & slash, it feels sloppy and unpolished.
- It was much easier to use the blasters than to use the sword, which defeated the purpose of having a sword.
To fix the sword swinging and the hitting of enemies, I added some more visual effects with a touch of screenshake.
I added a light particle trail when swing the sword, that would hang in the air before disappearing. I also added a little bit of screenshake when swinging the sword. It's very subtle, barely noticeable, but it made the player feel each swing. With these two small changes alone, it already felt much more satisfying to swing the sword.
To make hitting enemies more impactful (pun intended), I only needed to make a few small changes. First of all, I increased the screenshake when hitting an enemy. Then I created some sparks with the particle system. And lastly, I improved the enemy hit audio to something more impactful, and obvious. This change along dramatically improved the combat feel.
Adding game-juice is basically just making a few small changes. Things like vfx, audio, and screenshake really can make if big difference, even if used in small, subtle ways.
To fix the unpolished feeling when fighting, I decided a lock on system would be the best idea. Much like the free-flow combat in the Batman Arkham games. It takes the direction the player is moving, and finds the nearest enemy in that direction, the player will then snap to that enemy. You can switch to another enemy simply by moving in a another direction. If you aren't holding any of the movement keys, you'll just snap to the nearest enemy. This make the combat feel much more snappy, and flow a lot better.
The last issue with the combat was the blaster. Now this wasn't a simply a fix as adding some more particle effects. This was an issue with the fundamentals of the combat-loop. This is a hack & slash game, but the blasters where more convenient to use than the sword, which wasn't very good. So I sat down and rethought out the combat loop. I asked myself why. Why should the player use the sword? Why would the player use the blasters. Why should the player switch between them?
What I came up with was to limit the use of the blasters by adding a cooldown/recharge-time when the player used up all the ammo. This made the blaster less convenient, since you couldn't just spam the enemies with bullets, before they even got to you. Making the sword the main tool in dealing damage, and the blasters as a way to pick off a single enemy at a distance, or to simply deal some early damage.
And it worked, as far as me testing it went.
Now on to the next issue: Filling out the world.
To begin with, the only thing on the jungle was some palm trees. Some very static palm trees. I needed to feel it out some more. So I added some more vegetation. Such as grass, a bush, and most importantly: sticks (Which you can barely see, cause most of them clip through the ground and I was too lazy to fix it).
But it still didn't look right. Everything was too static, and not very leaf like. Which meant I needed a foliage shader, and after some googling I found this tutorial by Ned Makes Games which was perfect.
This improved the look of the game immensely.
Before Foliage Shader
After Foliage Shader
I added in footstep and jumping/landing particles (finally creating the terrain texture detection system I've been meaning to make for ages now), paired that with some some ambient jungle noises. And suddenly the world felt alive.
Now for the biggest problem of all: The game loop. While making this game, my only desire was to basically make my own version of Anthem's controls. Having the ability to seamlessly transition from walking to flying. And to be able to attack in either of those state. Which meant the gameplay took a back seat. Which resulted in an incredibly hard game, where the only way to win was to ignore the gameplay, and focus on destroying the enemy ship. This was not a good thing. So I had to go back and rethink what the game-loop was.
When I was in the process of making the game, I thought just having enemies spawn every few seconds was good enough, and didn't put much thought on whether it really was good enough. Now I had too.
The biggest problem was that you couldn't defend your ship, and attack the enemy ship at the same time. So I had to split those tasks. Taking the good advice from some of the players, I added a wave system where you have to defeat a set amount of enemies to end the wave. Before the next wave began, you would have a brief interval where you could attack the enemy ship. When the timer ended, you would go back to your own ship to defend it from the next wave. And this worked fine, except for one issue. Since the enemies came from one location (i.e. the enemy ship), you could just stay near the spawn location, and take out the enemies before they even got close to your ship. And when they were all defeated, you could quickly get to the enemy ship and attack. Which meant the game only lasted a couple of waves.
To counter this, I came up with the brilliant idea to add three more ships (four ships in total), surround the island on all sides. That ways enemies would come from all directions. Fixing the problem completely.
With the gameloop issue all fixed up. I only had one last problem to fix. The biggest problem of all. I needed to increase the saturation. So I went my post-processing stack, and increased the saturation.
After adding a few more improvements:
- A shield vfx
- AI voicelines
- Better lighting
- Anticipation to enemy attacks
The game was finished, and it was perfect! Or as perfect as I was willing to make it.
If you've made it this far, you might as well try out the game. It's completely free to play. Unless of course you want to make a donation *wink* *wink*
And so ends this post-mortem. I hope it was cohesive. I already know it is not grammatically-correct. But in my defense, it's currently 4:30am. Which isn't much of a defenses cause my grammar sucks even when I am awake.
Anyhow, enjoy this trailer.
Files
Get Paradise Mecha
Paradise Mecha
Status | Released |
Author | Pocket Fun |
Genre | Action, Fighting |
Tags | Anime, Boss battle, Hack and Slash, mecha, Robots, Short, Singleplayer, Third Person, Third-Person Shooter |
Leave a comment
Log in with itch.io to leave a comment.