Week 9 - Enemies/Interaction/Puzzles


Initial Implementation

This week's checkpoint was more demanding than previous checkpoints. I spent most of my time at the start of the week on fixing minor bugs, optimising laggy scripts and attempting to introduce the first UI elements. Unfortunately, these UI elements proved to be a pain to work with, took up too much of my time, and was ultimately for nothing as I did not end up using what I had created. However I was able to squeeze in the main gameplay element I wanted to implement this week: powerups.

Powerups have replaced my initial concept of having multiple projectile types that the player can use, and the earning of cash to buy these projectiles. I have simplified this by introducing powerups which can be earned by building up and maintaining top speed. When the player has earned a powerup, a "halo" particle effect appears around the player's asteroid, at which point pressing space will activate a random power. This directly incentivises going fast, and hopefully the powerups prove to be satisfying and fun to use. 

Demo showing powerup charging and ready particles

When it came to showing  the player that a powerup was ready to use, several methods were prototyped including:

  • A circular progress bar around the player's asteroid which would fill up as the player got closer to earning the powerup. This ended up being too much hassle to implement properly, and was visually distracting and cluttering.
  • A text popup which would appear above the player then fade out. While somewhat less intrusive than the progress bar, it felt a bit lazy and clunky.
  • A quick white flash of the screen. I was never keen on this idea, but after trying the first two ideas it seemed like the next best thing, but then I thought of using particles, and so this was never fully prototyped.
  • A particle effect around the player. I already have one particle effect to show when the player has achieved top speed, so having one more to indicate a powerup is ready seemed possible and much less intrusive and clunky than my other ideas.

At the moment, there are only two powerups: Ghost Mode (enables passing through debris), and Gravity Field (pushes away debris in a radius around the player). I hope to implement around 8 to 12 powerups in total, however I am considering removing or altering the Gravity Field power, as it's effect is not always obvious or useful.

Fortunately, several other features related to the checkpoint had already been added to the game in previous weeks, such as collisions between the player and the various types of obstacles, interceptor missiles with their homing behaviour, force fields, and player death. Based on previous feedback, homing missiles now face the right direction and have had their movement very slightly tweaked.

Although I was only able to show a partially-complete version of what I hoped to have for the tutorial testing session, I was able to implement a lot more features in the days after, including:

  • Level completion screen
  • Level progression
  • Planet explosion and destruction when the player crashes into it
  • Proper sprites for the debris pieces (9 to randomly pick from)
  • Proper sprites for the small debris chunks (5 to randomly pick from)
    • The "small debris chunks" are just small obstacles which the player bumps into at low speeds, but can destroy at high speeds.
  • Proper sprites for the big rocks (5 to randomly pick from)
  • Proper sprites for the planets (8 to randomly choose from, with more to come - sprite will not be random in the future)
Demo of small debris bits
Demo showing level complete screen and planet destruction

The biggest of these was the level progression which took a bit of time to get working, but I am ultimately very happy with. Since the levels in this game are extremely simple (consisting entirely of randomly placed obstacles), I wanted to avoid having a scene for each individual level in the game - which could eventually number in the dozens. Instead I really wanted to get a system working where the level layouts are loaded into the same scene when the player progresses to the next level. This was successfully implemented with a few difficulties, but now every single level in the whole game can be expressed as and generated by simply defining 5 integer values in a persistent "level manager" object in the inspector: quantity of debris, quantity of rocks, quantity of small debris, length of level, and force field health (really happy with this!).

Player Feedback

The feedback received this week was pretty sparse, however there was mention again of the player movement, more specifically the steering speed. This has become a common theme in the player feedback, and this week I decided to have a proper go at adjusting the steering to make it just right - not too hard, not too easy. Eventually I settled on doubling the original speed, so I think the new speed should be more comfortable but still challenging enough, but I will just have to wait and see what players think in next week's testing session.

There was no mention of the newly-added powerups, so I'm hoping that players were aware of how to earn them and were able to do so (it can be pretty tricky, especially if you haven't been playtesting all day). For the moment I will continue brainstorming and implementing more fun powerups, and will start shifting more of my focus towards next week's checkpoint: Graphics/Presentation.

Leave a comment

Log in with itch.io to leave a comment.