Project FeedBack
Has a fan of Darks Souls series i wanted to reproduce the main gameplay feature of souls series only using C++.
The main goal is to learn more about c++ programming in Unreal Engine and general UE5 concept.
The first constraint of the project was to make all object/concept/actor of the game editable by somone who doesnt know how to code by exposing them in the editor. So you can edit npc path, damages, animation etc...
The second was to play the game on controller and keyboard/mouse.
Features :
Mouvements :
- Character orientation
- Rolling
- Player can roll in the direction of the camera or where the left joystick point to.
- Used custom c++ notification on the rolling animation to immune player at the wanted frames.
- Jump
- Crouch
Energy managment:
- attack, jump, roll cost energy
- You can regen energy, but if you are running you regen lower, if the player is iddle you regen faster
- blocking stop your energy regen.
- Being attacked while blocking cost you energy.
Target NPC:
- Target an npc displaying life and round circle like souls
- Be able to switch target to the wanted direction. Used dot product to do so.
- Always facing the target
- Untarget the npc by pressing the same button
- Walk speed while target reduced (exposed in editor)
Combat & Weapons:
- All NPC and player who's inerhit the based character class can attack
- Used notification to enable canAttack boolean at the given frame of each attack animations.
- If you are being hit and if you are not blocking, you will be stuned for x sec.
- Attack animation and damages belongs to the weapon class according to dark souls gameplay
- All NPC and player who's inerhit the based character class can block using a shield
- When you are being hit while blocking, you loose energy by the amount of the weapon hitting you. If you are running out of energy, you will be stuned for x sec.
- You have a small and a Heavy attack like souls, these attacks behaviour belongs to the weapon you are using.
Inventory:
- Display inventory by pressing i or select
- Inventory is an actorComponent attached to the player
- Displaying a list of item with name/picture
- Click to use
Items:
- Items can be looted by player pressing a button
- Items can be dropped by npc or just on the ground
- Items can be persistant or destroyable. For example :
- You can have an item that will give you flask or a weapon as much as you press the grab button (usefull for creating armory)
- Items has differents utility (the use function is overrided by each item class)
- Items are displayed in inventory
NPC and AI:
- Some NPC inherit the same parents class as the player, they are on the same level of inheritance.
- Using Bheavior three for NPC AI using custom c++ tasks and custom c++ observers.
- Patrols of AI works with spline component and can the path can be edited by everyone with ease.
- When you enter in range npc aggro
- NPC has a chance to block/roll (variable exposed on editor) if you are being violent.
- NPC tries to find the right way to attack you.
- If you are tring to run out, the npc start to chase you and run faster. You can speedrun ahah.
BOSS:
- Like NPC, Bosses has their own behavior three with custom c++ tasks/decorators.
- The only one boss in my prototype has 3 phases ;
- Phase 1 : normal attack and Smash, the smash deal a huge amount of damage and the range is wider than the normal attack.
- Phase 2 : boss is immune and start running at the center of the arena to rest for x sec, spawing x amount of NPC. You have to defeat the NPC before the rest time of the boss or the fight will be harder.
- For the spawner component, the npc class to spawn and amount are exposed to editor
- Phase 3 : Spawning AOE of flame dealing damage to player randomly in a radius around the player.
- When you kill the boss you fnish the game and restart the level.
Saving system:
- c++ class inherit UsaveGame is used in this game.
- Like souls you have to enable fire on the map to save the respawn point and save you current items/weapon etc.
UI and Quick use:
- Like all the project UI data is managed in c++
- Displayed life, Energy amount on UI
- Displayed Weapon and shield equiped
- Display notification animation when you pick up item and when you enable fire (save game)
Files
JustBegin.zip 480 MB
Jan 18, 2023
Get JustBegin - Souls Like /ARPG (Proto UE5 Only c++)
JustBegin - Souls Like /ARPG (Proto UE5 Only c++)
Status | Prototype |
Author | Akim |
Genre | Action, Role Playing |
Tags | cpp, darksouls, Souls-like, ue5 |
Leave a comment
Log in with itch.io to leave a comment.