Saturday, 30 March 2019

Week 7 & 8 - Second Enemy

Final Year Project

Week 7 & 8


Now that my level is mostly finished I will be spending from now until close to deadline creating the various enemies in my game and polishing main mechanics. Due to this being my first experience with a fairly complicated AI, This task unfortunately took two weeks.This was due to the fact I was adding in phases to the enemy and also polishing various player mechanics for smoother combat. The only issue I am currently facing is that once the enemy performs their jumping attack, the mesh snaps back into it's original position. This is due to the lack of a root bone in the animations I acquired from Mixamo but I am currently researching into how to fix this problem. 





Here I have made some changes to the receive damage node in my player blueprints. I have added two separate functions that play the block and hit reaction animations depending on if the player is blocking or not. These functions also disable input while playing. This leaves the player open to receive another attack.




This is the current layout of the behaviour tree for my second enemy. the first half is similar to the basic enemy whereas it moves to the player. However, I have added wait functions to add realism to the attack animation. I have also added another attack that can only take effect once the phase 2 key is set. 



Sunday, 17 March 2019

Week 6 - Finishing Level

Final Year Project



Week 6


As I was ahead on my schedule, I decided that I was going to focus on my level this week so then I can focus on mechanics until final deadline. As I had already created the majority with geometry within UE4 I decided to fill out my level with assets as well as make some design changes to the map.









This is the current layout of my level in a birds eye view. I have tried to keep to a modular layout so I could create simple areas from asset packs I acquired through the UE4 marketplace.  





This is the current player start location, I have changed it from an open room to a landing to show that the player has just entered this dungeon and their only way out is to progress. 












The first room that the player enters is a destroyed hall full of basic enemies. This gives the player an area to get used to the combat mechanics. 




The player will then progress to this hallway where they will encounter the next type of enemy witch is currently a work in progress. This area gives the player a choice either to get closer to them to fight in an open space or take them one at a time at the rubble. 



However, if the player were to lure them back to the rubble, thy will be faced with two more brutes coming from a much tighter hallway. this adds a trial and error system as the player will have to learn where enemies are as to not be taken off guard. much like in dark souls. 




Once completed, the player will then enter this area, while it looks open and safe, once the player reaches a certain point in this room, a small boss fight will begin against the first beast, the griffon. 













After the boss fight, the player will then proceed though the archway into this room. here they will find a few items to help them along the rest of the way such as healing items and spells. 















The player will then proceed along this bridge where they will face the banshee. The player will have to fight these enemies on the bridge while trying not to fall off.












Once the banshees are defeated, the player will progress to this area. once here they are left with a choice, they can either proceed to the final boss battle or climb the other set of stairs to find the great sword.













This is the current work in progress for my final boss room. I am planning on adding a second phase where the dragon will knock down a wall which leads to outside. Here the dragon will be able to fly and use more attacks.

Tuesday, 5 March 2019

Week 5 - Player Combo and Stamina System

Final Year Project

Week 5


This week I mainly focused on Creating a combo and stamina system for the player. I began by creating three separate animation montages and adding anim notifies for saving the attack and resetting the attack. If the player continues to attack before the attack is reset the next montage will be played using a switch on int attack function in the players blueprint. 


This is the current combo system in the player blueprint, I plan on also adding in a heavy combo system using the right mouse button. 

As well as this combo system I have also created a function stamina function. when the player performs moves like attacking and dodging, their stamina will deplete. When the players stamina reaches 0, they will not be able to perform any of these abilities, they will also not be able to block enemy attacks. I achieved this by adding a Boolean to check when the players stamina is 0 and set the no stamina check to true.  As well as this I have also added a stamina regeneration system that will replenish the players stamina if they are not performing anything that requires them to use stamina. 







Wednesday, 27 February 2019

Week 4 - Enemy damage system and start of level block out

Final Year Project

Week 4

Since my basic combat system was almost complete, I decided that this week I would begin work on adding damage to the enemy and attaching weapons to the player through sockets. 

Setting up damage for the enemy was fairly simple. Once I had attached the sword to the player, I added a collision box around the edge of the blade. I then set up a overlap function with the sword in the enemy blueprint. Then I had to create a basic health system to test enemy death. I set this to a low number so that I could test attacking the enemy. 

The first problem I encountered while creating this was that when the enemy dies they freeze slightly before playing the death animation. This is an issue I can address while in the polishing stage of my project. 








This clip demonstrates the enemy death function. now that these basic combat mechanics are complete I will now be focusing on creating more enemy types as well as player abilities alongside my level design.













Now that I am currently on track for completing my project for the deadline I am currently working on my level block out. I am creating this so that I can experiment with my various enemies to see if I can make my project more challenging, for example, fighting a large enemy in a tight space. 


This is the current state of my level block out, I plan on completing this by the end of march. 

Week 3 - Enemy AI

Final Year Project

Week 3

This week I mainly focused on creating the first enemy AI for my project. I decided to start with something basic so that when it came to creating the more complex enemies I would only have to expand on the mechanics that are already in place. As I have had experience in creating AI using Behaviour trees in previous projects, I started by creating the various tasks needed for a basic AI such as sensing the player, chasing the player and attacking the player. 



This is the AI controller currently implemented into my basic enemy. This is where the player is set as the target for pawn sensing. 


Now that basic functions were added to the AI, I began to create more tasks that would make my enemy seem more real. I added a function that makes the enemy search the last know position of the player. I also added a focus task that allowed the enemy to follow the player more smoothly. 


This is the finalised Behaviour tree for my basic enemy AI. Once I begin to add more complex AI to my project I will be expanding from this behaviour tree.




This clip demonstrates the pawn sensing of my AI and how it searches the players last known location.














Thursday, 7 February 2019

Week 2 - Player Mechanics and Basic Animations

Final Year Project

Week 2


This week I decided that I should begin work on areas that I have knowledge in already such as the player mechanics and AI. I started by adding simple mechanics such as movement, sprinting, attacking and the ability to lock on to enemies. along with creating these mechanics, I began adding animations to these mechanics, the main reason I did this was to decide early on what the overall feel of my game would be like and after adding in animations I decided that I was going to keep my game slow paced with difficult combat. Once these were added I felt like I should finish the week by learning how to create a lock on system. During my research I learnt how to make my player focus on the closest enemy in a minimum range using camera rotation. 

     

These are the currently implemented player mechanics including target lock-on, attacking, blocking, movement and sprint which includes a timeline to provide a smoother transition between walk speed and sprint speed, this also provides a smoother transition for animations.


This is the current state of the state machine within my animation blueprint, I have included a combat stance in my game that is still in progress, but when the player enters this stance they become more effective at blocking and moving during combat. 


Finally this is the blend space I created for the idle/walking/running states of my character, this creates a smooth transition between animations depending on speed and direction. Currently I have only included one direction but when I come to the polishing stage of the project, these will hopefully be included. 




























Wednesday, 30 January 2019

Week 1 - Proposal

Final Year Project

Week 1



My first task for my final year project was to create a proposal that consisted of an overview, motivation and rationale, technical overview, project deliverables and areas for research.

For my project I decided to create my own combat system for an RPG inspired by games such as Dark Souls, The Witcher 3 and For Honor. Here is a basic run down of my proposal:



Overview

We follow Paladin Recruit Petyr Tedric that has been sent on a quest to Eliminate the forces of Hell and to recover a holy relic, however, there is more to this quest than what meets the eye.
The player will explore this dungeon in search of enemies, relics and upgrades. While they explore the dungeon, Petyr will also gain experience and level up his skills and abilities through combat and various tasks.


Motivation and Rationale 

The reason I chose this project was because I personally specialise with player mechanics and AI as I have previously worked on these areas in previous projects. . I believe with these skills I could create an effective combat system for an RPG. 


Project Deliverables

•Fully functional combat system that rewards the player for skilful gameplay as I am aiming to have a risk reward system in parts of the game..

•Full level polished suited to game environment and suited to mechanics, e.g. boss fights.

•Various completed enemy AI that challenges the player with various abilities.