Trying Unreal Engine 5 for the first time, after 10 years of Unity

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi everyone this is the second in a series of videos where I take a look at different game engines in an unscripted way and give my first impressions previously I had taken a look at Godot and it was fantastic to see the Godot community's response to that video they're super helpful and welcoming and I really appreciate it so I'm excited to take a deeper look at that engine in the future this time around though I'll be taking a look at Unreal Engine 5.3 and I'll be doing so without the aid of a lot of tutorials or any tutorials or documentation for the most part and the reason that I'm doing that is just so that I can highlight certain areas that may be more or less intuitive to someone coming from a different background like Unity it's by no means the most efficient way of learning a new engine so it's just another kind of take on it so I downloaded Unreal Engine and I did so from the epic games launcher when you do that you get an entry over here on the left and there's some tabs up here and you also have a launch button in the upper right I'm also noticing a Chevron to the right of that button when I click on it I can see the version of Unreal Engine that I've installed so my guess on this is that it's maybe similar to the unity Hub where you can have different versions of the engine installed on the same PC so if you had an old version of a project or you had an old version of the engine like Unreal Engine 4 you could run that along with Unreal Engine 5. that would be my take on that I'm also seeing these tabs here so I've got news samples and Marketplace and some others so the marketplace looks like the asset store and just like the previous video I'm not going to be using any uh assets just kind of start from scratch and and see where I can get alright so let's do that let's hit the launch button [Music] all right now I'm in the unreal project browser and I can see some settings related to my project over in the right here it looks like I can choose between blueprint or C plus plus I'm sort of loosely aware of what blueprint is it's some sort of domain specific language or a visual programming system but I am more familiar with C plus plus so I'll select that I'm going to assume that you can interoperate between the two so hopefully I can make a c plus project and then try out some blueprints in it under Target platform I will keep that at desktop but it will be good to know if I have the option to go to mobile later in the same project so if I select desktop here will I be able to build for mobile later and vice versa leave the quality setting or quality preset at its default I'm not going to use any starter content because in the previous video I was at a blank slate so I'm going to do that or I'm not going to use starter content and likewise I will leave this template on blank and maybe try some of those other templates later okay I'll name the project and let's get started [Music] okay so it looks like the unreal editor is opening up I believe it launched Visual Studio as well unless I have misclicked and did that myself but uh we'll see what happens here oh no it does look like it launched on does look like it launched Visual Studio um asynchronously with this editor launching so I've already got a solution file and within that solution file I'll kind of go over that as unreal is launching engine games programs rules and visualizers so I see it's games plural so I'm wondering if that means that other game projects I create will show up in that directory we'll have to see it's also prompting me here based on your solution you might need to install extra components for a full development experience well I certainly would like the full development experience all right desk desktop development with C plus plus okay so that's interesting when I installed Visual Studio 2022 I did select the option for um game development with unreal but interestingly it looks like I I needed to select desktop development with C plus as well so okay well I'll go ahead and do that [Music] okay so it looks like my project is created and I'm seeing some terrain here uh so either I had misconfigured something about an empty project or this is just a sample piece of terrain that they put in we'll have to try that later okay so let's see what we can figure out about this user interface um over here on the right uh it looks similar to some of the scene views in other tools like unity and Godot uh but just uh swapped over here it's called the outliner it lists all actors in the level by name organized in a tree view so just kind of parsing some of that text um I see actors level uh and you know there's a tree view so I'm going to kind of be mentally translating from other from terms in other game engines to Unreal as I go so an actor my initial thought on that is either it's like a node in Godot or it's like a game object in unity I don't know if that's one to one uh because also there are yeah I mean entities is a term and other things like that so we'll see what what that means what actor means and then uh level so I'm wondering if their term for you know a scene in unity for instance is a level uh in unreal here it says hold Ctrl alt for more okay oh for more details ah well there you go does it your Outlander panels view details about the listed actors create folders to group related actors together um drag and drop actors on top of another actor to give them a parent-child relationship when you move rotate or scale a parent actor its children follow too okay so that does seem like a node in Godot or a game object in unity and we'll see if that holds true so I do have some actors and folders already and I'm Okay so what's in here can I okay so this kind of navigates to it looks like something like a level of detail um and there when I click on it it's some maybe subset of the terrain yeah it looks like a subset of the terrain possibly let's find out by deleting it I'm gonna zoom out in the same manner sort of um okay so right Mouse kind of orients you and um what if I delete this duplicate edit edit delete didn't seem to do much okay that's interesting let me do an undo here okay so when I deleted the folder the contents of it which are let me open this can I open the oh I see I selected one of them okay so I selected some sort of subset of that terrain what if I delete uh if I delete this edit edit delete Place actor oh yeah edit delete I'll just use the shortcut from now on okay there we go that's what I expected part of the terrain who went away okay so they're called oh that's the landscape and then I've got this world uh partition thing here so so probably what I needed to do if I wanted to remove the like let's say the entire landscape is just to do that is to delete this um I don't know if this is a folder it looks like it has a different icon so uh maybe it's an actor is everything here an actor is a folder an actor Maybe all right so we will delete that whatever it's called can't cannot delete landscape okay so maybe that's a um required part of a project also I'm noticing this red I'm presuming an error or warning 62 actors with physical materials need to be rebuilt disable all screen messages to suppress so I'm not sure where to set that that would be it'd be nice if they had maybe like a link or something but I will not rebuild it all right so before I go any further in um destroying what's in here I'm going to press the play button play this level in the active level editor viewport okay so I've got a new term viewport okay so I am in a view a new view that appears to me to be similar to the game View and unity um I can't actually oh it appears as though I have a a first person controller so I'm able to do mouse look I'm able to use uh wazda for movement can I jump I can space ah space is like a um jet pack okay I'm wondering if I had sort of accidentally added a first person um controller to this thing that's sort of vibrating so let's try to figure out why I was able to do uh to move around like that I'm kind of drawn to this player start has a little icon um that looks like a game controller uh so let's take a look at that and um players start an instance of a class player start with a parent class Mobility static with a capsule component this is the default scene root component it cannot be copied renamed or deleted it has been inherited from the the parent class so its properties cannot be edited here new scene components will automatically be attached to it so two new terms are seen and component those are both analogous to um something in unity there's our scenes and components there so I have to try to translate between uh component actor scene level uh so I'm kind of making a mental note of a glossary of terms here it says Collision capsule and as I select still not not sure to call these I'm going to call these I don't know whether to call them actors or not as I select these items in this list uh this view down here changes so the players start has a transform and a tag and it has rotation and scale so that's what definitely feels like a game object from Unity uh networking wow okay I wonder if that's a default um that would be interesting uh you know I've been using some of the networking libraries in unity and certainly it's not baked in at this kind of level it's sort of um you have to add additional Packages Etc so that's cool there's input attached to this um okay and then a capsule component so it looks like I edit just the capsule component in C plus plus we'll see what happens when I do that so over in vs 2022 I got to navigation object base let me try that again so edit in C plus player start capsule component did indeed take me to this header file I'm not sure why let's take a look at the project okay so it took me within the engine folder and the engine folder is separate from the games folder so I would expect my game specific logic to be in here so let's take a look there my first unreal Target all right so that added in C plus plus didn't necessarily uh show me a lot I'm going to remove as much as I can here to get back to a blank slate okay so I'll delete the world partition minimap it's kind of interesting that um a minimap is sort of a high level Concept in in unreal that'd be that's kind of uh nice let's get rid of it for now if I can so can't get rid of that I can't get rid of the World data layers all right I can't get rid of the player's start and let's see what happens when I do that oh so I just hit Ctrl s it's kind of Habitual and realized that I did not save my level so we'll call that new map all right so would that player start removed once I play this level I'm seeing um a player start showing up in this outliner in a different color possibly to indicate that it was spawned at runtime maybe I would I would make that assumption just because it's not here during build time okay players start which has a certain icon player State and player controller so yeah I can still use that that first person controller if my game is not first person I know there were some other templates so maybe it's a question of starting with one of those um Okay so try to get rid of as much of this as possible and I just got one little bit left okay and now when I play I can still sort of fly around um like uh creative mode in Minecraft well so this clearly is you know get geared toward 3D and and likely what I would use unreal four would be a three a 3D game and uh so I think I'll just I'll leave it in 3D mode I want to try to attach some game logic as I did in the previous tutorial uh but maybe I'll do so with a 3D with a 3D object okay well here we go quickly add to the project and okay so I can add a basic actor or some that have special types so an actor is an object that can be placed or spawned in the world a character is a type of Pawn that includes the ability to walk around and a pawn is an actor that can be quote possessed and receive input from a controller and you've got some lights and then uh this class is a location where the player can spawn when it when the game begins okay I'm going to re-add this because it seems um to be necessary and then created at runtime if it's not present yeah so here be it looks like because I had a player start um defined before I pressed play it used that one it didn't you know spawn another one but it did spawn or create some things like this controller I noticed that capsule when the players started so those little interesting lighting effect there okay let's go ahead and quickly add um basic actor and see what that's like kind of hovering there let's see where it's located so location um in in some kind of world units here eighty thousand ninety thousand that's already um these are interesting numbers to me well first of all I'm you know it may be just creating it at this particular terrain location because uh that's the one that I had had uh that remained but this the scale of those numbers from a Unity perspective these would uh be floats in a vector three in unity and you'll get some the further out that you go from the origin you get floating Point uh Precision errors okay so I add a new component new C plus plus or blueprints component I'm gonna again I'm gonna try C plus plus first I'm more familiar with that than than blueprint and I can make it an actor component a scene component uh or some others this will add a c plus header and source code file to your game project common classes are all classes okay actor component let's try that yeah so Class Type public or private so if I don't specify let's see what it does and we'll go ahead and create that class I'm also interested to try debugging at some point both with Godot and unreal with uh Unity what you did was you could attach to the unity editor from within Visual Studio there was a um menu item in the debug menu so while it's doing that you know here I've got attached Unity debugger in the visual studio debug menu um so I'm not sure how to do that yet with unreal or with Godot okay and I want to reload the changes in Visual Studio and then I also got a live coding so the build triggered over here and unreal and in Visual Studio I can show the output of that you can show it side by side even let's see what this oop live coding succeeded data type changes may cause packaging to something or other error enhanced unreal analyzing blueprints enhanced Unreal Engine support requires the free Visual Studio integration tool plugin analyzing blueprints well I didn't make any blueprints myself maybe there are blueprints elsewhere in this project I'm going to see if I can ignore that for now uh although well okay here we go here's the link to install that thing that it told me about here now let's just do it okay pull this over here uh oh this looks like it might be a process we'll save that for later see if we can still um do something so all right I digress uh there is a new C plus plus uh file and class after I added that component based on the name that I gave it and uh let's look at the header file this is the implementation um the header file include some other things and has some macros and okay so here's kind of the bit I was curious about so this new this you new actor component class um that it generated is based on you actor components so just like I did with Godot I'm going to go back up the the chain here so you act a component um and here it's from a u object and an i interface asset user data thing so C plus plus also if you're familiar with C sharp so C plus plus has multiple inheritance so I you can inherit from multiple base classes whereas uh you know C sharp you can inherit from one base class and then you can Implement interfaces as a sort of um alternative to multiple inheritance so I'll definitely have to get my mind around that again being back in a c plus world that uobject says this is the base class of all UE objects but that derives from an object-based utility which drives from an object base and that is the all the way up the chain okay so back to the the new actor component this syntax is a Constructor in C plus and so um here it's setting some what values it here can ever tick set this component to be initialized when the game starts and to be ticked every frame you can turn these features off to improve performance if you don't need them okay so I'm reading that to mean that for this component I would like a callback um every frame presumably if false this tick function will never be registered and never ticked okay wait it says this tick function okay that I'm assuming this tick function um this looks like the uh the start method or awaken Unity um and then there's an equivalent in Godot as well called when the games when the game starts okay so that's slightly different I guess than Unity with the start that's called when um you know the component the object is instantiated in the game world and then it's calling the base class uh begin play which um you know does some stuff hopefully I won't need to dig back into that too much dot dot probably is where my code goes and then tick component ah with the float of Delta time so floats here and um was a double in uh Godot I believe please write a C plus plus method for Unreal Engine to modify the position of an actor okay to modify that um it assumes that this method assumes that you have access to the a actor pointer for the actor you want to modify you can call this method in your custom class by inheriting from a actor or wherever you have access to the actor let's see if I inherited from a actor so here's my component if I go to the H file it is an actor component which is a u object I don't think inherits from a actor so let me ask for some clarification here let's see will this work if my class inherits from will not be directly available because it's not an a actor right okay if you want to modify the position of an actor that owns the U actor component you typically do this by getting a reference to the owning actor and then modifying its location here's how you do that okay the owning actor I'm going to look into this type the F Vector here soon oops oh now I'm putting some of this code into the tick component method and um I have to reflect on how and when to do some of these calls so you know if you are you know in unity doing a get component call which is going to access some component on a game object and you're going to be using that really frequently you may not want to use that get component call in your update method you know the tick component type method because it's just going to run every frame so it's possible that what I wanted I would want to do something similar here so if I'm getting an owner actor uh you know I get it in a method like this and then maintain a reference to it so so let's start with that um actually let's start with this and then and then I'll optimize ensure that the owning actor exists and is valid and then I give it a new position which I have to Define this new pass equals F vector oh that's not going to work so yeah again that's C sharp uh syntax is going to creep in here so where that that implicit typing that exists in C sharp does not in C plus plus so if I'm declaring a variable then I have to explicitly Define its type f Vector but then in this case I'm creating a new one uh I probably don't need to do that so it would be a pointer to an to an F Vector okay so that makes that work uh the other thing the other thing I can do I believe is just this so um I didn't use the new operator for that now this is bringing back some memories from C plus plus I remember a few things from it I remember memory management uh idiosyncrasies a pointer arithmetic that got weird and caused bugs so yeah you know some scary stuff back there the other thing I remember is um is a lot of Frameworks a lot of libraries and a lot of different abstractions for very similar things so like I tried to count up the number of times um or the number of different types of abstractions of a string they had and you had like a C string um you know in MFC ATL all these libraries a w string oh boy it's just it's too much [Music] I want to update it based on the previous one and so rather than do that I will do a get actor location hold pass again I'm gonna do that a lot of times okay I'll pass new pass actually I don't need to do that at all just do that new pass DOT come on okay so I do have that X component of that vector and uh I'm going to take this opportunity to investigate the F Vector a little bit it is a template based on a double and just don't I wanted to double check the range of a double okay double is eight uh eight bytes range of the values okay so yeah so that's why you know those numbers were pretty big in um in the editor when I saw the position of that thing I'm assuming that's why they're so large um I'm sure people have used unreal for a while or um I know this is probably very remedial but uh yeah so let's see okay because the the vectors in unity are going to be four bytes and so wow yeah that is a significant um a significant difference and probably allows for I'm going to say some much bigger worlds levels I know it was definitely concerning Unity as you started to if you had really large levels even if they didn't have a lot of um objects in them uh you know that you weren't processing a lot even if you just got further and further away from the origin you were going to risk floating Point problems so if unreal gets around that with eight bytes in its vectors uh that's pretty cool so I want to add on the Delta time so you know I'm going to be moving this on the x-axis but based on the you know one you know one world unit per second assuming that the Delta time is in seconds something position the only actor and set the actor location and do that every frame let's run it and see what we get now is there a way for me I'm not gonna actually see that uh that actor because I didn't really like put anything on it I wonder if I can put a primitive on it to shapes there we go put a cube on it or oops put it in there cannot attach static actor Cube to Dynamic actor actor okay something that I found uh was to find something in the content browser which brings up this window um which I hadn't seen before in the default layout so this looks like I can browse through some of my C plus classes Etc so let me dock this [Music] um cool so okay so this actually gives me a visual indication of the classes I've created and now see where they go double clicking on it brings it up in Visual Studio but it does look like you can drag it um yeah so here if I drag it over here it looks like it will to my way of thinking attach it to this actor but then I'm not entirely sure where that's listed here the attached Scripts okay I think I see what I was doing incorrectly I tried to drag it onto oh maybe I did do it correctly drag it here and then it it is attached here that's interesting so when I do the add thing add that it didn't seem to attach it right away and then I I kind of pulled it in from here let's save that and then we'll give it a run and see if so it's attached to the cube and wait a minute I don't want to attach that one I want to attach this one which I think had the code just as new okay if I do it again new one all right double clicking on it and double clicking on it here brings it up there just to confirm that yes that was the one that had this code hit play and uh I wonder what that lighting is oh is it moving Maybe looks kind of like it is oh see now here's something I'm I'm gonna need to get used to when I uh hit Escape you know in unity I'll do that um and you know it will just allow me to have Mouse control in the editor so I can interrogate an object and see what it's doing while the game is running that seems to actually stop the execution of it so I'll have to get used to that also it appears as though I've got some warnings Mobility oh okay that's kind of helpful so that makes sense so this is a static mesh component and it has to be movable if you'd like to move if you'd like it to move if you'd like to move okay that's interesting so then I how let's see how I make it movable I'm gonna go into Mobility there it is movable movable objects can be moved and changed in game totally dynamic slowest rendering though all right let's try that then where'd it go okay yeah I believe it is moving are the clouds moving there's a Skybox with clouds moving okay all right that's volumetric Cloud okay it's like a default how would I break Mouse control if not Escape if I were ah yeah I tried back tick that seemed to work okay it's near Escape and uh yeah I'm pretty sure that's moving and let's just go look at the uh the cube yeah so it's moving at a rate of about one world unit per second which is what I intended okay well that's about as far as I got in the previous video and the time starting to run a little long so I'll stop the video here I realize I still need to build this as an exe so that's something I can try in the future but overall my impressions are good I will have to get used to C plus plus if I'm going to use this more but there's some intriguing things about this engine such as the 64-bit Precision in their coordinate system and I'm interested to try some of the other templates that may showcase some of the graphical capabilities of unreal and then finally I would like to see what their networking is like and compare that to Unity so yeah um if anyone has any suggestions about another engine for me to try I know some of you have already commented on that so I'm happy to take a look at some more engines in this uh same kind of format thanks for sticking with me till the end of the video and hope you have a great day
Info
Channel: Outside Realm
Views: 92,612
Rating: undefined out of 5
Keywords: unity, unreal
Id: CUkM0KwCXjA
Channel Id: undefined
Length: 41min 34sec (2494 seconds)
Published: Mon Sep 18 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.