A Whistle-Stop Tour of the UE4 Gameplay Framework | Feature Highlight | Unreal Engine

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
everyone having a useful day so far hopefully okay so my name is James Golding I'm not gonna leave I'm the lead framework programmer at epic and framework covers a lot of the pieces of the engine it covers blueprints it also covers animation collision physics input audio and it also covers that the sort of foundation that we use to make the game I've been on the forums a lot over the last couple of weeks since we sort of released Unreal Engine 4 and looking at what people are trying to do and what problems people were having and so I kind of want to talk through today and then do a quick talk but I'm going to cover a lot of ground so it's gonna go pretty quick I'll make the slides available online afterwards so that some of the details I might skip over now and you can maybe look at those a bit later on I'm curious we saw the show of hands earlier on how many people are playing to actually try and make a game versus just making sample stuff okay so half the room that's cool okay so this is really about how to make a game where to put what the structure of the engine is where to put things so hopefully this will be this will be useful for people also because I was worried that bringing up a PowerPoint would be pretty dry and boring I have also taken some of the best cat pictures from off the internal mailing lists and I put those every sort of five slides or so so I hope that all sort of keep things rolling and keep things interesting there's some pretty good ones in there and I've even found some relevant ones so you'll you'll see okay so what is the gameplay framework it's basically the set of foundation classes in Unreal Engine 4 that you use to build your game on top of something about unreal is that you can use both inheritance and composition so what that means is you can either make an object by putting components together or you can make an object by taking an existing class and deriving from it and that's a pretty powerful thing to do it's the sort of standard thing to do in software engineering and so we have these base classes that you can say okay I'm going to start from that derive from it and then add my own stuff on top but I still get all the benefit of that base class so it's a powerful way to build stuff so we have this basic structure and you derive from those that you need we've tried in ue4 to keep this really game genre agnostic so in Yui 3 it lent a little bit towards making a first-person shooters it was sort of good for that but there are certain things in it that meant if you wants to do something different you have to sort of work quite hard to do it we've tried to keep it a level playing field but it's as easy to make a first-person shooter as it is to make a driving game as it is to make an RTS and if people are finding difficulties with that you know we're always going to be on online and on the forums and stuff we'd love to hear about that and to try and improve this framework and make it more flexible and do more work for you why even bother having this framework why don't we just start from a completely you know empty engine well we found that over the last sort of you know 20 years or so building games they've been some patterns that we've used again and again and have really helped us make the game and grow the game from something small and prototype to a final shipping product we want to try and pass on that information if we can and we feel like if you spend a little bit of information up a little time upfront to learn how we structure things how we recommend you put things together that you'll find that if you make your game that way to begin with it'll scale better you'll have a smoother transition as maybe your team grows a little bit as the game you know you do future releases it'll just work better with the engine and so I felt like get that information out there a little bit so people build the games in a way that's sort of harmonious with the way the engine works and we can also solve some tricky problems for you things like character movement is kind of a tough thing to do well there's lots of annoying edge cases and making it work in net players pretty hard as well doing really good client prediction we've been working on that for four years now I mean since Unreal Tournament right and we've improved again in ue4 we so we think that's something we can just you guys can just take and then use and suddenly that problem is solved for you you can focus more on making something awesome and fun and do something really new and some of those basic things are done for you now boring stuff like dealing with handshaking in multiplayer games and disconnects and routing input to the right things and there's a ton of problems we can solve if we have a little bit more framework in there than just the sort of basic functionality so what do we not do in the framework we don't have any kind of weapons system we did in Yui 3 but we found it was really unhelpful because every game has a different idea of weapon many games don't have any weapons so rather than trying to do that we'll leave you to do it and we'll just try and have some good tutorials on how you might put that together there's no idea of health or death either that again is very kind of game specific and we felt like we didn't really bring any value there so we didn't bother doing it okay cap pick two number one we're gonna talk about actors what's an actor so an actor is an entity in the level something you can place in the level you just saw Jim Building levels by placing actors in there an actor itself is actually not very interesting it's basically just a bag that holds components and that's what does the interesting stuff so one thing is important about actors is if you were making a network game only actor properties or properties of classes that derived from actor can be replicated so that's kind of an important consideration you'll sometimes see actor use for things which are not placed in the level so that they can get that replication some things to know actors themselves don't actually have a location when you ask an actor where are you it has this idea of a route component and it asks that where it is that way we sort of avoid confusion of trying to attach actors to components and all kinds of mess that happens there so actors are basically just these groupings of components and with behavior if you're using C++ one thing to note is you need to use the spawn actor function don't use new object or construct object because bad bad things will happen another thing if your programmer is if you create an accent it won't automatically get tuned up for you you have to explicitly delete it if you change levels that'll go away but just during gameplay it won't go away unlike things like textures and sirens which if you're not referencing anywhere they'll get tuned up for you active components this is my favorite picture on-screen so like we said actors are just these kind of empty this empty class that you can fill with interesting tasty components what's an active component it's some piece of reusable functionality and so it could be asked or do component or a static mesh component or a light component I'm gonna jump into the editor quickly because it's actually quite a good way to show this stuff so if you go to components mode you can kind of see the structure of this of this blueprint you can see all the different components I can drop down this box here are all the components that come with the engine this useful stuff for like doing collisions child actor component lets you put another blueprint inside your blueprint you can put particle systems and all kinds of stuff and it's easy to write your own components we've made it so that you can write new components and a plug-in really easily your game might need to do something cool I'm sure that as the community grows and starts doing all kinds of things we'll see this list potentially get get really big if people are you know sharing that kind of stuff so it's pretty exciting in this list it's just like Jim showed in the level where you can Hut you can just drag things around to attach them to each other and so inside your actor you're basically building a little scene graph so you might have you know a character skeletal mesh and he might have a hat static mesh and that might have a light attached to it so you can build pretty complicated systems all inside one actor and write behavior that deals with that whole that whole system oh and components also have most of the interesting events on them so if I select a static mesh component I can see all the different settings just for that component down here there's also a list of events for that component so components come out of the box with a bunch of useful behaviors like when I bump into it the hitter vent when I overlap it like I've been looking for a trigger I get a begin and an end overlap event I also get events if I'm making a game say for mobile but I might touch an object in the world I get events for that if I'm making a game where I have a mouse cursor moving my mouse cursor over the objects I get events for that so I can pair it change color when I move my cursor over it or click on it so there's lots of really useful behaviors at the box and if I select any of these it immediately just drops down the event to the event graph and I can start scripting for something to have have it happen in there so I can ooh that for each component so I can have it you know when I click on that component of this blueprint it does one thing versus a different one one other thing I'll mention quickly about attachment because I saw this a lot of people in the forum's knew this and it's a pretty useful feature when you attach things together you see in here you have this location and rotation relative to its parent and what you can do is you can actually this one's actually really done it oh what is that ok if you click on the title it changes it between absolute and relative so for example if you attach two static meshes together normally when you scale the base one the child scales with it normally inherit scale by default in the engine but if you click on that box and change it to absolute scale the child will not inherit scale they'll still inherit the translation rotation but not the scale part this can be useful for example if you're building a game like Assassin's Creed where you want the camera to inherit the translation from the player but not the rotation you can turn on absolute rotation and that's how do that so that's one of the useful tools when you're building different genres different setups okay so there's like I said those are different events on there when you're working in the blueprint editor some of the components will be blue and some of them are white the difference is the blue ones are added from a native base class so I inherited some class that a programmer put together maybe it's us maybe it's someone on your team if it's blue you can't delete it you can't remove a component that a programmer has added in the base class but the white ones are the ones that you've added you can still change the properties of those components that the programmer added so they could add a box component and you could change the dimensions of it for example if they let you they can choose not to we talked about attachment already okay pawns and controllers so in this illustrative example the cat is the pawn and the stormtrooper is our controller this is kind of an important concept for for Unreal Engine a pawn is basically your actual physical entity in the world it's the agent it's doing the running around it's the thing that's interacting in the environment the controller is just the will is the mind that's not and we separate those two things out and there's a few good reasons for doing that so pawns can be possessed by controllers they don't have to be normally a pawn handles the input so when you press a key it's not with a pawn that knows what to do with that that way if you have lots of different pawns in the game you could imagine a game there's lots of different types of vehicles you could drive they'd each have their own handling at the input because it means different things for each one and you'd want to put things like health inside the porn those kinds of things the controller can possess upon controllers could be a human player a player controller it could be an AI controller and that's what's really nice about this split is it means you can make the one pawn and that can either be driven by AI or by a player it also means in situations like a multiplayer game where and playing as a pawn that pawn dies and I respawn so now I've changed my controller to possess at this point instead but I can leave that one alone as a corpse on the ground or whatever and just mix it's just a logical way to to group things so it's useful when you start building a game to think about what belongs where player controller cat controller I suppose this represents a human player so there's a kind of controller you use when you're actually sitting down and plugged in or your cat is sat there and plugged in there are some useful options in player controllers one reason you might want to make your own blueprint to play controllers that's where the option is to show the mouse cursor or not so if you want to make a an RTS versus a first-person shooter that's where the option is and there's various options in there for like clicking on things in the level and stuff and it's a good place to put any kind of behavior even a blueprint err in C++ that deals with like an in-game menu for example something that's not related to the actual blog running around in the level voice chat we have support for that in the player controller as well so if you think of things that sort of pertain to the player himself rather than his entity in the world that's the place to put it one thing I mentioned just briefly controllers also have a control rotation the point of that is that that's sort of where you want to look but you can choose whether the pawn or the camera or both uses that rotation so you'll see if you look through the templates that come with the engine they're all the different styles of camera like whether its first person or third person or top down are using different combinations of use control rotation pitch on there on the pawn or on the camera component to get different behaviors so we're going to I'm gonna do a blog post on this in more detail but it's just a key thing to think to sort of know I've seen a lot of confusion on the forums and people trying to get different combinations of like oh I want to gain like Spiral night so I want to gain like whatever it tends to be some combination of use controller rotation on the camera and on the porn and use absolute rotation or not on the camera as well character the now-famous caffeine ty from from some of our t-shirts at GDC so a character is a special kind of porn that comes with the engine it's actually easier I'd say to show you this in the engine let me fire up the third person project quickly luckily loads quickly okay so this is our template for a third person game it basic just has two blueprints in it a character blueprint and a game mode we'll talk about game modes in just a minute this is all the logic for it but we were looking at components so here you see those are those four blue components these are the ones that come every time you make a character blueprint it comes with a character movement component this is all the settings for how the guy actually runs around how high you jump how fast you can move how quickly he stops we're trying to make this really flexible so it will cover a lot of different cases and it's never going to cover everything there's so many crazy games that people are making out there it's not going to do everything but we're trying to find ways to make it really flexible in 4.1 there's some changes we've made to allow you to easily implement things like double jump and blueprints or jumping where you hold this button to go higher we're adding out at the moment that'll probably a four point two so we're keeping that on the forms of things people are trying to do and making an adding where appropriate options to do it but already you can do some quite fun stuff you can come in here and be like I want to jump much higher than that so I changed my jump velocity I didn't talk very well I can jump into the game and I was like yeah super jump man so it's pretty fun to just Holkar way to play with that stuff so that the character movement our route component in this case is this capsule that's what we use for collision with the world the error component is just to help tell you which ways forwards in unreal positive x is forwards anytime you see a node like get forward vector etc positive x is what you're thinking about that's not the convention for necessarily all 3d packages and stuff I think wire and stuff is - wires forwards so sometimes when people give you a character machine you bring it in it's pointing the wrong way and the Walt's in sideways so that's easy enough to fix you can always just select the mesh and rotate in I left the game icon it's a bug you can just come in here and rotate him but often it's nice and not to have to do that and so just to like tell your artist a positive x please if possible but it's not a big deal and then in this particular case we've added two extra components we've added a camera boom and and there follow camera as well so that the camera follows around the guy rather than being attached in it so like I said earlier on the advantage of using our character class is that you get a lot of functionality out of the box and it handles networking and all that kind of good stuff HUD the HUD class is what you use if you want to get some simple UI on the screen really quickly if you want to put a health bar on there or you want to put like an ammo counter or a crosshair in the middle the screen you can make your own blueprint or your own C++ class that derive some HUD you've got an event in there which lets you draw text lets you draw rectangles and materials or textures on the screen you have a mini-map up for example there's some simple support in there for boxes you can click on with the mouse so you can build some simple UI with it but there's no like graphical tool for it it's very kind of like simple straightforward direct way of making things but it can be a good way to get some stuff on the screen particular when you're prototyping but we've we've certainly done I mean the UI for the in-game stuff for like ut3 I think was all done using canvas so you can you can do some pretty pretty fancy stuff if you need to game mode so now we've got these different classes we've got a hard we've got a player controller we've got a pawn the game mode is basically thing that ties all those thing all those pieces together inside the editor if you come in here you go to your project settings you can set the default game mode for your game so whenever you open a level this is the game mode that's going to be used you can either choose an existing game mode you can make a new blueprint game mode right here and it shows you below for that game mode what settings am I using you can also just open it in here so you can see your choosing which poll class which HUD class which play controller class there's a couple of other ones as well so that's the main purpose of using a game mode is basically to tell it which set of classes to use when I play the game the other thing that game modes are useful for is if you need particular rules for your games if you're making a capture the flag bit mode you might have a set of rules about when you can spawn what the objectives of the game are when does the round start you might also want certain things like what the current score is that's a good place to put it because everything can get to it there's a function called get game mode and you can just every objects every porn every actor in the level can get access to that game mode object I went through all that things to note though the game mode only exists on the server if you're making a multiplayer game so if there's information the clients need to know you need to make a game state that exists in all the clients and can be replicated out to them like I said you can get to it from anywhere we're making some changes to game mode in 4.2 but hopefully this'll only affect people who like it shouldn't affect too many people because it's it's sort of mostly internal but it's to do with the way that the game Road state machine handles games beginning and ending so if you've been in there monkeying with that code you might have a little bit of a merge to do when that comes out input so I will leave that up for a minute input you can either bind directly to if you go and look at this graph this is this is how our third person template works it's a little bit more complicated than you might expect but that's because we handle console input and max keyboard input and touch input all so that bit over the right hand side is walking forwards and backwards relative to the camera we've got MERIS input to turn we've got gamepad input to turn got a jump being handled and then that's touch and put down the bottom there so you can see that if I right-click on the background and type in input I can see all the different sort of basic key input stuff I can do so I can go I press the JK j key and that spawns the killer robot or whatever so you can do that but a nicer way to do it is normally to go into your project settings go to input and this is where you set up what we call axes and actions these are like named axes or named actions and you can choose what Keys they're bound to so forward WS will do it so up and down and so over the left joystick once you've created those then you can use those inside your blueprint instead and that's what it's basically doing down here it's using the axes nice thing about that is you can change your input mapping later on and you can iterate without having to go and mess with the blueprint about how many different places and the last thing I'll talk about is collision I think some people didn't realize how how many different options there were for doing collision tests and queries into the world this catsuit who didn't realize so there's three main types of queries you can do you can do a line trace also known as a ray cast more commonly you can sweep some geometry through the world and you can overlap you can take a shape and say hey inside this sphere tell me all the objects that are there and it seems like a very kind of program everything to do but as Jim was showing it can be really powerful and you combine it with construction scripts that you can have things that conform to the ground you can find objects nearby and connect to them you can do all kinds of stuff it's a very powerful thing to be able to do is to build objects that reach out into the world and and adapt to where you put them that's that's pretty pretty compelling so in blueprints it's pretty easy if you just right-click on the background and type condition you can see you've got all these different things here like oh I want to sweep a sphere and want to get multiple results or just one result and so on and so forth if you're writing C++ it's all in the world you get the world and then you can do queries on the world to ask it different things I had two notes on simple and complex collision but I decided that's probably a little more detail and going into today if it was interested we could feel free to ask questions later but I'll have them in slides in case anyone there wants to grab those later on and that's it that was a very quick tour through an awful lot of classes and an awful lot of engine but hopefully it's helpful if you're starting to make a game or your you've tried it already and what kind of confused about what all these terms war and how they related to each other I hope that's been at least somewhat helpful in in explaining what this framework is and what it's for so what's gonna be first is we'll do questions on on this stuff and then like jim says we'll do our boltron combining forces and see if we can answer anything you can throw at us and in religion force so first of all anything about framework or making games or any of that kind of stuff oh that's my over there what's the best way of doing a finite state machine for AI controllers within the framework so I'm caveat not a big AI person I know I don't know a lot about so we had this behavior tree system I don't know if you've is that saying you've looked at yet or okay so it's not sort of fully released yet the tool chain is not reusing internally but the tools aren't quite at the point we'd like the workflows a little bit clunky so we didn't want to like make a bunch of tutorials and Docs for it before we really got it to the point that we thought was good so from what I understand behavior trees are like the hip you think in AI but I said I don't know a ton about them so we've got a nice graphical editor in there where you can like set these things up we're using it for fortnight and we're right now kind of iterating on the tools to try and get into the point that we want to like you know document them and really push them out there but they do work right now there's an option this is the is it a good idea Jim is it so if you go to the project settings no it's not project settings its editor settings editor preferences under experimental this should be called experimental we really mean it there's an option here to turn on the behavior tree editor and if you actually look at the shooter game example that we have the bots in that use the behavior tree stuff so if you turn that on then you can open up those behavior trees and have a look at them it's actually been a few forum threads about behavior trees and blackboards and all kinds of stuff so like I said buyer beware a little bit like we're still iterating on it it's likely to change a bit but because we're actually using it I think the behavior issues you make will probably continue to work but the UI is definitely going to maybe see the whole bit more polish so but yeah let's note we we have oh and navigation as well we have do care about navigation if I open up the system - stuff yes so we're using a library called recast for our navigation now which is really fast it can generate now fetch if anyone use that meshes in Yui 3 this is like a hundred times faster so as you can see this green part is that is navigation mesh I can just drag objects around and it automatically updates is pretty cool this is this is another samples that come with it where if I click he'll basically path around objects to get there yeah there's something if I grab this move it over maybe there's a look so you sneeze like puffing around like that in fortnight we actually do this like as you bash down a wall we rebuild the navmesh for that region of the world and all you need to do to use the navmesh is you drop in a navmesh bounds volume and it's kind of cool because you can see if I you know right now that's why it's that's why sitting on the ground and all the tops of things but if I move it up here you see it goes ahead and builds navigation on top to stuff so right that's all in there go nuts there's an option on the navmesh bounds volume that says whether or not I should rebuild during gameplay so it defaults off because it it still cost a bit okay so I guess we'll open up to Oh No let's go ahead hey I was just wondering and if you know the answer how hard would it be to transfer from Unreal script to boss it's not too bad we actually had to move a fair bit of Unreal script to c++ during the transition and we had a sort of one of our guys wrote kind of a tool to do it but it was very sketchy like it would break a lot and so he decided not to release it but and there's a lot of manual cleanup afterwards but I would say like if you just grab it I mean a lot of the functions are called similar things and I would I would say it's not particularly hard but a lot of concepts are still the same and you know just some of the operators might be different some of the functions might be a bit a bit different but it's not too bad because the structure tends to be the same but you know it's not something we can automate really haven't tried so yeah this is gy frameworks narrow place Adobe Flash and emergent fall so I'd say it doesn't really replace flash the slate framework right now does not replace flash slate right now is super plus plus driven it's if you're a programmer you can put some things together quite quickly with it and it's a great UI toolkit for building tools it's it's when I've used a bunch of different ones and it's been really good for that we are using it for the for some of the fortnight UI but it is very program eccentric so it doesn't replace flash where flash is a very kind of designer centric and also reckon animation centric workflow what there are some options coming on like coherent just like how to plug in for Yui for that's a web-based the html5 based plug-in for being all to put things in the engine so that's a really cool interesting option for the short term Scaleform will have a plugin for you before and what we're working on internally is taking slate and do so-called UMG and real motion graphics and taking slate and basically extending it to have an editor so that you can either build it in C++ or build it visually that's a project that's started now but it's quite a big project so we don't really know when that'll be at a point where we can give it people to play with but that's like kind of longer-term plan for a more designer driven UI system so we're working on it and let's think they're having all the source up on github is you can you'll be able to see literally every every time we check in and work on it so yeah okay so why don't we open up to like all questions about you before and me and Jim we'll do our best to answer them so right there just wondering about in terms of like animation the characters so they carried the animation trees have changed sorry no the last three sessions we got said what about animation we should have done animation I will I will show you so are you curious relative to Yui 3 or just curious generally curious gently right okay and I'm also like relative to yes to all of the above okay so Alan sets have gone on animations or individual assets now so you don't have to try and clear out your Panama set up and use animations annum trees are replaced by what we call tannin blueprints they're a special kind of blueprint that's designed for blending animations together the aintry editor and the animset viewer tools have combined into one tool be called persona and we would like to get fat in there as well one day so we have one central tool for doing all kind of character the fat is our physics setup tool for ragdolls so we'd like to have all those tools combined into one one place where you can get all your character related stuff so if I turn on the Alan blueprint filter this is the animation blueprint we use for this game and then we put in has two main pieces one the event graph is basically where you can reach out and interrogate the pawn that owns you it doesn't have to be a pawn to target whoever lends you what's that Terry really angrily you know I skipped four things so it could be you could ask it for like what's what's its health and in this case it's basically going hey let me get my the pawn owns me I'm gonna get some movement component I'm gonna see if it's falling and I'm gonna put that into a variable called is in air and then I'm gonna go I'm gonna get the velocity and I'm gonna get the length of the velocity so that's basically how fast am I going I'm gonna save that into a variable called speed so now I got these two variables one call there's an air one called speed the reason that this is separate from the blending stuff is this happens it's kind of technical but the blending happens on another thread and you're not allowed to access this stuff from another thread so that's why it has been broken into two pieces but it also kind of logically makes sense that you have one piece that that figures out all the things you care about and then another piece that actually does work so then the animgraph this is similar to anyone who's used an EM trees in Yui 3 but also tools like mecanim in community or morpheme natural motion especially a hierarchy of blend trees and state machines so this is our top level blend tree just has one node in it not all that interesting but has a state machine inside and this is easier shown running so if I do this if I play the game and preview the guy so now so you can see that when I normally in idle state when I jump it plays the start jump animation while I'm in the area it hangs out in the jump loop animation and then it comes back down again at the end so you basically have these states and you have these rules about when it should transition between the states and the rules if I mouse over them it says you know oh I do this transition when is in air is true if actually double-click each one of those rules is actually little blueprint so you can write quite complicated logic in without him to be a programmer which is pretty cool and it leverages all that stuff we've done for blueprints already and then each state is its own blend tree or state machine or whatever so it's pretty sophisticated we also have inside this idle run we have a thing called a blend space a blend space is a 1d or 2d space in this case it's just a 1d space which parameterize is the speed and walking in that other variables I got and it blends between an idle animation or walk animation and a run animation we zoom in on this guy a bit so you can see and so I could there adjust like where these points are to adjust like where that transition happens or whatever this gets more interesting when it's a 2d space so for example if you're aiming you might have a vertical and horizontal aiming and so you could put in multiple different animations for all the different poses or whatever so it's quite a powerful way of blending together animations based on some parameter that's a real quick look at animations that is that helpful yeah okay I have a question about multiplayer over here sorry I am in regards to multiplayer such how many players would you be able to handle because Unreal 3 had some issues once you start getting somewhat high in numbers and such yeah yeah so the limitations on Yui 3 were partly due to the replication system because it was kind of N squared with with people the model is basically the same but much optimized in ue4 I don't really know we hope there's a really a limit there it's sort of how much CPU you're willing to put on the server but things like the the way the Unreal networking works is on the server for each client has a copy of what that client knows and it compares the state on the server with what that client knows and sends any differences every time it sends a packet doing that dipping is tons faster in ue4 than Yui 3 so I like as far as I know on the order of magnitude of like 10 to 20 times faster like it's substantial so we can handle a lot more clients also we've introduced some neat features like dormancy / replication so son like fortnight we have about 10,000 actors in the world they're replicated but 99% of them are dormant or asleep they're not sending any information so you can build a world with a lot of replicated interactivity and just wake things up when they you interact with them they can they can replicate and then they go back to sleep again don't take any cost so you are limited in the number of replicated objects in your world and Yui 3 and up the documentation is basically gone away we've also got some nice features we can replicate the Nemec arrays we can multicast arc and C's there's all kinds of groovy stuff but it's it's basically the same bones as you III but optimized and more feature for so so yeah there's a from just from a design perspective like everything else it's it's it's horse-trading or I like the more characters you add the fewer the last memory you have for other things or you know fewer effects or less complicated animations or different drop calls you know number of actors in the world the scale of the world I mean all these things kind of tend to play together and people always ask us how many characters can I have how many polygons can I draw all these things are very very dependent on everything else in your game certainly it is a you before is a much more performant engine than Yui 3 I think it's easy to say oh it's higher end and stuff I mean yes we're pushing more complicated shaders there's more going on in our rendering pipelines so it does need a faster graphics card but in terms of the actual bones of the engine it's optimized it's not a slower engine than Yui 3 it's a faster engine than Yui 3 in many ways so you should be able to do more complicated worlds and as we start to thread more of this stuff once we have animation onto another thread and removing hopefully we're going to remove other parts of the engine onto other threads that'll really start to take advantage of multi-core systems and we'll be able to have worlds with hundreds of characters and like it's been designed for that and we want to be curious to see what people get up and do building games with lots of players in and like find out how much you tell us what the other limit is if you've got clients and you want to push data to those can you still do redirect service as the co flat still in there if you've got clients so if you distribute your game and you want to release Maps later for example can you set up a redirect service so it comes over HTTP as opposed to tied to the I know what - I don't know that bit sorry that's that's that's deeper than I know but if you ask on answer how about someone I'm sure that they would I suspect that the infrastructure for that might change I mean I know that are those guys got all kinds of plans but I don't know what they are as far as like building in services for distributing content of stuff so yeah I I couldn't answer that very sorry this platform is change yeah that might have changed um it's not quick one gravity key change the gravity vector you know at local gravity vector yeah oh yeah I just wondered about the gravity vector key changing globally and potentially locally for characters characters no characters still only fall down he kept good thing no no so we're doing find creative ways to do it anyway yeah so there's actually an interesting food on the forms about that so exact Middleton is the guy who kind of Owens character movement now and that's one of the things you know I was saying that we trying to make it more flexible we're looking at maybe there's a way to make it work in any direction we're worried that it might be hard for us to do in a way that doesn't make it slower slightly and so that's a difficult decision to make then between three and five percent cost to everybody to support the people I know it's it's always hard I remember people trying to do things like war war King and things yeah yeah so that'd be cool to support so I know there's people trying it and I know that we're having interesting discussions with those people less there's a big thread on doing like a sonic style like loop-the-loop there's acts involved in and that's a pretty interesting conversation so we're open to doing making changes that we can to make to support that and if we can find a sort of sensible way to do it that doesn't cost other people I guess so I guess that's an ongoing conversation but right now you can only that the gravity for characters is only along said though of course some things like physics you can apply it whichever way you like because that's much easier there's no yeah there's no complexity there but yep how does you before handle sound and music so the same system is a bit different sorry Lewis start that by having used Unreal Engine 3 or are you asking like just from scratch you use a little bit of you III have a general idea Valerie's okay so the basic idea is you can either import like a WAV file I don't know if this game has any in it yeah what's that protocol so you can put music in the okay so you can import a WAV file and just play it that's the kind of most basic thing you'd expect people to do we also have a thing called sound cues which let me see if we have any in here okay so a thank you is basically a way of grouping together individual sounds in some kind of procedural way so you can have like random switches in there so that way you can make like a shot like a gun firing sound which picks like a random one each time or mixes them together will add some randomness to it so it doesn't always sound the same and yui3 you have to make a sound cue now you don't have to you can either play a wave or a sound cue which is an improvement it just makes things a bit simpler not having to always have two assets for every sound we have taken all of the different in Yui 3 we used to have a lot of different sound types that you could place down there's like ambient sound ambient sound on looping blah blah blah now there's just one type of options on it so that makes things a bit easier so if you just drag your sound into the level you get an ambience sound and then inside here you have options for pitch and volume you can promote and then you can also do much of its on here you can also change the attenuation per instance and you can we actually different shapes for that so sphere is the default but you can actually have like you know box shaped attenuation so for example if you had a corridor that you wanted to have a particular sound down it you don't have to like a lot of sounds down you can just put like a box that fills the whole corridor and it falls off from there that's been kind of a nice little feature so it's been small improvements over u3 but they're pretty helpful ones I think there's a great sound map in here that if you haven't played the engine much yet okay so there's a fantastic I think it may be in 4.1 coming up what we're gonna release that but there's a one of our audio guys did an amazing audio example map which goes through all the different features and does all kinds of cool stuff so we'll get that out sometime soon and it's definitely worth checking out oh and we're adding audio streaming soon which is saying we didn't have for a long time which is huge that means you don't have to like have all your music always loaded so that's gotta be good we're just figuring out how to make it work and all the different devices and one one of our guy who does the audio programming also on his epic Friday last time added was almost done adding mod file support likes tracker files because it's actually pretty good solution for like a mobile game where you want a small download size but don't have music you don't necessarily want to have like big newsy files so that's a curious little feature we might be adding as a plug-in sometime soon so get scream track around again anything else one down here like optimizations with the controllers for example like when you make it an input like walking forward with an Alec stick with ps4 Xbox one for example oh yeah we just work so if you do it if you plug in a controller and like do it only for your controller on the PC when you get it running on Xbox one or whatever it would just work an engine has an integration now so it can for example make a piece of prototype it just can move forward and just optimizing stuff with the graphics and yeah yeah I mean but yeah you could it's absolutely a good idea to start when most of our console games have always started as PC games and then we've sort of then got them on the console and started optimizing specifically once it's on there but yeah if you're if you wanna make a console game start on PC right now and it will absolutely transition across you shouldn't have any problems at all with that so yeah thank you it's tough oh right here is the workflow for creating stuff like camera systems in matinee similar to u3 or has it changed itself has exactly changed we've had some minor tweaks getting in some minor improvements however again down the line sequencer is a new system to replace matinee that's coming eventually I don't know if they have a room metal man that's gonna be released because it's a very very big project but all the functionality that was in Yui 3 is still in there and there's a couple of really good examples in it and matinee maps of things that we've done and there is more flexibility now it's easier to set up cameras inside your actor because we actually our camera component now which is not something we had in Yui 3 so as you saw the little picture and picture which doctor oh yeah yeah that's basically so basic you can have a camera component to your actor and when you or your porn rather when you possess that porn it'll use that camera so you can attach it to a bone if you want to or whatever that's that's made it a bit more flexible in 4.1 we use the activation state of the camera component to choose which one to use in 4.0 if you had two camera components it would just pick the first one it found but now it only picks it if it's active so it means that you could say have multiple camera components inside your porn and then turn them on and off to like switch your camera view so you might want to do you know there's a we have something a squeaker driving game you might want like three or four different camera components for different positions aside that and we just met recently added so this will be four point two camera animations again so that's saying that you can you can build a camera animation and like just play it and that's great for we use that all over the place of gears cheeks yeah sure all right this is just like I think it's it's cool because whenever you click on a camera you get a little picture and picture automatically that shows exactly what that camera sees because it used to be kind of a more complicated process where you had to attach yourself when they rearranged everything and now you can very very clearly just see exactly what the camera sees did you see the thing that I did we can I know yeah cool thanks oh I'm just wondering how you do turian in creation hasn't changed as well because like we were making trained for our game that we're doing for a great project for the minute and it's just that is there an easier way of like making sharper tree and stuff and you need for over is it the same processes Beauty can you III know there's an entirely new landscape tool now I go crazy and I hear up in your mode and which again you can set up your quads you can set up your detail the the actual process of going in and painting and all that stuff is very very similar to what we had in Yui 3 but this is much more powerful you can stitch them together very easily you can select multiple of them and the tool doesn't it doesn't care where you are I'll just paint seamlessly between them so if you're doing like massive massive worlds and different as you can for long and paint pieces in an ounce now so the editing process is very similar but the the tool itself was a lot more robust and in terms of multiplayer stuff because you guys mentioned it earlier for me personally I've never touched like online multiplayer how easy would that be to implement I like how much of it is already supplied sure I mean network play is a is a difficult thing sometimes you have to think about what you're doing but you can do it in blueprints you can make multiplayer games entirely on blueprints which is kind of crazy kind of cool and we just recently added I think there's five or six videos just went up like yesterday Billy brain Matt one of our game play programmers on for tonight made these videos of how to it's not an introduction to replication and networking generally and he actually focuses on blueprint replication so how to set up a game and add variables and have those replicated between clients all done in blueprints but it's not very applicable to C++ I mean they're the concepts and the workflow is basically the same but we've been surprised that how much when you start wanting to make really no real things in a multiplayer game using blueprints you kind of need to know how to replicate things if you want the fire hydrant that when you shoot it it starts pouring water you want that to work in the netplay case so you're going to need a little bit of logic in there to make sure that it works correctly on the clients so yeah we want to make sure we had the resources to educate people on how to do that so yeah thanks have a go I was wondering for your mesh import process is right the same we export it Dex do you have to go find those files there's no crying tchen exports a whole bunch with dummy factors like all the same time into a par are you gonna release 3ds max plug-ins we don't have any plan to do 3d studio plugins right now each object has to be its own FBX file you can't take like multiple objects and put them all at once in one FBX file though that's something we've talked about that's not like on our roadmap anywhere but I'll make a note that give me you've asked about it too it's just about the speed yeah there's a phone crying faster most of the time just to get things into the engine right so yeah I mean you can import multiple files at once but obviously there's you go to export multiple files which takes more time ok so that's a that's a that's a good point um I mean yet the workflows is def is still similar to Yui 3 where you export each object as an FBX then you're important in but we're trying to make it more robust now we're starting to see people using tools like blender that we hadn't really got much experience with and so we've been really looking on the forums looking and as a hub to try and see people who are having problems 4.1 handled some cases we didn't handle before it also is a bit more helpful when there's a problem with the file to try and help you fix any problems with it and we're hoping to get some of our artists to like show how to set things up in max to come in really well so we're sort of trying hit it from a few different fronts you know that FBX is that is a tricky format there's a lot of things it can hold a lot of different ways to set things up and we're trying to find the best way to sort of make it as friendly as possible when people are trying to get content in alright thank you oh we got some landscape cook we have five minutes left is the only thing that anyone wants to see your ass yeah oh sorry types of construction scripts yeah what extent can you kind of Paramesh the build stuff like for example of you like like a shape with a fence then kind of made the raid to extend it up you could adjust its floors could you like then for example have kind of floor surface in it that extends based on yeah I think so did you populate it it seems I mean there's not really any limit to what madness you could do there I'd be interesting to see I haven't seen anyone build building there's some people in the forms of building buildings well in the other thing to remember is you can do blueprints insider blueprints so you could have a random door generator that's citizen side they've written a wall generator that sits inside a random room generator that sits inside a random building dinner you know like you nest these things in-game in crazy ways that would definitely be no bugs and I'm sure that every combination would work together perfectly but point being depending on how much time you wanted to invest into it you could definitely I mean it will work with things like static lighting that should work fine where because do we really talk about this session was that previously I was previous okay sorry the construction script only runs in the editor it doesn't run if you place an object if you've placed it it will rerun when you load the level in the editor because the blueprint might have changed since the last time you save the map but when you open it in a cooked build it doesn't rerun the construction script because it assumes that the script has not changed since the you cook the map and that makes loading times much faster obviously because you know how to do all this work when you load there's no need to so don't do things in construction script you expect to happen for your your blueprint to function that's one thing people sometimes find is bugs where they do something in the construction script like initialize some variables or something don't do that there do that in begin play the event and the other thing is if you wanna make a procedural game construction scripts not the place to necessarily do it because again that doesn't run in the cook build you want to use begin play to place your you know random dungeon or whatever but yes pre keep you did lighting should work fine on on staff you place things we just fixed the bug where you couldn't vertex paint on static meshes inside blueprints we just fix that like a week ago so I don't know if that made for point one or not but it's coming really soon so yeah it's I was wondering Amalia ringing sorry I was wondering how unread for handles inventories and in inventory management and such there's nothing built-in for that it's very much like you make your own there's a lot of ways you could do it it's an interesting question I think every game we've made has done it in a different way but I mean that one of the easiest ways to do it is just like atom array to your character of classes of things that they hold and that way you're not really using any memory for instances and when they drop something you just spawn in there since that class and drop it in the world so that's pretty the easiest place to start is just using the class of the object as the in your inventory but things would get complicated when you start wanting to like oh I want to durability and all my objects that I need to store that somewhere and yeah it's tricky but it's tricky because game development is tricky you know not because you know the engine is giving you lots of ways you could probably solve that problem and let's face this with lots of RPGs made with with the Yui so there's a lot ways to cut that I'm not really sure the best one would be but nothing out the box cool thank you very much everybody it's been that good
Info
Channel: Unreal Engine
Views: 16,563
Rating: undefined out of 5
Keywords:
Id: 4ZW1BhGMYz0
Channel Id: undefined
Length: 51min 35sec (3095 seconds)
Published: Fri Jul 25 2014
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.