I know everyone is focused on all the next gen graphics features, but this feature is more meaningful to me as a developer than any of the graphics features. Don't get me wrong, they're awesome, but writing decoupled, modular game code was not easy in Unreal Engine and that is more meaningful to me than the graphics features, if I'm being honest. If you look at the evolution of distributed systems over the years and the popularity of dependency injection via (IoC) containers, we've evolved from large, tightly coupled, monolithic systems over to container based systems that leverage microservices architectures, the actor model, etc. Everyone is trying to solve this problem but it's something every UE developer had to solve on their own until now. I see "Game Features" as the Unreal answer to dependency injection where an entire game can be composed of decoupled modules that have a singular focus (like a microservice) and can be injected into the game when they're needed. If this feature is leveraged properly, adding and enabling new features will be much easier and making changes to game code will be less risky. In fact maintaining a large code base becomes much simpler, leveraging this system. Of course that's only scratching the surface. I'm very glad this is part of the engine!
@Navhkrin3 жыл бұрын
Also, One of the biggest "indie mistakes" in Unreal Engine 4 was not loading/deloading assets and other systems properly which would often cause FPS drops when they are needed hence the popular "UE freezes" that many gamers fault as a weakness of the engine. This system should reduce that issue significantly since it is a built-onto-engine of managing what to load and when to load assets and systems. And ofc another really strong point of this feature is that it makes porting useful features to your next-game much easier since it makes everything modular.
@jon962-g9w3 жыл бұрын
I don't see why you can't already build modular games, you just have to follow a framework. Adding an ability to a character could simply be made with a child actor. The only thing that seems really novel is for the environment.
@Zumito3 жыл бұрын
will this allow me to update my game in real time while players are still playing?
@jon962-g9w3 жыл бұрын
@@Zumito you can do that with cloud/web service functions, it doesn't have anything to do with this feature. You could potentially enjoy some of those features if they can be triggered at runtime, which is probably not the case.
@Zumito3 жыл бұрын
@@jon962-g9w ohh thanks
@morkyme3 жыл бұрын
It would been great to share this project so that developers could actually work with a tangible project that loads faster than the Valley of the Ancient project, to learn and familiarize themselves with these new features.
@RolyPolyGames2 жыл бұрын
Just watching this video 8 months later and thinking "wow this would be a great example video" From what I understand they have Lyra now but even the video for that directed me towards this video to learn more about plugins.
@LaszloIvanyi3 жыл бұрын
Man, I need you to make a full course on UE5 where you go through all this from the start. Not just the plugins, but building the level, adding the character, assets, animations, sounds etc.. This seems simple enough to follow along. I was struggling with UE4 for a while, but this sounds much more simple approach.
@zackakai51732 жыл бұрын
There are dedicated level design and asset tutorials all over KZbin that'll give you a MUCH better overview of that stuff than he could here in this video
@GankablePlayer2 жыл бұрын
@@zackakai5173 I think he just likes how the material was covered and appreciates his approach. I too would love for more of his work being shared.
@rushboardtechuk3 жыл бұрын
I've waited for a feature like this for a long time; to truly customise a project experience for users when it is needed and remove it without issues when it is not.
@braaaaaaaaaaaaaains3 жыл бұрын
If I understand this correctly this can elevate modding extremely.
@lpnp94773 жыл бұрын
I'm having a hard time wrapping my head around this and enhanced input. I think I want to use them but I'm really not sure how. This didn't exactly clarify things as much as it helped me understand what it could be used for.
@DevGods3 жыл бұрын
What exactly do you have in mind? Sometimes you don’t need to use a game feature to do what you want
@lpnp94773 жыл бұрын
@@DevGods I was thinking this could work great as a marketplace content plugin to add gameplay features without needing to create a separate project then retrofit it onto your existing game, but I'm not sure how that can be accomplished. I'm not sure how to design my 'game as a plugin' to take advantage of these features. I'd really like to see a video with a defined similar use case from the beginning. I'd also love to see a video of someone moving all of their pawn's input to enhanced input and setting up custom button mapping for the end user
@DevGods3 жыл бұрын
@@lpnp9477 Ah that would be smart. I hate using those "Complete Project" Assets. Im sure you could just add all the content and code of that complete project as a game feature. I'd have to look into that one maybe could do an example on my channel.. As for the enhanced input I have a video going over how to convert the base characters input from a template over to enhanced input. However it is in C++ but it does cover that
@bestboy0073 жыл бұрын
@@DevGods do u have discord?
@DevGods3 жыл бұрын
@@bestboy007 yes a small one. It’s listed in my videos
@musicdudem66733 жыл бұрын
i would love a tutorial to set this up from scratch in the Unreal academy tutorials
@remi-life-happy-games3 жыл бұрын
this is difficulty
@DevGods3 жыл бұрын
There is a 2 hour live stream that goes in depth of how they do it in Ancient Game. Really helped me in my project
@remi-life-happy-games3 жыл бұрын
@Dev Gods for me this is difficulty with the codes in english♿☹☹😕
@DevGods3 жыл бұрын
@@remi-life-happy-games oh damn yea that does suck lol learning to code in a different language is twice as hard
@remi-life-happy-games3 жыл бұрын
@@DevGods yes
@MyGameDevPal2 жыл бұрын
Very well presented, looking forward to "tinkering" with this :) p.s I like your wind :)
@Shrooblord3 жыл бұрын
Here's that livestream mentioned at 24:29: kzbin.info/www/bejne/bXeVaaNra5meq7s
@robinklimonow29152 жыл бұрын
Great introduction video to the new features. I wonder how well (or not) this plays together with the save game system however. If I remember correct, save games are basically just serialized UObject instances. But let's say I want this feature to add new items / abilities to the game and now the player owns them. My guess is that whenever a savegame is loaded which references one of the assets of such a gameplay feature, the feature needs to be loaded before the save game can be loaded for it to properly deserialize the objects from the game feature referenced by the save game? I guess that is just one of the big "rethink of your design" points of when to use the game module feature and when not to use it. Also for levels of course: If I add a new level and my save game location points to some location only loaded by a certain feature, suddenly that save game depends on that game feature. I also imagine this hard to manage for online games with such features. All that of course only applys to features which are designed to not be loaded all the time during gameplay. But even then: Once my save game depends on data from a feature, I possibly cannot simply "deactivate" it for players without risking their save games being corrupted / loosing data (like items) for the next version of the game. That raises the question: If I then just move my class from the feature to the core game, would the references in said save game work? Sorry, so many questions and text :D
@DevGods3 жыл бұрын
Is this project available to take a look at? I’m using Ancient Game as reference for now but the more info the better!
@jubeidono11 ай бұрын
What is the better/officially supported solution for loading in level instances in UE5.3? (as described in 18:30)
@ijerofei10 ай бұрын
Hi! Did you found examples of custom game feature actions like adding actors, not just components?
@jubeidono10 ай бұрын
I would say if you want to spawn actors, then you should do it by adding a custom component that spawns Actors to the Game State that spawns the actors in the desired locations.
@Koto-Sama3 жыл бұрын
is it possible to download this demo? i needed to see them to completely understand the system
@WizardCell2 жыл бұрын
That regular c++ int though 15:30
@pullsardev2 жыл бұрын
I can't call "Set Game Feature Active" function, how can I activate that now? 10:25
@omegakenshin3 жыл бұрын
This is so awesome! Thank you very very much!
@MadaoKing2 жыл бұрын
Anyway we can get an example on how "add cheat" works?
@BlueprintBro2 жыл бұрын
13:04 Can anyone explain how he created/modified the AbilityComponent class so that he can call enhanced input events from a component class? I haven't worked with Unreal CPP and am a beginner at C++. However I'm curious as to how he did it step by step. Looks pretty good as I also want to do the same thing, but can't purely through blueprints.
@tonetfal2 жыл бұрын
AbilityComponent class represents just one "ability". Whenever the component is being registered on an actor, it calls OnRegister function, which just binds every possible trigger event with a function that has to be implemented in blueprints. Whenever the action will be triggered, a function will be called, depending on trigger event. Note that you do not define the way the action is triggered, i.e. you don't define which key triggers the action, you do it with mappable context instead; this class is just a dispatcher, something that does the work on demand. The reason why I put word "ability" in brackets is because the class doesn't have to do anything with abilities, it only has to do with inputs. The class doesn't have anything GAS related except its name. This solution has some drawback. The first that I can see is that you will need to create a new component for each ability, or input, I may say, and repeat the same functionality over and over again. For instance, if you want to activate an ability using some action, you need to get the Ability System Component from the owner, afterwards, to activate it, you need to pass its class or a tag associated with it. If you have 10 abilities, you'll need to implement the same functionality 10 times, but if you will to this in the base class, then the class will not work so well with non-ability actions. You also can derive it in BP, and implement that functionality for ability actions only, but it'll increase the confusion in the system. There are also other drawbacks which I can't really spot at the moment. Consider checking input implementation in Lyra, if you have enough knowledge to do so. Look for HeroComponent and its InitializePlayerInput function.
@BlueprintBro2 жыл бұрын
@@tonetfal Wow thank you for the detailed response! Much appreciated.
@mattseaton5832Ай бұрын
If we created a plugin and want to change it later, how can we do that. I have one that is content only that I want to add c++ too. I also want to rename it. What is the workflow for this?
@cjwang11213 жыл бұрын
More dev friendly feature thank you Unreal
@ponderingForever2 жыл бұрын
16:17 - Oh lordy he coming!
@eobet3 жыл бұрын
Can there at least be sub folders under gamefeatures? Otherwise how do you organize things when the quantity balloons?
@flassari11 ай бұрын
You can use EditorCustomVirtualPath in the plugin's properties to categorize them into editor subfolders. This is only visible in the editor, the actual folder structure on the hard drive is still flat.
@joantonio63312 жыл бұрын
Si basically this plugin turn your game as a live service game kinda like hitman work me muffins ect... I think they are using this in Lyra
@TyrusDev3 жыл бұрын
Will this project be downloadable at some point?
@dragonalias3 жыл бұрын
Epic are usually good at making captions for their yt videos, does anyone know why this one isn't getting them? only automatically generated...
@ChaojianZhang3 жыл бұрын
Much more straightforward than GameplayAbilities system😆.
@GengYao Жыл бұрын
How can i get the demo,is the sharing of the demo project on schedule?
@CodingWorm3 жыл бұрын
that is so catchy for no real reason at all
@gamedevstanislove3 жыл бұрын
Sounds cool! Will see! Thank you!=)
@elfideorubio13082 жыл бұрын
Does anyone know the assets used in this video, I know the character is on the marketplace but what about the tower ?
@boostedplayer5033 жыл бұрын
Amazing Stuff Thanks Alot.
@vrai_3 жыл бұрын
Do we always need to make the actor as registered first?
@Thunder_Owl3 жыл бұрын
Thank You for video.
@ChaojianZhang3 жыл бұрын
👍 Can you enable/disable/switch in/out Blueprint graph pages? And can you pass blueprint functions/events as parameters?
@ChaojianZhang3 жыл бұрын
Can probably do that with a manager class.
@ChaojianZhang3 жыл бұрын
How can this inject built maps?
@ChaojianZhang3 жыл бұрын
17:05 Spawn Level Instance Action (Valley of The Ancient).
@xrenynthemusicmage64226 ай бұрын
I just wish you would've made the subtitles consistent with what is said in the video, that would've made it easier for me to keep up with the narrator's accent
@ALEX_GREEN3 жыл бұрын
Enhanced input for UMG please!)
@v-ba3 жыл бұрын
How's it different from component model?
@s6xafterse7en2 жыл бұрын
Yes! This is great!
@digitalsyanide17463 жыл бұрын
What we need is a better work flow out of all the games that have been made and created we should have better templates to work from like a modding base rpg template in example that already has the base structure to the game we select animations to be linked to the game Operation harsh doorstop is a good example of a modding template or a fps shooter that is assign the models and then assign the animations and be able to tweak the animations
@digitalsyanide17463 жыл бұрын
Sitting around creating blend spaces and everything else that should already be in the engine as a plug in play as stated above lol that would cut down so much work it would be ridiculous
@SneakyKittyGameDev7 ай бұрын
@@digitalsyanide1746 Sounds like you just want to copy/paste a near complete game and call it yours lol
@CengizSalgin2 жыл бұрын
@Unreal Engine I don't understand why you epic guys dont see the demand for more in depth tutorial. ok we can see what the different features do and how easy they are to implement but only for those who already did some work beforehand. The interesting parts are being skipped and it is assumed that we already know those parts. I know that you cant make a real from 0 to 100 tutorial and it is totally normal that developers get their pieces of knowledge from everywhere they can but how does these videos really help us? It feels more like just a showoff where the projects are not being shared. Whats the benefit?
@momomadi23 жыл бұрын
12:02 15:20 you created one C+++ - ehmmm thats new language or what ? :) thanks dude for this tut
@amolambhore68153 жыл бұрын
He says C++ Class not c+++
@momomadi23 жыл бұрын
@@amolambhore6815 it seems C++++++ for me lmao
@Muhammad_Abdullah_Sultan Жыл бұрын
Outstanding
@hotgates93243 жыл бұрын
Probably one of the best features of UE5. Any chance of adding this feature to UE4 in the future?
@SilversGamer3 жыл бұрын
I wish Next 2022 Sonic Games using Unreal Engine 4 because there is no Single Official Sonic Games using Unreal Engine.
@eobet3 жыл бұрын
So, is this another new system (like GameplayTags and GAS) that requires C++? :(
@nitinparmar73 жыл бұрын
Not Really if you create most of the stuff in Blueprints. He only needed to enhance the input system on his component. That's why he used c++.
@starrunner3220 Жыл бұрын
project files pls
@mslinklater3 жыл бұрын
So difficult to follow when the speaker isn't actually reading out the points in the presentation, and is rushing through. You can either listen to the speaker or read the text, but you can't do both.
@michaelherrmann81803 жыл бұрын
I guess a multiplayer game feature makes no sense since it has to be in the core game, right?
@bestboy0073 жыл бұрын
yes i think. cause the code is in the game. then it gets replicated to everybody, right? not sure :D
@DevGods3 жыл бұрын
It depends on what the feature is tbh. I struggled to wrap my head around this too being I wanted to add and take away abilities at runtime but game features is hard coded so it just felt unnecessary. I believe the best use case is similar to how they use game features in fortnite. Things like the space ships flying around or Ariana grande’s concert are game features. I think another cool way to use them in multiplayer (this is theoretical) is if you had a game mode that had different phases in a single match then each of those phases could add a game feature. But even then it’s possibly overkill. It’s biggest benefit is having zero dependencies so you can always build or compile your code and test your base game with or without it.. I guess part of learning curve for the feature is finding out where and when to implement it.
@CyberWolf7553 жыл бұрын
@@DevGods The features can be anything, you just need to make sure the server tells the users what they need to load when joining the session, i.e loading Northrend if you are playing on a Wrath of the Lich King server in World of Warcraft.
@CyberWolf7553 жыл бұрын
Also you can add new multiplayer game modes on for a map, i.e. adding objectives for hostage mode for dust 2 in CSGO. You would just load a normal version of dust 2 and add the logic, objectives and spawn points for that game mode you added.
@arihunfjord11 ай бұрын
It's actually perfect for multiplayer / live service games. It's used extensively in Fortnite at Epic Games.
@PetrRomanovsky6 ай бұрын
Could anyone explain how Create Object From Template works in kzbin.info/www/bejne/aYGln6R5bLmrrK8 ?
@remi-life-happy-games3 жыл бұрын
i want model who i can do my open world
@KizmoBG3 жыл бұрын
thanks! but "add cheats" :-D is there global "prevent cheats" component? :-) it will be way better one i guess?