This is episode 5 of the third-person shooter series based on Unreal Advanced Locomotion System. Today we are going to do some improvements to the simultaneous shooting control system that controls how many AI characters can shoot simultaneously at a given target when there are multiple AI-driven enemy characters present on the level. This is very important when the player is faced with a large number of opponents, the player should not be overwhelmed and need to have a chance to fight them. ...
2022-03-17 04:31:25 +0000 UTC
View Post
This is episode 50 of the third-person shooter series based on Unreal Advanced Locomotion System. Today we are going to implement dismemberment of the limbs of the character when they are caught in an explosion. Here, we will use the constraint-breaking system of the unreal engine. Characters will randomly break their limbs such as legs, arms, head, etc..
project files
https://www.patreon.com/posts/63654325...
2022-03-15 12:30:00 +0000 UTC
View Post
In this video : https://youtu.be/_4hb4EGO1_Q we worked on how to run over NPC characters with a vehicle. basically, when they are hit by a car, they go into a ragdoll simulation and get pushed away. This works nicely when the car hits them at a higher speed. But when the car hit them at a lower speed, it doesn't look good if the characters just fall as ragdolls. So, here we are going to implement a method to make the charact...
2022-03-14 14:48:03 +0000 UTC
View Post
This is episode 49 of the third-person shooter series based on Unreal Advanced Locomotion System. Today we are going to work on how to assign the AI combat mode of the NPC characters in the runtime through spawners. That means, we have character spawners that spawn NPC characters that belong to different teams. When we spawn the characters, by default, they will have offensive combat AI mode. We are going to setup necessary interface functions to dynamically change that into whatever the inte...
2022-03-13 06:42:01 +0000 UTC
View Post
This is episode 48 of the third-person shooter series based on Unreal Advanced Locomotion System. Today we are going to work on how to set the attack mode of AI-driven characters. Initially, we will implement 2 basic attack modes as offensive and defensive. In the offensive combat mode, the characters will be more aggressive towards the opponents and they will try to get closer and shoot down the enemies. In the defensive mode, they will engage in combat while backing down. They will always t...
2022-03-12 05:18:50 +0000 UTC
View Post
Updated Links
This release(5.3 version) contains the latest project with Top down and third person game modes.
for third person: use ALS_GameMode_SP game mode.
for top down: use TopDown_GameMode_SP game mode
[Latest]
UE 5.6 Version Top Down + Third person
password=CLMTPTop56
UE 5.3 Link: 2022-03-11 06:38:54 +0000 UTC
View Post
This is episode 46 of the third-person shooter series based on Unreal Advanced Locomotion System. Today we are going to work on how to freeze the ragdolls of the dead characters after a while. We simulate the physics of the character mesh when they are killed to get a realistic dead behavior in our game. But when the fighting happens for a longer period of time, the ragdoll physics simulation affects the performance of the game. Also, it becomes problematic when the dead bodies interfere with...
2022-03-10 11:05:51 +0000 UTC
View Post
This is episode 45 of the third-person shooter series based on Unreal Advanced Locomotion System. Today we are going to work on grenade throwing in coordinated enemy attacks. What I meant by that is, when the AI enemies throw grenades at the player or another AI opponent, they shouldn't overwhelm their target with grenades. There should be some time interval between 2 grenades thrown at the same target. But when there are multiple AI enemies present on the level, we need a way to communicate ...
2022-03-08 04:51:40 +0000 UTC
View Post
This is episode 44 of the third-person shooter series based on Unreal Advanced Locomotion System. Previously we implemented some environment queries to get some locations such as cover locations. But these EQS ran independently on each AI character's behavior trees. They don't have any mutual awareness of what other characters are doing. Because of that, when there is a major threat like an explosion sound, all of them try to move into the same location for searching. When there are multiple ...
2022-03-07 04:36:00 +0000 UTC
View Post
This is episode 43 of the third-person shooter series based on Unreal Advanced Locomotion System. We have already implemented a throwing system that allows the player to throw grenades and rocks. But once the player press and hold the throwing button, there is no way to cancel throwing. So, today we are going to implement such a system. When the player has equipped a throwable item and goes to the aiming state where the predicted projectile path is displayed, a tip will appear in the middle o...
2022-03-06 04:44:24 +0000 UTC
View Post
This is episode 42 of the third-person shooter series based on Unreal Advanced Locomotion System. Today, we are going to get started with how to make AI-controlled NPC characters work as a team. For example, when the player throws a rock near a set of enemies and they hear the noise. According to the AI system we have implemented, such noise will be considered as a minor threat. Ideally what should happen is, only one of the enemies should go out and check. But if the enemy charac...
2022-03-05 05:00:48 +0000 UTC
View Post
This is episode 41 of the third-person shooter series based on Unreal Advanced Locomotion System. Today, we are going to implement a rock-throwing mechanism. When the rocks hit a surface, a sound and a noise that can be perceived by AI perception system of NPC characters will be spawned in the place. Then enemy AI characters will respond to that noise by looking at the direction and moving there to search the noise. They will consider that noise as a minor threat. So, they wouldn't react simi...
2022-03-03 23:29:59 +0000 UTC
View Post
This is episode 40 of the third-person shooter series based on Unreal Advanced Locomotion System. We have already implemented a pretty robust AI controller that can engage in a battle with multiple characters with enemy factions. Today, we are going to implement a way to detect explosions and how to react to them accordingly. As explosives, we have grenades, explosive barrels and rocket launchers in our project. All the explosions are implemented using a single actor component called Explosiv...
2022-03-03 04:35:31 +0000 UTC
View Post
This is episode 39 of the third-person shooter series based on Unreal Advanced Locomotion System. We have already implemented a grenade-throwing mechanism that allows both player and AI characters to throw grenades. Today we will do some improvements to the decision making process of the grenade throwing system for NPC characters. They will consider the max distance they can throw a grenade before they attempt to throw a grenade. Also, we will fix some other bugs and do improvements to the sy...
2022-03-02 04:51:33 +0000 UTC
View Post
In this unreal engine tutorial, we will work on how the characters get hit by vehicles. Here basically what happens is, the vehicle will be able to hit or run over NPC or player characters. When a character is hit by a vehicle, the character mesh will go into ragdoll simulation mode so the body will react to the impact according to the physics simulation. After a while, they will be able to recover from ragdoll mode and stand up. For this project, I will be using the advanced locomotion kit t...
2022-03-01 04:16:46 +0000 UTC
View Post
This is episode 38 of the third-person shooter series based on Unreal Advanced Locomotion System. We have already implemented a grenade-throwing mechanism that allows the player to throw grenades and kill enemies. Now let's implement grenade throwing ability for enemy AI characters. So, when the enemies are engaged in a fight, they will use grenades and throw them towards their enemies. This will further diversify the fight. We will implement the required interface functions and a grenade thr...
2022-02-28 04:30:52 +0000 UTC
View Post
This is episode 37 of the third-person shooter series based on Unreal Advanced Locomotion System. We have already worked on the animation part of the grenade throwing and showing the predicted projectile path. Now let's look into how to actually throw the grenade, explode, and how to affect surrounding actors. The characters will take damage and the explosive/destructible objects like barrels will be destructed.
CodeLikeMe Third-Person shooter series: 2022-02-27 05:07:17 +0000 UTC
View Post
This is episode 36 of the third-person shooter series based on Unreal Advanced Locomotion System. We have already worked on the animation part of the grenade throwing system. Now we are going to work on how to visualize the predicted projectile path of the grenade to allow the player to accurately aim the grenade. Here, we will construct a series of spline meshes in the runtime to represent the projectile path with the help of predict projectile path by channel function and a spline component...
2022-02-26 05:42:45 +0000 UTC
View Post
This is episode 35 of the third-person shooter series based on Unreal Advanced Locomotion System. Here, we are going to work on the grenade throwing mechanism. First, we will look into how to implement the input action and how to play an animation montage with 3 sections for grenade throw start, aiming, and throwing parts. When the player presses the grenade throw button and holds it, the character will take a grenade into hand and as long as the player holds the grenade button, the character...
2022-02-25 05:14:36 +0000 UTC
View Post
This is part 7 of the Turret system in unreal engine 5 using C++. Today, we are going to work on damaging the player character when it gets hit by the bullets of the turret. Here, we will do a simple line trace in C++ to detect if any character get hit by the bullet. If yes, the Damage event will be called on that hit actor. This damage event will be overridden in the character class to decrease the health value and spawn blood particles. If the health is reduced to 0, the character wil...
2022-02-24 05:10:12 +0000 UTC
View Post
This is episode 34 of third-person shooter series based on Unreal Advanced Locomotion System. Here, we are going to do some improvements to the behavior tree based AI system of the characters. Following points will be discussed and implemented in this session. - Increasing the mobility of the AI characters when they are engaged in battle. - Selecting movement mode (crouch, run, sprint, walk ) according to the situation - Prevent locking onto dead enemies - preven...
2022-02-23 04:31:41 +0000 UTC
View Post
This is episode 33 of third-person shooter series based on Unreal Advanced Locomotion System. Here, we are going to work on a way to enable and disable friendly fire in the shooting system. When the friendly fire is enabled, when a character shoots towards an enemy, if another ally comes in between, the ally will get shot. Even if the other character is not intentionally shooting at the ally. When the friendly fire is disabled, allies won't take any damage from the bullets shot by members of ...
2022-02-22 04:29:14 +0000 UTC
View Post
This is part 6 of the Turret system in unreal engine 5 using C++. Today, we are going to get started with the shooting mechanics of the turret. When the turret detects an enemy through the laser beam it emits, turret will start shooting at the pointed target. First, we will add a UParticleSystemComponent as the muzzle flash and add a variable that holds the sound effect of the shooting. Then we will implement the Shoot() function which activates the muzzle flash and the sound effect at the no...
2022-02-21 04:36:39 +0000 UTC
View Post
This is part 5 of the Turret system in unreal engine 5 using C++. Today, we are going to implement a way to detect enemy characters for the turret. This will be handled through a line-trace and an interface function names IsEnemy() which will be implemented in C++ on third person character class. If the HitResult of the line trace contains a Hit Actor and if that Hit Actor implements the interface function IsEnemy() and if this function returns true, the character will be detected by the turr...
2022-02-20 04:23:37 +0000 UTC
View Post
This is part 4 of the Turret system in unreal engine 5 using C++. Today, we are going to add the C++ third-person character that comes with the unreal engine content packs into the project. After adding the c++ mannequin third-person character content pack, we usually get some c++ errors. For example, one error we get is the blueprint of the third person character will say derived from an invalid class. And another common error would be, CDO Constructor (GameGameMode): Failed to find third pe...
2022-02-19 06:54:24 +0000 UTC
View Post
This is part 2 of the Turret system in unreal engine 5 using C++. Today, we are going to work on how to smoothly rotate the turret with a constant rotation speed. Last time we implemented on the same feature but the rotation speed was not constant as we were simply using the RInterp node to get the rotation closer to the target rotation we need. This part was done in animation blueprints so that we were able to implement the feature fast and test our prototype. Here, we will implement a custo...
2022-02-17 04:32:06 +0000 UTC
View Post
Today, I am going to start implementing a Turret system in unreal engine 5 using C++. This would be targeted towards people who are already familiar with unreal engine but want to learn how to use C++ for game programming work. I will be using unreal engine 5 and visual studio 2019 for this episode. The turret will have a laser beam and it will be sweeping through a defined range continuously and we will be able to customize the sweeping range per instance of the turret. All the program...
2022-02-16 04:12:40 +0000 UTC
View Post
This is the 32nd episode of third person shooter series based on Unreal Advanced Locomotion System. Here, we are going to work on how to prioritize and select the opponents when AI characters are engaged in shooting. In the battle system we have implemented, there can be multiple characters belonging to one team and one AI character can perceive multiple opponent characters at a given time. In order to make the battle more realistic, they should be targeting the enemies closest and easiest to...
2022-02-15 04:43:17 +0000 UTC
View Post
This is the 31st episode of Unreal Advanced Locomotion System based shooter series. Here, we are going to implement a character spawner that spawns characters that belong to different teams who engage in a battle with a different team. The spawner will have a maximum character count that can be alive at a given time and as the characters die in battle, it will spawn new characters to participate in the battle.
CodeLikeMe Third-Person shooter series: 2022-02-14 04:15:36 +0000 UTC
View Post
This is the 30th episode of Unreal Advanced Locomotion System based shooter series. Here, we are going to refactor and re-organize the AI system by introducing nested behavior trees. At the moment, we only have one big behavior tree which contains everything from fighting, searching to AI duties. Today, we are going to break down different sections into a separate behavior tree and include them as a run behavior tree node in the main behavior tree. So, the main behavior tree will look much si...
2022-02-13 04:33:06 +0000 UTC
View Post