Lately I have been working on refining the echo mechanics to make sure the player experience isn't too jarring. I believe that making sure the main mechanics work right first before moving on to expanding on the project's content, such as level and enemy/obstacle design.
I may have skipped over an important detail in the previous post, but I have been using Trello to jot down the tasks required to complete this project. Trello is a very useful tool that simulates sticky notes on a board, or multiple boards. It helps map out the scope of the game you are trying to create, as well as monitor the progress throughout the development process. Although this tool was constantly brought up a lot at uni, I first discovered it during an internship I did at No Moss Studios (Sydney-based indie game studio) in late 2017.
Back to the Echolite project, I initially planned to only have a visual fire point which rotated around the player, following the direction of the mouse. This indicated where the projectile will travel from. However, over time, I decided to make improvements to this system.
I wanted to show the player that you can only fire 1 shot at a time, and cannot shoot again until the initial echo effect has completely depleted. I replaced the fire point with a radial-filling bar that indicated the time it takes until the echo completely vanishes. Since the echo duration is determined by how long the player holds down the button, I had to calculate and make the reloading bar reflects that.
After this step, I started considering that the fire point that follows the mouse around the player might be visually annoying. I then decided to remove that aspect and have the cursor replaced with a custom one so that it would be a lot more desirable for the player to aim around the screen. So, I got rid of the initial visual fire point and moved the reload bar onto the player character itself. I also took the opportunity to upgrade the reload bar into a charging bar as well. So, when the player holds down the fire button, the radial bar is drained. When they fire and hit a wall, the radial bar fills up, indicating the echo lifetime.
When it came to this stage of the development, I had the most difficulty calculating between the lifetime of the echo effect, and how much the charging/reloading bar had to be change to reflect that. I finally came up with an almost perfect solution. The draining effect can be done by basing a comparison between the current charging time and the maximum charging time. The reloading/refilling effect was more difficult to implement. I settled with an interpolation function between the value of how much the bar was drained and the maximum bar value, while duration was based against the current charging time from the moment of release.
After all this calculations, I decided to break away from that by adding some visual polish. Before I planned to have a black echo effect that chased after the white echo effect to give the illusion of disappearing. But, I figured that this could be simplified to just changing the colour of the white echo effect to black through the sprite renderer. So, I interpolated the colours between white and black to replicate a similar effect.
Below is a demo gif that shows what it currently looks like:
That's all I have for now. I am looking to refine the main mechanic a bit more, before moving on to the next big steps in this project. They include level design, enemy and obstacle design and other systems that can improve the quality-of-life of this game. Thanks for reading, and see you in the next devblog!
Comments