Modular Game Features in UE5: plug ‘n play, the Unreal way

  Рет қаралды 70,516

Unreal Engine

Unreal Engine

Күн бұрын

In this feature video, we’ll take a look at Modular Game Features, a system that lets you inject new content and experiences into your game via a plugin architecture. This allows you to add features without having to create new dependencies within the core game. Join us as we take a close look at the system and discuss different use cases.

Пікірлер: 94
@Ranger75th
@Ranger75th 2 жыл бұрын
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!
@Navhkrin
@Navhkrin 2 жыл бұрын
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.
@jonathanantoine4962
@jonathanantoine4962 2 жыл бұрын
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.
@Zumito
@Zumito 2 жыл бұрын
will this allow me to update my game in real time while players are still playing?
@jonathanantoine4962
@jonathanantoine4962 2 жыл бұрын
@@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.
@Zumito
@Zumito 2 жыл бұрын
@@jonathanantoine4962 ohh thanks
@morkyme
@morkyme 2 жыл бұрын
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.
@RolyPolyGames
@RolyPolyGames 2 жыл бұрын
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.
@LaszloIvanyi
@LaszloIvanyi 2 жыл бұрын
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.
@zackakai5173
@zackakai5173 2 жыл бұрын
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
@GankablePlayer
@GankablePlayer Жыл бұрын
@@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.
@rushboardtechuk
@rushboardtechuk 2 жыл бұрын
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.
@braaaaaaaaaaaaaains
@braaaaaaaaaaaaaains 2 жыл бұрын
If I understand this correctly this can elevate modding extremely.
@lpnp9477
@lpnp9477 2 жыл бұрын
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.
@DevGods
@DevGods 2 жыл бұрын
What exactly do you have in mind? Sometimes you don’t need to use a game feature to do what you want
@lpnp9477
@lpnp9477 2 жыл бұрын
@@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
@DevGods
@DevGods 2 жыл бұрын
@@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
@bestboy007
@bestboy007 2 жыл бұрын
@@DevGods do u have discord?
@DevGods
@DevGods 2 жыл бұрын
@@bestboy007 yes a small one. It’s listed in my videos
@MyGameDevPal
@MyGameDevPal 2 жыл бұрын
Very well presented, looking forward to "tinkering" with this :) p.s I like your wind :)
@omegakenshin
@omegakenshin 2 жыл бұрын
This is so awesome! Thank you very very much!
@boostedplayer503
@boostedplayer503 2 жыл бұрын
Amazing Stuff Thanks Alot.
@Latvian3Dman
@Latvian3Dman 2 жыл бұрын
Thank You for video.
@robinklimonow2915
@robinklimonow2915 2 жыл бұрын
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
@gamedevstanislove
@gamedevstanislove 2 жыл бұрын
Sounds cool! Will see! Thank you!=)
@cjwang1121
@cjwang1121 2 жыл бұрын
More dev friendly feature thank you Unreal
@musicdudem6673
@musicdudem6673 2 жыл бұрын
i would love a tutorial to set this up from scratch in the Unreal academy tutorials
@jbq11
@jbq11 2 жыл бұрын
this is difficulty
@DevGods
@DevGods 2 жыл бұрын
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
@jbq11
@jbq11 2 жыл бұрын
​ @Dev Gods for me this is difficulty with the codes in english♿☹☹😕
@DevGods
@DevGods 2 жыл бұрын
@@jbq11 oh damn yea that does suck lol learning to code in a different language is twice as hard
@jbq11
@jbq11 2 жыл бұрын
@@DevGods yes
@DevGods
@DevGods 2 жыл бұрын
Is this project available to take a look at? I’m using Ancient Game as reference for now but the more info the better!
@Muhammad_Abdullah_Sultan
@Muhammad_Abdullah_Sultan Жыл бұрын
Outstanding
@s6xafterse7en
@s6xafterse7en 2 жыл бұрын
Yes! This is great!
@WizardCell
@WizardCell 2 жыл бұрын
That regular c++ int though 15:30
@ponderingForever
@ponderingForever Жыл бұрын
16:17 - Oh lordy he coming!
@Koto-Sama
@Koto-Sama 2 жыл бұрын
is it possible to download this demo? i needed to see them to completely understand the system
@CodingWorm
@CodingWorm 2 жыл бұрын
that is so catchy for no real reason at all
@xrenynthemusicmage6422
@xrenynthemusicmage6422 11 күн бұрын
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
@Shrooblord
@Shrooblord 2 жыл бұрын
Here's that livestream mentioned at 24:29: kzbin.info/www/bejne/bXeVaaNra5meq7s
@eobet
@eobet 2 жыл бұрын
Can there at least be sub folders under gamefeatures? Otherwise how do you organize things when the quantity balloons?
@flassari
@flassari 4 ай бұрын
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.
@ALEX_GREEN
@ALEX_GREEN 2 жыл бұрын
Enhanced input for UMG please!)
@MadaoKing
@MadaoKing 2 жыл бұрын
Anyway we can get an example on how "add cheat" works?
@joantonio6331
@joantonio6331 2 жыл бұрын
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
@Tyrus_3d
@Tyrus_3d 2 жыл бұрын
Will this project be downloadable at some point?
@dragonalias
@dragonalias 2 жыл бұрын
Epic are usually good at making captions for their yt videos, does anyone know why this one isn't getting them? only automatically generated...
@vrai_
@vrai_ 2 жыл бұрын
Do we always need to make the actor as registered first?
@elfideorubio1308
@elfideorubio1308 2 жыл бұрын
Does anyone know the assets used in this video, I know the character is on the marketplace but what about the tower ?
@jubeidono
@jubeidono 5 ай бұрын
What is the better/officially supported solution for loading in level instances in UE5.3? (as described in 18:30)
@ijerofei
@ijerofei 3 ай бұрын
Hi! Did you found examples of custom game feature actions like adding actors, not just components?
@jubeidono
@jubeidono 3 ай бұрын
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.
@ChaojianZhang
@ChaojianZhang 2 жыл бұрын
👍 Can you enable/disable/switch in/out Blueprint graph pages? And can you pass blueprint functions/events as parameters?
@ChaojianZhang
@ChaojianZhang 2 жыл бұрын
Can probably do that with a manager class.
@ChaojianZhang
@ChaojianZhang 2 жыл бұрын
How can this inject built maps?
@ChaojianZhang
@ChaojianZhang 2 жыл бұрын
17:05 Spawn Level Instance Action (Valley of The Ancient).
@user-jw7sm3sf6c
@user-jw7sm3sf6c 11 ай бұрын
How can i get the demo,is the sharing of the demo project on schedule?
@hotgates9324
@hotgates9324 2 жыл бұрын
Probably one of the best features of UE5. Any chance of adding this feature to UE4 in the future?
@v-ba
@v-ba 2 жыл бұрын
How's it different from component model?
@digitalsyanide1746
@digitalsyanide1746 2 жыл бұрын
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
@digitalsyanide1746
@digitalsyanide1746 2 жыл бұрын
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
@SneakyKittyGameDev
@SneakyKittyGameDev 23 күн бұрын
@@digitalsyanide1746 Sounds like you just want to copy/paste a near complete game and call it yours lol
@BlueprintBro
@BlueprintBro Жыл бұрын
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.
@tonetfal
@tonetfal Жыл бұрын
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.
@BlueprintBro
@BlueprintBro Жыл бұрын
@@tonetfal Wow thank you for the detailed response! Much appreciated.
@ChaojianZhang
@ChaojianZhang 2 жыл бұрын
Much more straightforward than GameplayAbilities system😆.
@SilversGamer
@SilversGamer 2 жыл бұрын
I wish Next 2022 Sonic Games using Unreal Engine 4 because there is no Single Official Sonic Games using Unreal Engine.
@momomadi2
@momomadi2 2 жыл бұрын
12:02 15:20 you created one C+++ - ehmmm thats new language or what ? :) thanks dude for this tut
@amolambhore6815
@amolambhore6815 2 жыл бұрын
He says C++ Class not c+++
@momomadi2
@momomadi2 2 жыл бұрын
@@amolambhore6815 it seems C++++++ for me lmao
@pullsar7449
@pullsar7449 2 жыл бұрын
I can't call "Set Game Feature Active" function, how can I activate that now? 10:25
@user-dr1eb4fe8t
@user-dr1eb4fe8t 2 жыл бұрын
@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?
@michaelherrmann8180
@michaelherrmann8180 2 жыл бұрын
I guess a multiplayer game feature makes no sense since it has to be in the core game, right?
@bestboy007
@bestboy007 2 жыл бұрын
yes i think. cause the code is in the game. then it gets replicated to everybody, right? not sure :D
@DevGods
@DevGods 2 жыл бұрын
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.
@CyberWolf755
@CyberWolf755 2 жыл бұрын
@@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.
@CyberWolf755
@CyberWolf755 2 жыл бұрын
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.
@arihunfjord
@arihunfjord 4 ай бұрын
It's actually perfect for multiplayer / live service games. It's used extensively in Fortnite at Epic Games.
@eobet
@eobet 2 жыл бұрын
So, is this another new system (like GameplayTags and GAS) that requires C++? :(
@nitinparmar7
@nitinparmar7 2 жыл бұрын
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++.
@jbq11
@jbq11 2 жыл бұрын
i want model who i can do my open world
@mslinklater
@mslinklater 2 жыл бұрын
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.
@KizmoBG
@KizmoBG 2 жыл бұрын
thanks! but "add cheats" :-D is there global "prevent cheats" component? :-) it will be way better one i guess?
@DavidMaclin351
@DavidMaclin351 2 жыл бұрын
😳
@starrunner3220
@starrunner3220 7 ай бұрын
project files pls
@EMC_CO86_0_Z
@EMC_CO86_0_Z 2 жыл бұрын
Call of duty 2022?
@kemal1910
@kemal1910 2 жыл бұрын
Mmm... Is this Eastern European accent? =)
I solved Unreal Engine's Package Size Problem...
14:35
Cobra Code
Рет қаралды 59 М.
Just try to use a cool gadget 😍
00:33
123 GO! SHORTS
Рет қаралды 85 МЛН
FOOLED THE GUARD🤢
00:54
INO
Рет қаралды 62 МЛН
OMG😳 #tiktok #shorts #potapova_blog
00:58
Potapova_blog
Рет қаралды 3,6 МЛН
Why Unreal Engine 5.4 is a Game Changer
12:46
Unreal Sensei
Рет қаралды 1 МЛН
35 UE5 Features You Probably Don't Know About | Unreal Fest 2022
49:56
The Matrix Awakens: An Unreal Engine 5 Experience
10:57
Unreal Engine
Рет қаралды 8 МЛН
Learning Unreal Engine in One Month to make a Game!
15:25
Will Hess
Рет қаралды 47 М.
UE5 Understanding hard and soft references - Be a better game dev
19:58
10 Unreal Engine 5 PLUGINS I can't live without!
9:37
Cinecom.net
Рет қаралды 471 М.
Create Massive World in 30 min -  Unreal Engine 5.1 and Gaea
18:39
World Partition And Data Layers - Unreal Engine 5 Tutorial
26:33
Multiplayer in Unreal Engine: How to Understand Network Replication
22:08
I went through ALL Unreal Engine Plugins, here is what I found
36:35
skibidi toilet multiverse Special Episode 03
4:03
DOM Studio
Рет қаралды 4,8 МЛН