[WIP] Top Down Rogue Lite Plugin

Hello everybody!
I’ve been working on a new asset for the marketplace in the last few months and I’d love to receive some feedbacks from the community before moving on, refining a few things and release it. :grin:

General

Name: Top Down Rogue Lite
Type: C++ Plugin
Objective: The introduction of a clean and optimized new template for Unreal. The idea is to get a fully functional tech demo which can be further developed into many different kind of games, sharing the same core mechanics. Compatibility with other Marketplace assets is a focal point.
Target audience: Small/Medium team, even talented solo developers.

TechDetails

Engine Version: 5.1.1+
Blueprints: 50+
C++ Classes: 57 (23 new AI Behavior Tree nodes)
Network Replicated: Yes
DevPlatforms and support: Windows

Dependencies:

  • Niagara
  • AnimationWarping
  • AnimationLocomotionLibrary
  • RigLogic
  • GameplayAbilities

Features:

  • C++ Plugin.

  • It was entirely developed on UE5.1 using many recent libraries and tools.

  • Fully exposed to blueprints.

  • Minimalistic and neat project, like any template should be.

  • Use of physics as part of the gameplay.

  • Custom UCharacterMovementComponent with an alternative walking speed (correctly replicated) which can be used for speed up (sprinting) or slow down (walking) the character movements, and a native, physical, Dash action.

  • Main Weapon is the default weapon for a given character. By default the main weapon for this project is “Fists”, but you might want something different like in Fortnite, where the equivalent would be the Pickaxe. This weapon can’t be dropped and will disappear with the character after death.

  • Action Bar (main inventory) System, you can pickup/drop any item and it will be stored there. You can freely switch slots, or go back using the main weapon instead. If you select an empty slot, the main weapon will be used.

  • AnimClassLayers used for different stances depending on your weapon (similar to Lyra, greatly simplified).

  • Camera Occlusion Management, you can decide which scene components might be hidden if they’re occluding the sight between the camera and the character capsule.

  • Postprocess showing the player’s character shape when it’s behind something. The same material supports Custom Depth Stencils and can be further expanded. The same material is responsable for the (yellow) items outline when the character is ready to interact with them.

  • Player’s Line of Sight: a custom component for players. It uses the global post process depicted above to mask the visibility for the player. Can decide which classes show/hide depending if they’re in sight or not (like Pawns, Items etc…).

  • Custom material function, which will gather the alpha information from the player’s line of sight component and will apply it to its own material. This is cool for smoothly mask an entire mesh and not just make it disappear, but it has some limitations, for example it doesn’t work very well with dynamic shadows.

  • Both AIs and Players can control the same character class. This allow any type of gameplay where you can control enemies or just swap body.

  • Gameplay Ability System for each character. It’s natively used for any player input, this way you can give or remove the ability to process any native input. Native inputs are listed below.

  • Progressive Respawn System, when a Character overlaps a respawn volume the system will save the tag from that actor into its associated PlayerState. When you die, you can respawn and the latest (overlapped) spawn actor will be automatically chose.
    [Note] Since the end goal is a Rogue Lite template, when you die you’ll drop all your weapons/items and you’ll restart with a fresh new character.

  • Cosmetic System, which uses the SkeletalMeshMerge class to merge multiple skeletal meshes together. It’s natively replicated and works runtime.
    [Note] This feature doesn’t support Morph Targets nor Clothing Simulation for now.

  • Flexible AI, fully customizable. The AI structure is not rigid at all, the plugin mainly provides many different new Behavior Tree nodes you can use to build your own AI. A generic Behavior Tree, created mainly for demonstrative purposes, is present in the plugin’s folder and should be used as starting point to understand each new functionality.

  • A few AI tools like an AISplineTool, used for patrolling a defined or random sequence of locations, and an AI Spawn System using triggers to spawn / remove AIs. Currently, it just works progressively and once the associated character is dead, the spawn will be disabled, but it’s just a starting point and will be further developed in the future.

  • Physically simulated (and replicated) doors. They’re optimized and won’t simulate physics unless a specified actor class (you can set a list of classes) is overlapping this actor’s trigger volume. They can be locked/unlocked runtime.

  • Weapon system based on the Item inventory, with a melee and a firearm native c++ class. The firearm class is derived from the melee class, so your weapon can easily be an hybrid melee/firearm weapon.

  • AIPerception system, using “hearing”, “sight” and “damage” perceptions.

  • Vertical Aim, you’re not limited to 2 axis, by pressing a button the character can aim up or down, depending where the mouse cursor is pointing at, without interfering with the rest of the gameplay.


Uncut demo video:


Download demo:


Source folder structure

Behavior Tree custom nodes


To do list before releasing:

  • "̶H̶e̶a̶l̶"̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶a̶n̶d̶ ̶h̶e̶a̶l̶t̶h̶ ̶p̶a̶c̶k̶ ̶i̶t̶e̶m̶ ̶e̶x̶a̶m̶p̶l̶e̶

  • F̶i̶r̶e̶a̶r̶m̶s̶ ̶a̶m̶m̶o̶ ̶p̶i̶c̶k̶u̶p̶ ̶a̶n̶d̶ ̶e̶n̶e̶m̶i̶e̶s̶ ̶d̶r̶o̶p̶p̶i̶n̶g̶ ̶a̶m̶m̶o̶ ̶w̶h̶e̶n̶ ̶t̶h̶e̶y̶ ̶d̶i̶e̶

  • L̶e̶f̶t̶ ̶h̶a̶n̶d̶ ̶I̶K̶ ̶f̶o̶r̶ ̶t̶w̶o̶ ̶h̶a̶n̶d̶ ̶w̶i̶e̶l̶d̶ ̶w̶e̶a̶p̶o̶n̶s̶

  • M̶o̶v̶e̶ ̶A̶I̶P̶e̶r̶c̶e̶p̶t̶i̶o̶n̶C̶o̶m̶p̶o̶n̶e̶n̶t̶ ̶f̶r̶o̶m̶ ̶t̶h̶e̶ ̶C̶h̶a̶r̶a̶c̶t̶e̶r̶ ̶t̶o̶ ̶t̶h̶e̶ ̶A̶I̶C̶o̶n̶t̶r̶o̶l̶l̶e̶r̶

  • Keep fixing minor issues


And here’s what I’d like to know from you: :thinking:

  • What do you think so far? Do you think it might be a compelling product for the marketplace?

  • Have you found any issue playing the demo?

  • Which price range would be right for this asset, in your opinion?

  • Is there any tool/website you would advice for documentation production?

  • Anything else you'd like to share!


Thank you so much for your time, any feedback is greatly appreciated!

3/16/2023: New test build on itch.io!

3/22/2023: Working on the general documentation on GitHub

3/23/2023: New uncut gameplay video

1 Like