I Made the SAME GAME in Unity and Unreal!!! THIS is What Happened

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
last year I made a video comparing my experience with unreal and unity at the time I was getting tired of working with blueprints having to right click find a node add it click and drag it into place hook up everything that you want to do with it and that for simple things like adding two numbers together it takes such a long time where if I move to more traditional coding it wouldn't even take more than a second saving me a huge amount of time in the long term at that time the choice was between C plus plus or C sharp and we all know what I ended up going with I think it was a good choice but still aside from it being a little bit more my jam to program with traditional code I like so many other things about unreal more the material editor the particle system and of course in more recent times things like nanite and Lumen Global illumination so I took the task upon myself of learning C plus plus and now that I have a decent grasp on C sharp it didn't seem nearly as intimidating so after about a month of learning C plus plus for a real in my spare time let's push myself to the test I'm going to make the same game in both engines and see which one I preferred working with in the end should I end up lurking on real more there is a non-zero chance that I will rebuild my whole current long-term project in unreal after a half a year of work inside Unity so what game will we be making well I've been falling back into a old habit of mine RuneScape this game is kind of like smoking you can say you have stopped but you've probably only started taking a break anyway one of my favorite things to do in RuneScape is mining because it's as close as an idle game as you're gonna get him and I can have it open on my second monitor while I do some work so let's try to create a small game that mimics the mining system from RuneScape simple easy but hopefully fun for this project I will use any assets I own in either Assad store or any asset that I can use for free I don't intend on spending a whole lot of time modeling and making animations because that's not going to change in my workflow no no matter which engine I use anyway enough talk let's get started I know Unity a little bit better so I wanted to start with that I used miximo to get a decent looking character and animations to use that way I can use the same character for both engines using the terrain feature I made a quick terrain to test and walk around it and I wrote a couple of lines of code that would make the camera follow around the player and let me walk around by clicking on the screen for now that's all there is to it eventually I'll probably have to check what objects I'm clicking on to know whether or not I should be walking over to it or walking over a mine or if I'm close enough already just do the mining but for now this works well enough and it only took me about 40 minutes or so which included a long time searching for the animations and characters so it's probably closer to 20 to 25 minutes of actual work in unity now let's see how implementing movement worked in unreal and that's not really a 100 fair comparison because unreal has a top down game templates pre-made so the moment I loaded up the project I could move around no problem setting up the animations also was similarly easy although I did have to remove the X from the character which was a bit of a bother unlocking Unity where I could just disable that specific object under that specific bone unreal didn't really let me do that directly but to be fair to Unreal that was a likely an issue with the model itself and not with the engine next up we'll have to make the actual or objects to place in the world I'm thinking that should all be one prefab or blueprint that I can change its looks and yielding item from depending on a simple enum that way it's design friendly and hopefully also easy to scale up if I were to want to create a full game out of this not that I will but if you're going to test the engines we should at least test them in a somewhat realistic workflow so once again let's start with the unity here we get into the asset store differences I'm using models I downloaded of the unity asset store for free and what I want is a rock that I can enable and disable some gemstones on while this pack has a rock that looks great for that it's a one-hole mesh so I'll have to slap together some combination of my own instead altogether making the Rocks wasn't too big a deal they have the gems on them you can mine them they disappear after a few seconds and then they reappear after a few more seconds now these rocks need to give actual items meaning we need some sort of inventory system so because I don't feel like getting into that right away let's add up the Rooks in unreal now the biggest upside to doing this first in unity is that any bugs almost specifically flaws and logic presented themselves there where I'm a little bit more confident in my ability to bug test so when I got to unreal I just had to recreate it which still took longer than I would have expected it's mostly tinkering around with the way I had to call functions on a timer when the mining starts I have to call a function after X amount of seconds to hide the rocks and eventually add items into the inventory and such and then that function calls another function on a timer which has to put the Rocks back so the player can mine them again there's been an issue we're not for the fact that the Rocks function also needs to tell the player to stop mining which means it needs a reference to the player which means I need to be able to call a function with parameters on a timer long story short that threw me for a bit of a loop now could I have just called get player controller to get a pointer reference or added a variable to every rock that always has a pointer to the player controller yes of course I could have done that but there's no need for every single Rock in the level to always have a connection to the player only for it to be used one time in a single action besides I wanted to learn how to do this so yeah that did take me much longer than I did in unity but in the end both systems work more or less the same way and are now functioning which brings me to making an inventory I'll be honest I could put a lot of effort into encoding a hole as inventory system and if I were to make this a broader game I would as being able to add extra items to scale up the game would be a requirement but for this tiny project I only have to keep track of three items that I can hold on any given time those being the three different types of ores so instead I'm just going to keep track of those with three simple integers as well as a total integer that checks if the three different ores added together don't exceed a inventory limit it's a horribly hard-coded system but also something that took me literally only five minutes to add in both engines so we'll make do with it for now there's no real UI for the inventory either just some numbers on a progress board I chose how full your inventory is in total although I have to admit it did take me a fair bit longer and unreal but that was mostly due to me having to figure out how to fix the bill issues I was having because I didn't include a umg module and getting the enums to work properly was also a bit of a banknot first now we get to the final bits of actual coding we need to do and before I even start working on this I realized that much like many things in this video the way I'm going to do this is super non-scalable because as it stands in both engines the character checks what object it clicks on if it's a rock it'll start mining when it's near it but now I have to add a second clickable objects I should have made a parent class that the character can just look out for and then have children of that parent class all have different functionality that way the player doesn't need to know every single possible option for a clickable object we only have two objects right now but we could add a third something like a door that would require money which I probably won't do since that doesn't really add any insight to this experiment anyway for comparing both engines and I already kind of shot myself in the foot with the way I coded things so it's not that big a deal for now but for a full game this would seriously suck this is a mistake I made in both engines and the solution would work the same as well but with unreal having both actor classes and component classes it feels more intuitive to use that kind of inheritance I want to be clear there's no rational reason that makes it make more sense in unreal compared to Unity I could very well derive all irrelevant components from a parent class and that would work great but the fact that unreal's way of doing things allows for both actor classes to have inherent functionality as well as separate components that just clicks a little bit better in my mind now we're going to make things look pretty both asset stores have a good number of assets but unreal has the massive advantage of quixel Mega scans although with how things seem to be going it looks like epic's new upcoming Marketplace will also work with other engines in the pretty near future or maybe even already by the time this video goes up on top of that I actually had trouble finding a forge on the unreal Marketplace one that I could use for free anyway so I might have just copied over the fbx file I found in the unity store which that didn't work well it could have worked but it would have been very bothersome so you know what here a cylinder that'll do nicely so there we have it in the end the same game in both engines of course it lacks a lot of bullish but you can also see that the unreal version out of the box just looks better I might have spent a good amount more time making this with unreal but that's because I spend a lot of time troubleshooting programming things but beyond that unreal just makes it so easy to make something that just works and looks good at the same time now I'm sure that in unity given some time we could end up with things that are pretty damn close as a result but that's not a point because if I'm going to spend time polishing things up I could also spend more time in unreal to widen that Gap again I'm sure on a huge scale those differences become smaller and smaller but as a solo Indie DAV having all the tools and the developing technologies that unreal offers now that I don't have nightmares about C plus plus anymore it's just very interesting so before I move on development on my own game I'm going to remake The Bare Bones basics of that in unreal too and see if that makes me feel better about the game itself if I run into any issues when scaling up into a real game like that I can always go back to working on this in unity where I already have a lot of work and goat but it wouldn't be honest to myself if I didn't give it a try to see whether or not my game would be improved by running on unreal instead of unity and in the end that's what we want isn't it a game that's as good as possible so next time it's time to Port over my game Into unreal and see how I feel about it and a very big thank you to all of my patrons you can see them on screen right now if you want to help out supporting the channel there's a link Down Below in the description to the patreon page
Info
Channel: The Game Dev Cave
Views: 147,102
Rating: undefined out of 5
Keywords: game dev, devlog, unity, unreal, unity engine, unreal engine, unity vs unreal, c#, c++, the gamedev cave, game engine, game engines, unity or unreal engine, unity vs unreal engine graphics
Id: sPYKLelPdIg
Channel Id: undefined
Length: 12min 26sec (746 seconds)
Published: Mon Jun 05 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.