A downloadable game for Windows

Be aware that its not a clone of a souls, its an rpg prototype inspired by souls to educational purpose only.

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 : 

Movements :

  • Character orientation
  • Rolling 
    • Player can roll in the direction of the camera or where the left joystick points to.
    • Used custom c++ notification on the rolling animation to make the player immune 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)

AUDIO managment:

  • For jump, hit, roll, walk, aggro sound, i made a system that can random play a sound based on an array of sound exposed to editor. So you can add any sounds you want 


I also made little playlist series on youtube of my progress : 

Download

Download
JustBegin.zip 480 MB

Install instructions

Unzip game windows > JustBegin.exe.

Development log

Leave a comment

Log in with itch.io to leave a comment.