Over the past few weeks, I’ve implemented some new gameplay mechanics, with a primary focus on the environmental hazard, which I had some fun, as it’s represented by a massive monster.
1. Environment Hazard:
The Environment Hazard is represented by a giant monster; I adjusted its size to make it appear threatening to the player.
This monster serves as a challenge to cross a bridge, taking inspiration from Demon Souls by populating the area with numerous enemies to emphasize that the environmental hazard can affect a broad area.
Deciding on the monster’s size and position was a bit challenging. I scaled it enough to cover at least a third of the screen, creating a sense of threat without making it too large, which could become confusing.
The placement was also a decision point. I chose to position it slightly above and at an angle to cover the entire bridge with its attack. The distance is set so that its fire attack appears as a moving beam, indicating that it’s mobile and can be evaded.
Currently, the monster cannot be killed, but I’m still thinking about it.
2. Environment Hazard Trigger Wakes from Afar:
I’ve implemented logic that allows the monster to wake up only when the player gets sufficiently close.
It remains in a dormant state to indicate that it’s not active.
Upon waking, it emits a roar to signal an impending attack (sound to be added in the future).
There’s a 10-second delay from the moment it wakes up to when it unleashes its fire attack, giving the player time to cross the bridge.
3. Fire Attack:
I haven’t added the VFX for the attack yet because I want to focus on the logic first to save time.
I’ve included a debug red line to denote the attack’s area.
The attack has a range from left to right.
It inflicts substantial damage, capable of eliminating enemies in a single strike, but not the player. However, it deals a significant amount of damage.
4. Door Lever Logic:
I’ve also implemented levers that, when activated, open previously closed doors.
Additionally, there’s a logic for triggering a cinematic that I use to showcase unlocked doors that are far from the player’s current location.
5. Boulder Trap:
The boulder trap triggers when the player is descending from an incline.
To escape the boulder, the player must run and reach a passage in the wall.
I’m not entirely satisfied with this trap, and I’m considering modifying it as there is a risk of it feeling a bit unfair since the threat comes from behind.
This week I am optimizing the game, because I can no longer reach 60fps on my machine. Epic’s Paragon characters are very detailed but the materials are a bit heavy on my machine, I’m optimizing them (reducing effects you would only see up close). It is a slow process, but it will be worth it.
Optimization of the game will continue for this week as well. I am testing the asynchronous spawn of actors, now I don’t have the stutter caused by enemy spawn anymore. I still need to fix some minor bugs in the allocation/deallocation of actors.
By profiling I found about ten things slowing me down to reach 60fps, including Global Illumination (when there are more than 10 characters on screen Lumen starts to get a bit heavy on my machine), Temporal Super Resolution (I’ll have to switch to TAA), and a few Enemy Ticks to optimize.
I decided to move the Greybox to the Unreal default Level Template to be able to check the performance of the game with shadows turned on.
I must say that graphically it looks much better! Although I personally like to prototype with as few graphical effects as possible so that I can focus on gameplay (and not be distracted by the pretty graphics).
I’m glad to see that devs get distracted by pretty graphics as well. Out of curiosity, what inspiration has hit you lately that you’ve taken notes from and brought into this project? I’m always a bit to nerd-ily excited to see what elements from a movie/game can inspire an idea
@PresumptivePanda Since I am taking inspirations for my project from From Software games (such as Demon’s Souls and King’s Field), recent inspiration has been Lies of P, which I’ve been playing recently. It has some different approaches on the Souls-like genre, like an increased speed and a different mechanic on parries.
I think I’m going to prototype a couple of mechanics with the intent of modifying some typical Souls-like mechanics.
Improved performance of destructibles, decreasing the number of fractured pieces (from about 100 pieces per object to about 10-20 pieces) and continuous collision after fracture that caused intensive CPU usage indefinitely (solved by forcing fractured pieces to sleep so they don’t use the CPU after a while).
Boss prepares for a Spear Swipe attack.
I replaced boss weapon, spear instead of axe, so that it has a greater range of attack.
Attacking downward was harder than expected, I had to modify the attack animations to be able to direct the attack downward (since the Boss is much larger than the player).
Boss Spear Stab attack. It is performed when the player is far away. Tracking during startup animation is very long, so that the player must necessarily dodge to the side or back away.
Boss Spear Throw attack. When the player moves away and cannot be reached, the Boss throws his spear toward the player. The attack is very predictable, so the player can avoid it from a distance (hiding behind walls, dodging etc.).
Boss Back Jump attack. It is performed when the player stands behind the Boss. I need to finish implementing the backward movement, but so far it’s the easiest implementation among the Boss attacks.
Shield Slam attack. Boss will raise the shield and slam it on the ground, causing Area of Effect (AoE) damage. Performed when the Player is near the Boss. The attack can be avoided by dodging away.