Gameplay Ability System in 40 Minutes -UE4 C++ Tutorial

Поділитися
Вставка
  • Опубліковано 25 вер 2024
  • Try my C++ Survival Game Course:
    bit.ly/unrealsu...
    Discord:
    / discord
    Project files:
    drive.google.c...
    Traneks GAS Documentation Project: github.com/tra...
    Business Email: contact@reubs.io

КОМЕНТАРІ • 204

  • @DevGods
    @DevGods 4 роки тому +78

    I’ve been researching this topic for a couple of months and this video helped me bridge a lot of gaps!! We need a full series on GAS multiplayer integration. That’s a course I would buy

    • @salimp2009
      @salimp2009 3 роки тому

      there is one on Udemy..it is very very nice..i strongly recommend. You even learn to make custom GameEffectCalculations class; bunch of other cool stuff ; the instructor knows it pretty good but it is not multiplayer...also the instructor did not use those macros to set and get attributes; instead he teaches the functions that the macros call; with one note tough ; the class is 2 years old and there is one Depreciate property ...but this is documented in QA section of the class and also if you are using VS Studio it also shows the warning Depreciated and what to use instead.
      So you will be OK. I wish Reuben makes one like that multiplayer and recent info will be nice . Here is the link of course on Udemy www.udemy.com/course/introduction-to-unreal-engine-4-ability-system/

    • @DevGods
      @DevGods 3 роки тому +1

      @@salimp2009 I took this course and it was helpful with wrapping my head around the idea of GAS but it does t have the best practices for making a multiplayer game which is what stage in at now.. I’ve been reading and cherry picking code from the “GASSHOOTER” repository & Unreal Tournament. They have been helpful but I still want to get a better understanding of why things are being done and if there is a better way.

    • @salimp2009
      @salimp2009 3 роки тому +1

      Nice and yes that course does not have best coding practices. (too much casting..;)) How about is the GASSHOOTER available on UE4 ...I was looking at ActionRPG's code on UE4 Learn as well. That has a better coding practices and using GAS and both c++ and BP Interfaces , Behavtrees, EQS ...I am also new to multiplayer as well doing a DemonsSouls Remake replica but on BP. It is a class course on Udemy as well and instructor teaches you the best practices as much coding and development wise ...After that i hope i can combine all that in one pot :)

    • @Capitanazo01
      @Capitanazo01 2 роки тому +1

      @@salimp2009 Thx, but unfortunatel its not free like this one :)

  • @AdrenResi
    @AdrenResi Рік тому +20

    If anyone is wondering, the C++ code still works fine in Unreal Engine 5.1, though you may have to be more specific with the #include stuff
    (e.g. #include "GameplayAbilities/Public/AbilitySystemInterface.h" instead of #include "AbilitySystemInterface.h")
    I also needed "Engine/Engine.h" for the GASAttributeSet.cpp because of "Net/UnrealNetwork.h"
    For whatever reason, when I removed the Engine stuff, it broke the whole project and I had to remove entire files to get it fixed.
    If you're having issues, go through the video carefully and make sure you're not missing anything. Also, you will need to restore a bunch of code from the UE4 third person sample project because in 5.1 it's now gone.

  • @musicdudem6673
    @musicdudem6673 4 роки тому +19

    Yes please do a full course on this, like an action rpg or something please! The Survival course already has shooter mechanics i was hoping to see something more fantasy/melee/magic/archery based

  • @__-tz6xx
    @__-tz6xx 3 роки тому +19

    23:54 One thing which developer should be aware with gameplay effects is: if you have an effect which is set to 'infinite' and the attributes it applies to are set to override, then any new gameplay effect which tries to add to those attributes will not apply because of that initial effect. I had this problem.

    • @maxmustsleep
      @maxmustsleep Рік тому

      How did you solve it? do you just change it to an additive effect instead?

  • @DrDangers
    @DrDangers 4 роки тому +4

    popping up out of the corner got a good laugh out of me lol. Thank you for this!! GAS is such a struggle for someone who only vaguely knows unreal C++, huge help. Subscribed for GAS content :-D

  • @JoayMaru
    @JoayMaru 3 роки тому +11

    Loving the videos, and thank you for creating them!
    One thing I would love to see for future videos / things that would really help people following along, pleeeeeaaaaaase, please, do the includes first.
    That way when manually typing and following along, there aren't a ton of issues with auto complete, and errors.

    • @JesseLeeHumphry
      @JesseLeeHumphry 2 роки тому +1

      Agreed there was deffo a bit of "Oh god what do I do here, I don't get it"

  • @Nuckydie
    @Nuckydie 3 роки тому +3

    Unbelievable how a 40min video teached me more than reading the docs for couple of months.
    You did a great job. Much love from germany!

    • @NuttachaiTipprasert
      @NuttachaiTipprasert 2 роки тому

      Because UE's documentation is (and always has been) rigid and pretty much useless most of the time. Yup, it's a bold statement but compared to other SDKs and tools I've been using in the past 20 years, UE sure is one of the worst in the documentation department.
      Learning a new concept, paradigm, system, etc. is better to learn by example since there's no way you can learn all the ideas encompassed in this new system in one or two months and UE sucks badly in that department. The documentation doesn't give us any explicit use case as to when and why this API might be useful and that renders it pretty much useless.
      The fact that I learned a lot more from UA-camrs than UE's official courses says a lot.

  • @jneal4154
    @jneal4154 3 роки тому +2

    Every time I go down the rabbit hole for UE4 and C++, Reuben is the man ACTUALLY answering the hard questions. Thanks man. 👍

  • @AlvaroRealtimeMayhem
    @AlvaroRealtimeMayhem 3 роки тому +2

    This is gold, and still wondering why so few people are paying attention to this framework. Thanks for the effort! Really interested in more of these series, free or paid.

    • @GuyPaddock
      @GuyPaddock 2 роки тому +2

      Lack of documentation and steep learning curve.

  • @АлексейЛогинов-ж1ц
    @АлексейЛогинов-ж1ц 4 роки тому +1

    Dude) I remember learning from you back in 2016, you were among the pioneers of youtube UE tutorials producers, there was so little information, and you were a huge help! I ended up making a career as a php dev, but thats whole other story...
    Excellent work, keep it up!
    *nice moustache, too*

  • @musicdudem6673
    @musicdudem6673 4 роки тому +6

    YAASSS KING
    EXACTLY what I've been looking for

  • @dusteyezz784
    @dusteyezz784 2 роки тому +3

    If you encounter issues like me, be advised that after everything is written reubs adds more headers, usually you should do that in the beginning or as you implement stuff, so all the errors will be resolved with that.

  • @livecrak
    @livecrak 3 роки тому +5

    If someone suffers the problem that the attacking anim montage is not replicated, here is my solution. I am also learning the GAS too, so I don`t know it is the proper way. But is works.
    1. window > Gameplay Cue Editor
    2. Add New Gameplay Cue Tag
    GameplayCue.PunchAnim
    3. Add New GameplayCue Handler
    GC_PunchAnim
    4. Open GC_PunchAnim,
    override the function "OnExcute".
    Following is the pseudo code.
    funtion OnExcute()
    {
    if (MyTaget.GetLocalRole == ROLE_SimulatedProxy)
    {
    Cast MyTarget to ThirdPersonCharacter.
    Play Anim Montage (with anim montage asset "M_Attack") to Casted ThirdPersonCharacter.
    }
    return true.
    }
    5. Open GA_Punch and find the event "ActivateAbility" that you made.
    In between "Play Montage" node and "Wait Gameplay Event",
    place a node "Excute Gameplay Cue On Owner"
    .
    In that node, edit the Gameplay cue Tag to "GameplayCue.PunchAnim"
    It might work.

  • @gmaheuxdev5349
    @gmaheuxdev5349 2 роки тому

    I have seen hundreds of tutorials, and I really like the way you copy paste code and explain it, It saves a lot of time and it does not make the content more confusing. Thank you and great job

  • @Gulzt
    @Gulzt Рік тому +1

    Great introduction!
    Good to know: If you open up the Ability System Component that you attached to your character, look in the details pane and find "Default Starting Data. Here you can associate an attribute set with a data table in which you would define the default values.
    This is an alternative to using a game play effect to achieve the same and offers some more flexibility when it comes to tweaking the values or pulling them from external sources.

    • @donaldslayer
      @donaldslayer Рік тому

      Does this get applied after the code he used? It’d be nice to leave that there as an automatic, and be able to set new defaults in blueprint children of GASCharacter with the data table.

  • @adamodimattia
    @adamodimattia 3 роки тому +2

    Couldn't wait to finish this one and it is simply awesome. You really show the right way to blend c++ and blueprints. I really don't get all those haters: "you should write everything from scratch in c++". Yeah, because Epic made blueprints just to mess with people and they should be avoided at all cost! ;)

    • @CannibalPedroX94
      @CannibalPedroX94 3 роки тому +1

      Epic made BPs so that people that aren't very good at C++ can still make something with Unreal. The problem with blueprints is that:
      - They don't teach you how to code.
      - They only exist in UE4, not in other engines.
      Many people, like myself, make projects to get confident with C++ and games engines so that, one day, they could send an application + personal project to a tripleA software house without getting instantly rejected.
      So, no, people that ask for C++ pure tutorials aren't necessarily haters, they just want to learn C++ and see how the code works without having to translate every single BP block to C++ by themselves (which is pretty hard considering how poorly documented most of the UE4 functions are).
      I really appreciate this tutorial, he explained a complex system like GAS very well. I subscribed to the channel hoping he'll continue making videos on GAS. But I've to admit that when I saw him making the ability with BPs I was like "oh boy, here we go translating BPs to C++ again".

    • @adamodimattia
      @adamodimattia 3 роки тому +1

      @@CannibalPedroX94 yeah, the more I’m into the engine, having explored more c++ approach tutorials and projects, I can agree with you, someone said rightfully that bps should be used only for cosmetics, but 90-95% of the logic or even more should be in c++. Sadly the documentation is scarse but quite a lot is covered in commented explanations within the engine iself, just one need to get used to it. I’m coming from Unity, still using it for work but I really like Unreal, many thing are really great, the major thing I quite hate though are BPs, I mean their nice if you just connecting sone stuff already coded but it is a nightmare for me to do logic with them. And they are so hard to read.

  • @FranciscoSciaraffia
    @FranciscoSciaraffia 2 роки тому

    Been watching lots of videos, reading a lot of documentation, looking through a lot of examples. Official and from the Community. And THIS VIDEO. Is the best there is ♥

  • @PawePSid
    @PawePSid 2 роки тому +4

    @reubs I was just trying to follow the tutorial, but please for any future ones include header files first before writing the functions etc. It is quite frustrating to get the highlighting for the errors that only exist, because you add headers at the end. Anyway, it was very helpful. Thank you.

  • @CyberWolf755
    @CyberWolf755 4 роки тому +2

    Funny enough, I wanted to learn GAS today and a fresh new video from Reuben just got published 2 days ago.
    Also nice mustache :D

  • @SodrekR
    @SodrekR 4 роки тому +1

    There aren't really GAS beginner tutorials out there on UA-cam. Nice Tutorial Reuben!

    • @hakametal
      @hakametal 3 роки тому +1

      There's barely anything out there. And it's strange because more and more studios are looking for designers with GAS skills.

  • @bd_dev
    @bd_dev 2 роки тому

    Great stuff. After a week of reading the UE4 GAS documents and the above GASDocumentation project, I was still non wiser until I come across this video 👍

  • @JeremySwigart
    @JeremySwigart 2 роки тому +4

    You mentioned you have to manually clean up tasks that you start with in an ability or they can linger. Are you sure that is necessary? According to the docs, tasks end with their ability, and there appears to be code in UGameplayAbility that confirms this.
    There are of course circumstances you might want to stop tasks during execution of an ability without ending it, but thought this would be a useful clarification.

  • @PaulNelligan
    @PaulNelligan 3 роки тому +1

    I've been learning Unreal since Feb. coming from a software dev background. Building my first game and about to add more complex functionality. This is exactly what I need right now, so thanks for that! Some of that Macro stuff is well abstract, but at the same time I've come to accept these things as they are; boilerplate. Cheers!

  • @openglpwr
    @openglpwr Рік тому

    This was brilliant, thanks Reubs. Great prep for the Lyra journey ahead

  • @nahuelarjona
    @nahuelarjona 4 роки тому +2

    Please, please, PLEASE do more GAS content. I'm subscribing with the hopes of that

  • @adamodimattia
    @adamodimattia 3 роки тому

    Hello Reuben!!! Welcome back! I've been dying on your survival course for months! :) It's really great though. Thanks for new content on youtube!

  • @dimaferox5133
    @dimaferox5133 3 роки тому +1

    The very informative and great tutorial I'm waiting for GAS pat 2, thank you very much!

  • @hexinfinity7749
    @hexinfinity7749 4 роки тому +1

    thank you sir..i was waiting for this video for decades i guess..now i will actually learn how to do it..

  • @GuyPaddock
    @GuyPaddock 2 роки тому +2

    Putting your input setup in the OnRep_PlayerState isn't a great idea because you're going to rebind input on every replication of the playerstate.

  • @LordAlanttt
    @LordAlanttt 2 роки тому +1

    24:50 But it works on the server (authority) only. It doesn't work at clients

  • @pietballas1
    @pietballas1 3 роки тому

    Thanks for taking the time to do this, all the basics to get started.

  • @rosyfu5845
    @rosyfu5845 Рік тому

    Feels like Paul Mccartney teaching me coding, thanks! haha

  • @salimp2009
    @salimp2009 3 роки тому +2

    i just not understood the debuff is applied the way he showed we did not hook it up the character or punch ability. To see the debug effect i added debuff at the end GA_Punch after Apply DamagetoOther actor then i added Apply Effect to ourself so that way everytime i punch someone my attack power is divided by half and comes back in 20 secs
    But the way i learned was to give each of those effects a tag and under GA_Punch register those tags..But anyway it was really nice to learn especially those lifesaver macros in c++ to set and get the attributes..thnks Reuben

  • @ryanjdevlin87
    @ryanjdevlin87 3 місяці тому

    Why o why algorithm have i just seen this a year into searching unreal tutorials everyday

  • @S0paTa
    @S0paTa 2 роки тому +2

    For some reason, the Attack Montage is not replicating as expected. If I am the server and I try to hit the client then the montage does not play on the client (although the actual hit executes). Do you have any idea how to fix that?

    • @chema707
      @chema707 2 роки тому +2

      For anyone looking for a solution, it seems that using play anim montage and wait fixes this.

    • @S0paTa
      @S0paTa 2 роки тому

      @@chema707 I guess what you say works but I got a lot more insight on what is happening and actually solved the problem using these two videos:
      ua-cam.com/video/Bu5WdgPwlPc/v-deo.html
      ua-cam.com/video/gueCpmW4EJQ/v-deo.html

    • @alexfedorutsa2672
      @alexfedorutsa2672 Рік тому

      @@chema707 That worked, thank you very much

  • @gnarBones
    @gnarBones 3 роки тому

    I had previously discovered the GAS Documentation project thanks to UE4 slackers. What I want more than anything is a video tutorial serious where GAS is used with the Paragon assets to recreate one of the games heros. I'd pay top dollar for that.

  • @RprtBak
    @RprtBak 2 роки тому +3

    I wish you kind of explained things a little bit more. Maybe it's my autstic brain, but most of this was just copying what you put. "Put these rep notifies here, put these things here, add this header there" but not a lot of why things should go there and how it works with one another.

    • @farkasvilkas5839
      @farkasvilkas5839 2 роки тому

      I do not recommend using this system.
      it's too complicated.
      it's just impossible to understand.
      you will study it all your life but you will not understand.

  • @theBejourn
    @theBejourn 3 роки тому +2

    Very informative video but I went to check out the project files to avoid pausing your video constantly and its just the normal 3rd person c++ starting template?

  • @dids4406
    @dids4406 4 роки тому +1

    Would love to see more videos about GAS!

  • @JeremySwigart
    @JeremySwigart 2 роки тому +1

    One thing not covered very well, outside of a few spots in the code of checking HasAuthority for granting abilities, is what multiplayer considerations need to be accounted for in the abilities. By default, presumably say the punch ability overlap test and ability activation will be running on the client and trying to trigger effects/events. How does server authority work into the flow of ability activation and gameplay effect application. Is this just ultimately logic you have to account for yourself within the ability with HasAuthority logic as well? Thanks

  • @marszhou2092
    @marszhou2092 2 роки тому

    Thank you very much, very good talk, very suitable for getting started with GAS.

  • @mrheadshotzz4637
    @mrheadshotzz4637 4 роки тому +1

    This was very helpful. Keep up the amazing work!

  • @Pablo1517
    @Pablo1517 2 роки тому +1

    You don't need to clean up Async Tasks in Gameplay Abilities. They keep track of all the async tasks running and they clean them up by default in UE4 code.

  • @SaltSeasDev
    @SaltSeasDev Рік тому

    For those getting compiler errors in UE5+ and VS2022:
    Cpp #include that are in their parent folder need to be set to just the base extension (UrScript.h), accessing these filespaces from elsewhere will require the "parent/child/UrScript.h" full name

  • @vDungeon
    @vDungeon 3 роки тому +1

    thank you for the video. I did not get how can i shoot for example? I mean i can spawn a projectile and track the collision?
    And a question about the network. Is it possible to implement some kind of input prediction mechanism? How?
    Thanks a lot!

  • @zurgsRushm
    @zurgsRushm 2 роки тому +2

    Hi! Thanks for your video! Where can I find some information in how to bind Abilities with Enhanced Input?

  • @DrDangers
    @DrDangers 4 роки тому +2

    What is required to make the montage replicate? The server and any client that triggers the ability can see it, but other clients can't

    • @Navhkrin
      @Navhkrin 4 роки тому

      Put the montage on GameplayCue, those are replicated to all clients

    • @JonBjarnason
      @JonBjarnason 3 роки тому

      @-- I'm having the same problem. Did you figure this out?

    • @CELPEC
      @CELPEC 3 роки тому

      @@JonBjarnason same, don't know how to solve this

    • @CELPEC
      @CELPEC 3 роки тому

      @@JonBjarnason everyone , you can get answer from livecrak who have answered below, but hope someone can help me to know how to play montage use a second way without cue

    • @urgeOFflesh
      @urgeOFflesh 3 роки тому +2

      Fixed it by using "PlayMontageAndWait" instead of "PlayMontage". Didn't hook up the mesh but still works.

  • @bobdowland414
    @bobdowland414 3 роки тому +1

    Once GE_AttackDebuf has been setup, how is it then triggered in this example?

  • @JTG2003
    @JTG2003 3 роки тому +4

    At 24:20 you're applying the -20 damage to the player on Begin Play. However, the InitializeAttributes in c++ is run when the pawn is possessed. The pawn is possessed after the pawn has spawned and fired the BeginPlay already. In the video, I believe you are running in standalone so the timing still happens to work fine as no client/server communications are delaying anything. However if you are running as a dedicated server, the delay might be JUST enough that the damage is applied BEFORE the attributes are initialized and the damage will be overridden by the initialize. Just wanted to make a comment as this was something I ran into when following.

    • @JTG2003
      @JTG2003 3 роки тому +5

      Another note about multiplayer, looks like in the ability (GA_Punch) you need to use a "PlayMontageAndWait" node instead of "Play Montage" if you want all players to be able to see the ability instigator's animation. Also, the bone positions for the character skeletal mesh do not update on the server by default. So when you punch, your clients will see it as a hit but the server will not. I have no idea why this was shown as working in the video unless this change was made outside the video, but on the skeletal mesh you will need to set "Visibility Based Anim Tick Option" to "Always Tick Pose And Refresh Bones". Otherwise only the punching client will see the hit reaction on the receiver. The receiver will not see themselves react and their health will not lower. This is because, on the server, the Sphere Overlap Actors is running as though the socket is still at the player's side.

  • @maxdashen
    @maxdashen 10 місяців тому

    8:34 when I add a new line by pressing enter my generated body gets an error. it says C++ this declaration has no storage class or type specifier

  • @logicalcuber9171
    @logicalcuber9171 4 роки тому

    Nice man! Best video about GAS on the whole web!!! No Joke!!! Thx you very much

  • @DevGods
    @DevGods 4 роки тому +1

    Jeez where have you been?! Glad you’re back

    • @reubs
      @reubs  4 роки тому +5

      I feel a huge resistance to making videos, it is really hard to get myself to make one. I'm going to try make more though, I do really enjoy it!

  • @Whag09
    @Whag09 3 роки тому +1

    Hi ! would you update the project files please ? those are a blank new project

  • @LucaCavaletto
    @LucaCavaletto 3 роки тому

    Thank you so much for this video. Really helpful and appreciated. Keep up the great content!

  • @SaiLyM
    @SaiLyM 3 роки тому +1

    I can not keep upi with this, are you using short cut keys to do these or just coping pasting from an already finished project? I am having to pause every 10 seconds to try figure out if I am suppose to type it out of if there is a shortcut button i missed in the video.

    • @SaiLyM
      @SaiLyM 3 роки тому

      I tried to build project and i get this , i have spent 2 days making sure everything is typed correctly...
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.h(41): error C2555: 'AGASCharacter::GetAbilitySystemComponent': overriding virtual function return type differs and is not covariant from 'IAbilitySystemInterface::GetAbilitySystemComponent'
      2> C:\Program Files\Epic Games\UE_4.25\Engine\Plugins\Runtime\GameplayAbilities\Source\GameplayAbilities\Public\AbilitySystemInterface.h(24): note: see declaration of 'IAbilitySystemInterface::GetAbilitySystemComponent'
      2> [2/13] GASCharacter.gen.cpp
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS/GASCharacter.h(41): error C2555: 'AGASCharacter::GetAbilitySystemComponent': overriding virtual function return type differs and is not covariant from 'IAbilitySystemInterface::GetAbilitySystemComponent'
      2> C:\Program Files\Epic Games\UE_4.25\Engine\Plugins\Runtime\GameplayAbilities\Source\GameplayAbilities\Public\AbilitySystemInterface.h(24): note: see declaration of 'IAbilitySystemInterface::GetAbilitySystemComponent'
      2> [3/13] GASAttributeSet.cpp
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASAttributeSet.cpp(24): error C2275: 'UGASAttributeSet': illegal use of this type as an expression
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASAttributeSet.cpp(24): error C3861: 'GAMEPLAYTATTRIBUTE_REPNOTIFY': identifier not found
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASAttributeSet.cpp(28): error C2275: 'UGASAttributeSet': illegal use of this type as an expression
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASAttributeSet.cpp(28): error C3861: 'GAMEPLAYTATTRIBUTE_REPNOTIFY': identifier not found
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASAttributeSet.cpp(33): error C2275: 'UGASAttributeSet': illegal use of this type as an expression
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASAttributeSet.cpp(33): error C3861: 'GAMEPLAYTATTRIBUTE_REPNOTIFY': identifier not found
      2> [4/13] GASCharacter.cpp
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.h(41): error C2555: 'AGASCharacter::GetAbilitySystemComponent': overriding virtual function return type differs and is not covariant from 'IAbilitySystemInterface::GetAbilitySystemComponent'
      2> C:\Program Files\Epic Games\UE_4.25\Engine\Plugins\Runtime\GameplayAbilities\Source\GameplayAbilities\Public\AbilitySystemInterface.h(24): note: see declaration of 'IAbilitySystemInterface::GetAbilitySystemComponent'
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.cpp(72): error C2065: 'FGameplaySpecHandle': undeclared identifier
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.cpp(72): error C2146: syntax error: missing ';' before identifier 'SpecHandle'
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.cpp(72): error C2065: 'SpecHandle': undeclared identifier
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.cpp(74): error C2065: 'SpecHandle': undeclared identifier
      2>D:\Unreal Engine Projects\GAS\GAS\Source\GAS\GASCharacter.cpp(76): error C2065: 'SpecHandle': undeclared identifier

    • @RprtBak
      @RprtBak 2 роки тому

      Ya, because he can't teach.

  • @so.reckless
    @so.reckless Рік тому

    I'm missing the character.cpp in my project when I open Virtual studio any ideas?

  • @hbirtt
    @hbirtt 3 роки тому +3

    Thank you for the time you put in to this. It's information that I'm having trouble finding. However, when I see at about 4.5 minutes in that we're using some base code my mind immediately disconnects and I think "ok, what parts am I missing to get to this point." You've been doing this for a while and you are doing pretty well, so I feel like I probably shouldn't be giving you advice, but, in general, with courses/tutorials you should always start with a blank project. Having assets in place doesn't distract much because most people will understand that those are just meshes to import etc, but when you have classes and header etc that you don't show how to bring in, it causes a disconnect. Maybe those classes are just that and they just need to be created, but maybe they needed to be generated somewhere so that they are properly registered; who knows. Just a suggestion. Thanks again for all the information.

  • @Casanova646
    @Casanova646 3 роки тому

    Do you happen to know why I can only trigger the punch ability once? I only have a Print String node in ActivateAbility and when I press the punch key, the print message displays twice and I can't trigger the ability again.

  • @iiiFiinka
    @iiiFiinka 3 роки тому

    Its so handy that you dont type all that code, just copy pasting, it saves so much time. Great tutorials! Great montage!

  • @arjunpant1864
    @arjunpant1864 3 роки тому +1

    Hi I purchased your battle royal course and its amazing but I have problem how to scale the weapon size

  • @stefanheiler2329
    @stefanheiler2329 3 роки тому

    Excellent Tutorial. Perfect Pace and Moustache! :}

  • @hangyuxia465
    @hangyuxia465 4 роки тому +1

    Does any one knows how the left mouse button activates(or the Punch maps to) the GA_Punch?

  • @jh-lp7cg
    @jh-lp7cg 3 роки тому

    According to the Tranek docs you linked, when the ASC lives on the pawn, the functions to override are PossessedBy on the pawn, and AcknowledgePossession on the controller. Am I misreading that?
    Edit: Did you have to use the Montage Anim Notify? My notifies weren't going through until I used that instead of the base class Anim Notify.

  • @Cpt.Tripps
    @Cpt.Tripps 2 роки тому

    How do you Save and Load GAS attributes, running trails, etc?
    active abilities?

  • @Ben-bm3ut
    @Ben-bm3ut 3 роки тому

    You my Friend, you are a hero ! It helped me a lot, thanks!

  • @CheezyI619
    @CheezyI619 3 роки тому

    Where should I start troubleshooting if everything works exactly how it should up to the Punch ability being called?

  • @ZoldenGames
    @ZoldenGames 3 роки тому

    After I type ATTRIBUTE_ACCESSORS and other stuff from 8:3, vs says cannot open source file GASAttributeSet.generated.h. Any help?

  • @CultivationPath
    @CultivationPath 3 роки тому

    Hi! do you know if this would work with a third person example project instead of the project files that you give?. It would be to make sure that everything is made from scratch and nothing is missing

  • @jonsnow8543
    @jonsnow8543 3 роки тому

    Does the survival game also use GAS? There doesn’t seem to be enough info on what Unreal systems are covered in that course.

  • @judofright4206
    @judofright4206 11 місяців тому

    My build fails when i put in the gameplay inputs in the build.cs file.

  • @drew21t
    @drew21t 3 роки тому

    The tutorial starts off very erratic and confusing but then gets strong. The boiler plate may be boiler plate but is quite important if you want to do a lot of the tasks you did in blueprints with c++ as well. Overall, good tutorial.

  • @oneneksone
    @oneneksone Рік тому +1

    would be great if you showed the shortcuts you're using in VS, other than that nice tut

  • @ohwhatworld5851
    @ohwhatworld5851 3 роки тому

    Question. II'm confused. Is GAS mainly used only if you are making an online Multiplayer type game? It's just that I posted in edit that I wanted to make an offline single player RPG, and did I need to know C++ to do that or can I just use Blueprints and not touch C++ code. They said I can just use blueprints and I don't have to touch C++. Is that correct?

  • @3DBlurofficial
    @3DBlurofficial 4 роки тому

    Hi i just got your course thank you so much but i have a question why there is no aim down sight? Can you please add it ?.
    One more thing there is like 40 videos is there more coming soon or that is all ?

  • @Patrick_Engels
    @Patrick_Engels 3 роки тому +1

    Can somebody tell me how he is just pasting code into the project?
    He did it multiple times but here is an example: 8:36
    I'm sorry if this is something basic, but before this I only used Blueprints.

    • @ChristianRoyUtah
      @ChristianRoyUtah 3 роки тому +2

      He prepared the video before and is literally copy pasting code so you don't have to watch him type everything out and potentially make mistakes.

  • @PomboKad
    @PomboKad 2 роки тому

    Very good tutorial! Thank you very much, it helped a lot!

  • @reeceytaylor
    @reeceytaylor Рік тому

    12:30 how do you get the dropdown?

  • @jonsnow8543
    @jonsnow8543 3 роки тому +1

    If you created a comprehensive BP+C++ GAS and AI (BTs/EQS) multiplayer RPG tutorial I’d grant you a tower at Winterfell to pay for it. The use of these in conjunction and best practice around it is poorly covered. I expect it would be a massive hit on Udemy too

  • @donaldslayer
    @donaldslayer Рік тому

    Can we access the OnReps through BP to i.e Update UI, trigger death, etc?
    I added an OnAttributeChanged delegate and called it on the OnRep for my Attributes. I assigned an Event to it in the character BP to print some text, it didn't work, so I added a log directly to the void::UGASAttributeSet implementation of OnRep_(____) only to find out it's not getting called at all. Singleplayer btw

  • @salimp2009
    @salimp2009 3 роки тому

    i just finished a class on Udemy on GAS and it is really nice...i can share my class project file even update for UE4.26. it is not multiplayer but it will teach you almost all the basic systems but when explain i feel i still need to know a lot more. And a full class on Udemy will be really awesome..Come on Reuben ...there is demand here :)))

  • @kmsk9
    @kmsk9 3 роки тому

    Hi looking for help with your video, at 9:35 you right click and Create Method Implementations but on mine I do not have that option. Am I missing something? I'm new to c++ and visual studios.

    • @DreamTitanGames
      @DreamTitanGames 2 роки тому +2

      Most likely he has the visual assist plugin to visual studio

    • @noahlederer8587
      @noahlederer8587 2 роки тому

      you can go to the extensions tab in your visual studio and search for visual assist

  • @mrheadshotzz4637
    @mrheadshotzz4637 4 роки тому +2

    WHAT IS THAT GOATEE!

  • @ADanbot
    @ADanbot 3 роки тому

    My GAS Ability system is not showing up in my class defaults. I don't think you included that part in the video.

    • @ADanbot
      @ADanbot 3 роки тому +1

      Oh I figured it out you just create a new char that is derived from that GAS_Char

  • @KillerBearsaw
    @KillerBearsaw 3 роки тому

    Do you plan to re-do your multiplayer survival tutorial(or some other style of game) using GAS?

  • @roadtopro-rtp695
    @roadtopro-rtp695 4 роки тому

    Can you please for the love of god just continue your c++ series

  • @Luxluistudios
    @Luxluistudios 4 роки тому

    GAS is such a powerful tool

  • @Luxluistudios
    @Luxluistudios 4 роки тому

    You should do more ability system component videos or even courses as it is very interesting

  • @kalleskit
    @kalleskit 4 роки тому

    Thanks so much for this! What kind of system would you recommend for implementing skills and attributes that you level up? Like Morrowind or Fallout.

  • @SLAPMYGORILLA
    @SLAPMYGORILLA Рік тому

    9:30 How does he create an Implementation? I don't have that option on VS 2019

    • @SLAPMYGORILLA
      @SLAPMYGORILLA Рік тому

      He can do it bc of a paid extension, so just copy the code thats added when he checks it

  • @Patrick_Engels
    @Patrick_Engels 3 роки тому

    9:34
    How is he opening those options? Is there a button u have to press while rightclicking? and can I even do it in VS code, since that is what im using.

    • @ChristianRoyUtah
      @ChristianRoyUtah 3 роки тому

      He is using the Visual Assist plugin in Visual Studio. Google Visual Assist for more info.

  • @francobarrera5327
    @francobarrera5327 2 роки тому

    Do i need to create a new enum for each input that i want to handle?

  • @jok9887
    @jok9887 3 роки тому

    Hey this guide was awesome! But for some reason even if I duplicate the original character blueprint and put it in the world, I just can't get it to have attributes, any ideas why that is the case?

  • @GuyPaddock
    @GuyPaddock 2 роки тому

    Another question -- any idea how the Action RPG Sample gets away with not implementing OnRep_PlayerState?

    • @GuyPaddock
      @GuyPaddock 2 роки тому +1

      Answering my own question -- the Action RPG sample does not support multiplayer :(

  • @visualtraffic3794
    @visualtraffic3794 3 роки тому

    Hey man, thanks for your tutorial, very helpful to get into it. I tried to do it without the Input Enum, so that an Ability can be triggered from the BP-side of the character. But it just won't trigger the Ability and ALWAYS returns false. It just doesn't want to activate the ability. Any ideas?

  • @threedking
    @threedking 2 роки тому

    There is no GetLefetimeReplicatedProps in UAttributeSet

  • @AkshayKumar-cl4il
    @AkshayKumar-cl4il 4 роки тому

    Is there any difference in cpp coding for pc and mobile games?

  • @Metalwrath2
    @Metalwrath2 Рік тому

    How is this C++ when half the tutorial is blueprint?

  • @nazake69
    @nazake69 4 роки тому

    Do you have any udemy courses that covers advanced inventory system like rust with crafting and stuff?

  • @garygutierrezfajardo3179
    @garygutierrezfajardo3179 4 роки тому

    Hi Reuben, I love your tutorial! I am working with the top down template of UE4, and I don't have the SetupPlayerInputComponent in the character.cpp file. In fact, I was adding input data in playercontroller class, so my question is, is it necesary to work with GAS to implement this function in character class?

    • @garygutierrezfajardo3179
      @garygutierrezfajardo3179 4 роки тому

      In fact, I can't use the keys that I bind on project settings-bindings. It looks like InputComponent is not being recognized by the engine.

    • @glosmolt
      @glosmolt 3 роки тому

      I was facing the same issue and I'm not really sure how Input component have been made on the template, but I realized that SetupPlayerInputComponent was called after everything, so a really dirty workaround would be to include those lines inside that method after the bindings, kinda like:
      ....
      ....
      // handle touch devices
      PlayerInputComponent->BindTouch(IE_Pressed, this, &AGASCharacter::TouchStarted);
      PlayerInputComponent->BindTouch(IE_Released, this, &AGASCharacter::TouchStopped);
      // VR headset functionality
      PlayerInputComponent->BindAction("ResetVR", IE_Pressed, this, &AGASCharacter::OnResetVR);
      if (AbilitySystemComponent && PlayerInputComponent)
      {
      const FGameplayAbilityInputBinds Binds("Confirm", "Cancel", "EGASAbilityInputID", static_cast(EGASABilityInputID::Confirm), static_cast(EGASABilityInputID::Cancel));
      AbilitySystemComponent->BindAbilityActivationToInputComponent(PlayerInputComponent, Binds);
      }
      Problem is that I think is not going to replicate , but in order to follow the tutorial is a workaround....

  • @BestWordsTV
    @BestWordsTV Рік тому

    Thank you very much for your advice