
I'm back to this game idea, but am trying to achieve it within the Unreal 5 engine. A friend and some others have suggested I tried my hand at this game engine in the past, but was stubborn and stuck in Unity land. So here I am finally and so far I like it. I am able to achieve things at a much quicker rate due to things being built in. The game revolves around two characters, Naomi, a mystic and Vega, a cyborg. Naomi is able to use her spell casting abilities to open passages from afar while Vega can use his weight to activate heavy switches that Naomi would need a utility or armor or another game element to achieve. The same goes for Vega on opening long range passages. He would need some type of long range utility or weapon.
Game Flow Video
Here is my first video of the game and how it flows from screen to screen. Showcasing the character select menu, ship and level 1 maps.
Attack System
After some more refactoring I consolidated the attacks to a macro. This allowed me to just input a montage action into the macro and that was it. Everything else is being done within it as normal. So instead of having five to 10 different code blocks, I now have one that I can come back to and fix. Well two. One for hand attacks and one for feet. I also got rid of the line renderer that was there before and now the attack damage is being done with a sphere cast after being called from an animation notify event. I created four of these however, one for each limb that you can attack with. There may be a more efficient way to do this as well, but it works for now. I was also able to create a equip weapon macro and check for weapon macro. Equip weapon will clear all equipped weapons and set animator bools accordingly before equipping the new weapon selected. The check for weapon macro gets called at the beginning of the stage to ensure the player has the selected gear they wanted from the ship. This area still needs some work as well, but it works as intended at the moment and in a pretty efficient fashion, however this can get cumbersome pretty quickly if not kept in check. I've added a single weapon to the game so far. A scythe that the player can equip from the ship and take into the level with them as stated above. At the current time, only one attack is done for it, without it doing any damage. It just has an animation montage playing to show that it works.
The attack system in this game is fairly simple. I want the player to be able to start a combo and have a combo timer. While attacking within a certain time, they can string together a combo. If they stop at any time for a small amount of time the combo will drop. This will reset their attacks to the first few attacks they started with. So lets say a swipe into an uppercut then a hook. The player can string these three attacks together if done in succession in a short amount of time. The system also allows a combo ender or a secondary attack. So lets say you start a main attack combo string with the left mouse button or X button on a gamepad. The player strings together 2 of these attacks. Then presses the right mouse button or Y button on the gamepad to do their secondary attack. This would end the combo with a more powerful attack. In my system these attacks are coded to be punches and kicks. Punches being the primary attacks and kicks being the secondary and combo finishing attacks as they are reflective of the power they have in real life. A friend suggested I rework the attack system to allow more accurate attacks and I agree. This will be done within the next week or so. I was using a line trace in front of the player and dealing damage based on that, but its not accurate to what I want. Below is a video of my coding of the attack system I created to make the combo system. It's still extremely basic and will worked on more as time goes on.
First Troubles
Well, I've run into my first set of problems. I wanted to start backing up my files to ensure nothing gets lost. However, I went about it wrong. In Unity you can move files around outside of the editor and that's fine. This is apparently a big no no in Unreal engine as it breaks things. I was unaware of this fact and was trying to break up chunks of things to send to Github desktop. Even this step was flawed as I'm thinking about it due to being able to check off certain things to submit or not. However, the damage was done and the engine was unable to recognize certain folders that should have been the ones for the mannequin and normal third person blueprint. Oh well, now I know better. I spent about seven hours repairing the things I broke and am now back to it. I'm currently still going thru a udemy.com course as well to learn new information and it is definitely helping. Those things are listed below in the resources section of this page. I was also trying to get a 1 handed weapon idle to work correctly. This was pointing me in the wrong direction as it was saying it could be the animation post processing blueprint. Clicking enable or disable on an animation window showed a stretched mesh. Which I used to find a few google searches. This pointed me towards changing the animation post processing blueprint, but it looks like it operates a little different in Unreal 5 as you can't select a blueprint, not that I could find at least. Speaking to a friend again, Andres, he suggested that animation may be corrupted. This would be the first time in a while since I've seen this. I say a while, but only been in engine a couple weeks. However all the animations I have retargeted have all been good, but haven't been through a folder movement and migration. So, I took heed to his advice. I retargeted the original animation and bam, back in business. Things looks to be looking good again all things taken into account. However I still need to do some stuff to the level 1 map as its lost its overall textures, but I wanted to focus more on what was at hand first. More to come.
Advanced Color Picker
Since I started the project I wanted a more detailed color picker instead of laying out a selected assortment to choose from. Since then, I have found a good tutorial and was able to implement that into my game. Now you can select any color from the color wheel as your first and second colors. This is all good with the exception of choosing the color or non color whichever way you look at it which is black. As it doesn't fall on the color wheel. I can try and find a way to put it on the outer skirts of the wheel as that would make the most sense but as for now there isn't a black that you can choose, which sucks in my opinion. I love the look of black on blue, but cannot select that as of yet. It took a little bit of trying to figure out how to hook up the color to the game instance, then pulling that variable from the instance into the third person blueprint on start. I figured it out though and now everything is working correctly. Below is a few pictures showcasing the color pickers and the character in the ship map to show that it carries over.
Enemy AI
I followed another couple of videos to make the baseline AI for my enemies but have also created my own logic on top of that to make it more robust. The enemy will start by roaming the area with a walking speed, and when they see the player they will then run towards them and start attacking. Instead of having a set string of combo's like the player they attack randomly between different attack montages based on a random between range node. If they go over a certain attack index, this being three, it will reset and they will have to start a new attack combo. Their combo's will string together much like the player's, but are more random and will drop if they wait too long to attack.
Resources
Youtube.com - Gorka Games, That Skye
Youtube playlist - https://www.youtube.com/playlist?list=PL8QoEQJcJfu8pMJtJOJMdrddGaUO4IGhF
Udemy.com - Unreal Engine 5: The Complete Beginner's Course - David Nixon