Action rpg

Is there an eta when this will be ready or when the docs will be done? I can’t wait to play around with it.

It will be released when 4.20 goes live. Which should be sometime today.

The sample seems to have been released, but the docs are still locked, what’s going on?

Here’s the docs - .unrealengine.com/en-us/Resources/SampleGames/ARPG

I was hoping it would be pure Blueprint :frowning:

Hmm. They are visible now, but I’m sure they weren’t when I posted that :smiley:

Is there a specific reason why you chose to **not **use IWYU for this example?

There is no specific reason, IWYU is currently optional for game modules and needs to be manually enabled. I may enable this for a future update to the sample but it will not make make a substantial difference for a game the size of ActionRPG

This was a deliberate choice. Even if you don’t use the ability system or other features demonstrated in Action RPG I would not recommend attempting to build an RPG without any native code

So I’ve downloaded and checked out the ActionRPG project, it looks great! I’m really thankful to everyone in Epic who worked on this, as an example for how to use GameplayAbilities. I was waiting for this before really digging into them.

That being said, there seem to be a LOT of problems with this project, which is quite surprising to me. I don’t have time to dig through and find all the problems (yet), but I fully intend to do so, then apply what fixes I can.

So far that I’ve found…

  1. Autoplay works, but not really. The AI has numerous problems, such as continuing to attack enemies who are already dead for several attacks, and the entire DebugUpdate event doesn’t work by default, so none of that logic functions.

  2. The logic for DebugUpdate is flawed to begin with, as the AI almost never uses a potion. Most likely due to being interrupted at the same time as starting it. I’d move that logic elsewhere, using a different check for health out of combat so that healing could be successful.

  3. CanUseAnyAbility is using flawed logic, only really checking if a skill (magic) is being cast. This allows for spamming of any number of other combinations of Dodge, Attack, and weapon swaps. None of these should be able to interrupt the others. I can attack much faster than intended by using Dodge and Swap interrupts.

  4. Weapon swap is problematic in general, and can quite often result in weapons using the wrong animation montages or damage values. This extends beyond the current combo, and I can relatively reliably have the sword using hammer attacks at lower damage values, as one example.

Secondarily, occasionally problems will occur with the potion or skill abilities, and even after swapping from mana to health, and meteor shower to another ability, the effect remains the same even though the UI icon changes. This doesn’t appear to happen often, and I’ve yet to nail down where the problem is starting from.

Third, equipping and unequipping weapons causes problems at times, either assuming there is no weapon equipped and being unable to attack with the equipped weapon, or conversely attacking unarmed. The latter is more reliably triggered during autoplay.

  1. While enemies cannot damage each other with melee attacks, their ranged attacks can. I’m unsure if this is intentional, I would assume not.

I’ll dig through and look for more, this is what I’ve found in the past hour since downloading it.

[USER=“270”]Ben Zeigler[/USER]
first, thanks for building up this sample. It is a great first approach of the AbilitySystem.
I’m a bit used of this module from few months and dig into your code to understand what things I could leverage from your experience.
I’m stuck into the DamageExecution flow with the Damage Property.

Why the damage propety is captured on the Source Actor and not the Target actor ?
Why did you choose to move by the DamageProperty before and not impacting directly the Health when damage are done? In the previous non official sample, the same approach was used, but I can find any sentence/comment that helps to understand the choice of this.

Thanks for your feedback:

What we’re capturing there is the Damage attribute value that is being passed in from the source gameplay effect (which is the value that comes out of the damage curve table). Anything that lives “inside the gameplay effect” is captured from the source, not the target, and then you apply the results to the target. The use of the Damage property instead of health is not 100% required, but makes the math a bit easier, we found that when designers had to think of damage as “-health” it confused them and they had a hard time keeping track of the formulas

Also, posting here to point to the fact that we’re doing a live stream Thursday

@Ben Ziegler

I’d like to know too, please

Thanks for the input.

I found some days before my mistake.I mixed the Captured DamageProperty on the source and DamageProperty on the target that is used to set damage value.
At first read it was hard to follow the fact that you used the same property “damage” for Attacker Damage and Defender Damage.

please address this
i would also like to know what i should not use blueprint for.

i have watched many tutorials and they all use blueprint for attacks (including registering damage) but this sample uses cpp to register damage.
also from the documentation, inventory is using AssetManager? which is cpp.

other things i know about that we have to use cpp for is
Nigeria and GAS only supports CPP but what is the difference between using GAS and making stats a variable in BP which most tutorials do?
also AI is one i found to be frustrating to make when using BP to create and you guys have said multiple times to use cpp if there is a need for complex AI

also off topic but can you show some settings we can turn off in UE so that we can make our stuff with a lower end PC?