Summary of Tasks
- Created a level with two scenes that you can traverse through (back and forth)
- Added one-way platforms to aid with vertical platforming
- Added a Shield-Type enemy that cannot be damaged from the front, and has a unique attack
- Allowed player to receive knockback from enemies
- Added a bubbly-acid environmental feature that can hit the player and the enemies
- Made player hits more impactful by giving the player minor knockback when his hits connect
- Minor UI elements to represent health
- Played with the character's speed
- Gave the player more control of the character's jump heights
- Made the camera scroll relative to the player's location, and limits its position in a large box
Enemies in the Prototype
Previously, the enemy was just a gameObject that could receive hits from the player and get pushed away from the player. I added a health variable and death sequence to the enemies so you can get rid of them (sense of progression) along with adding a new enemy type. The first enemy just stands around, waiting to be hit, and exists only as an obstacle to knock the player backwards if they get too close. The new enemy holds a shield, and can receive minor knockback if hit from the front, but takes no damage. If you get behind the enemy, he receives full damage and knockback. Additionally, the enemy will occasionally pull out a blaster and shoot a small circle forward, which can knock the player back. During this time, he moves his shield to the side enough to be completely vulnerable from all angles. I hope this enemy helps vary the prototype's gameplay enough to make players think about how to use their character's abilities properly. There's more than one right way to tackle this enemy, whether it's hitting the shield enough to knock him down, getting behind him to do damage, or timing your hits to counterattack him.
Combat in the Prototype
I wanted to make sure hitting enemies felt satisfying. I already had enemies receive knockback last week, along with minor hit effects appearing where you hit them. To improve upon this, I wanted the player to feel the impact of their swings, so I added a minor knockback to the player unit on-hit. When the spear connects with an enemy, the player is sent backwards a little bit, making the hits carry more weight. It doesn't make it more difficult to kill enemies -- I actually think it makes it flow a little better, but testing may say otherwise. Additionally, I made the character move faster, have more control over jump height, and also have the ability to jump just a little bit higher than before, so there's a lot more player control.
At the moment, the scene switching is very simple. The player character touches a loading trigger and that sends a message to a singleton sceneManager containing the desired location of the player, and the scene index to switch to. The sceneManager switches the scene to the desired index and waits for the onLoadLevel() call. Once it receives this, it sets the player's position accordingly. In the future this will be masked by a minor screenfade so it feels less rigid.
I'm hoping to take feedback and make the combat feel even better. I want it to flow easily, and have players be able to easily defeat the current enemies we have. I also want to make sure that the platforming elements of the game and the combat go hand in hand, instead of impeding each other and frustrating players. I also hope to get a really solid intro sequence to the game prototyped, that helps showcase exactly how we want the game to feel.