Some time ago, I played a really cool game called Ori and the Blind Forest. It’s an excellent 2D metroidvania/platformer with beautiful art, music and some very interesting game mechanics. My favorite out of them is called Bash, and it allows you to freeze time when you get near an enemy or shiny object, aim at any direction, and then throw yourself in that direction, while throwing the other object/enemy in the opposite direction. It allows for really cool platforming, combat and puzzles, all at the same time!
I wondered what a 3D version of this mechanic would be like, so I set out create it in Unreal Engine 4! I created two main components to help me achieve this task:
- BashableComponent: For each object that the Bash ability can be used with;
- BasherComponent: For characters with the ability to Bash. It includes a detection sphere with a custom radius, so that when the player holds the Bash button, they will start bashing with the closest Bashable Actor within that radius. While in that state, you have 2 seconds to aim in any direction by moving the camera. Once that time is up or you release the Bash button, both the character and bashable object get launched in opposite directions, with a super cool shockwave effect that I created.
Here is a video of my current version of 3D Bash:
One thing that I noticed going from 2D Bash to 3D Bash, is that I needed to add a Reverse Bash ability. A very common use of Bash is sending a projectile back to an enemy. With a 2D camera, you can simultaneously keep track of where both the player and other object will go, so in order to redirect a projectile, you only need to aim in the opposite direction that you want it to go. Doing that in 3D wasn’t very practical, however, so I added a button that inverts the direction of your Bash, allowing you to send the other object in the direction you’re looking at, while launching yourself backwards. You can see that in action at the end of my video above, when I unabashedly sent a bomb back to its cannon.
There are other things you see in the video that I could talk about, like the breakable cannon and its aiming system, the bombs and how they explode, the shockwave effect, the collectible attractor, how I used VRoid to create a custom character, etcetera, but I will save those for future posts.
As for the next steps, I am currently adding animations from Mixamo into the game, so that when a character uses Bash, they play a different animation depending on the launch angle.
Thanks for reading, and I will see you next time! :v