Why I don't use Unity, Godot or Unreal Engine - Which Game Engine I use?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
why I don't use Godot, Unity, Unreal or Game Maker? I've been using a different game engine lately   and guess what? I just won a GameJam against games  made with Unity, Unreal, GDevelop and a few others. I even walked away with a cash prize. Now with  all the ongoing debate about game engines lately   I decided to make a video to talk about my engine  of choice and the whole reasoning behind it. I mean   I want to make this useful if you are thinking  about picking a game engine for your next game   especially if you want to boost your productivity  without sacrificing the ability to make the kind   of game you want and have it run on multiple  platforms and yes even consoles but before diving   in all that let me give you a bit of background  from where I'm coming from. I've been working   with programming for quite a while now I dabbed  into all sorts of language from C plus plus, Go,   Rust, Ruby, Python, C-sharp, PHP, JavaScript and even  some obscure languages like Dark Basic and Blitz3d   back in the day I had this whole other life where  I worked in game development using good old C   plus and let me tell you at the time game engines  were really rough and clunky nothing compared to   what we have now. They were not user friendly  at all and for example Unity didn't even had   a Windows version. It was just for Mac. A lot has  changed since but one thing that hasn't changed   is that to this day I still like diving into the  nitty-gritty low level stuff like writing coding   C and Rust and just for fun. I guess some people  may find this a bit masochistic but it's something   that they really like and there's something  oddly satisfying about working at this low level . oh and speaking of programming adventures,  I have had my fair share of web front-end   development too. The web fontend world can  be a bit crazy with a new framework popping   up practically every week but you know it's pretty  impressive what you can do with good old HTML5 and   JavaScript and I generally believe that the web  browser is a powerhouse for running applications   so when I got back to game development I decided  to take a different route: Instead of jumping   straight to a game engine I decided to work with  a Game Developement Framework. And Game Developement   Frameworks are things like libGDX with Java,  Monogame using c-sharp, PyGame using Python,   SDLand raylib using C plus plus and Phaser with JavaScript. The thing about this Frameworks   is that they don't come with fancy editors and  it's all about dealing with pure code. You might   even find yourself building your own editor and  ways to inspect and debug what is going on in   your game. These Frameworks are ideal for games  that are system heavy, super optimized and that   just don't rely on most of the standard features  of game engines. Think about games like: Stardew   Valley, Slay the Spire, They are billions,  Tooth and tail and FTL they all got something in   common: Top-notch optimization in heavy reliance  on their own systems. But don't get me wrong here   it's not that you couldn't build these games  in something like Unity or unreal it's just   that this game engines might not bring that much to  the table for this sort of games since they march   on their own way when it comes to systems plus  using one of those engines might lead to worse   performance since they come with many abstractions  and features that these games simply don't need. So when I got back into game development I was  really drawn to the flexibility that these   Frameworks offered. Considering that it was knee-deep in TypeScript for my daily job I decided to   roll with Phaser. Phaser is a game framework  tailor made for creating HTML5 based games   and Phaser is awesome it's fine tuned to  make things run like a charm on the web and   on pretty much any platform you can think of  take this example for instance you can throw   hundreds of thousands of Sprites bouncing around  the screen with physics and it runs super smooth   but there's more to it with Phaser you get a fair  amount of low level control over the graphics and   they've got a ton of helpful examples to boot  to play with and to see what you can do with it.  I use phaser to create a game called Solus Sector Tactics, it's the turn-based strategy game and for this   one I had to build my own level editor. It was a  ton of work but I also had to dig deep into the   nuts and bolts of the hex grid, pathfinding, and all  the details. The end result is quite decent I think   and things are proved to be a really solid choice.  Especially for the performance side of things and   for the since this was a very system heavy game  and it was a wonderful experience to work with it   however here's the twist: I've come to realize that  not every project should go the game framework   route in fact I'd go as far as to say that it's  an overkill for most projects. Because if your   game systems aren't particularly unique and if  you're not chasing that level of optimization that   games like They Are Billions requires then you'd  essentially be reventing the wheel and I mean; Why   reinvent all this stuff that the game engines  already have neatly packaged and ready to go?  So that's when I thought maybe I should  go with a game engine for my next project. you know I'm a firmly believer that the web is  an incredible platform it is probably the closest   thing that we got to write ones Run Anywhere.  HTML5 is great when it comes to portability   you can effortlessly create games for desktop  mobile and the web. CrossCode and Mighty Goose are   some examples of HTML5 games that were brought  to consoles. [Let's let's me tell you something! Let me   tell you something!] I know what you're  thinking browser games they are always crappy   simple but in this case I invite you to take a  look at what PlayCanvas and Babylon.js can do   Babylon.js is a framework to make 3D games while  playing canvas is a fully fledged game engine for   3D games on the browser. These examples kind  of prove that the web is a playground where   you can do a lot of stuff. The graphics that you  can achieve with this engine and framework   in the case of Babylon.js are really impressive/  and Babylon.js even allow you to do VR stuff.  but frankly speaking from the perspective  of an indie game developer like myself   not exactly what I'm aiming to create: games  with High Fidelity Graphics. I mean, sure on   Unreal and Unity offers some of the best  lightning for ultra-realistic Graphics   especially unreal but that's not the kind  of game that I'm going to build anyway   my focus is on creating games that triple A  Studios probably wouldn't besides if you look at   the best Indie titles, you're gonna find out that  they don't rely on High-Fidelity Graphics either:   DeadCells, Stardew Valley, Cult of the Lamb, Celeste , Vampire Survivors, Spelunky, Loop Hero, Undertale,   Hyper Light Drifter, Hollow Knight, Will You Snail, Pizza Tower, Terraria, Coffee Talk, Hades, Eastward, Little Miss Fortune, Baba is You, Binding  of Isaac. And this is where Indie developers shine:   games with non-realistic Graphics that can have  a well-designed, systems, hooks, stories, art styles,   that are unique, stylized, artsy or retro. But one  thing that we don't necessarily need is to chase   High-Fidelity graphics. I genuinely believe  that Indies, the best thing we can do is to   let the Triple A handle the High-Fidelity stuff  while we focus on building experiences that are   unique. My experience with phaser was great but  it wasn't always smooth sailing. When it comes   to prototyping and iterating on the game, things  weren't exactly ideal. I couldn't just toss ideas   around and quickly see if they were fun and  if they serve their purpose. Instead I had to   write a ton of code even for the tiniest features.  The editor I built was far from great. In fact it   sucked and I had to split my time between making  the actual game and working on the editor and plus   I was involved in my debugging process because I  had to build all the tools myself and it was a lot   of work and demanded too much time for every  small thing that I wanted to add to the game.   So for my next game I decided to see if there  was a game engine out there that could help me   be more productive while not causing me too much  headache. By headache I mean things like: inability   to make decent web HTML5 builds, having to deal  with long loading times, sluggish game performance,   and slow build times, bloat with no benefits,  bad performance and the biggest headache for   me is being forced to use a programming language  that I don't enjoy. So the engine I set on was: Construct 3 and here is why: First off it should  be obvious by now that I don't plan on creating   High-Fidelity graphics and Construct 3 offers  more than enough for 2D. Construct also   have basic 3D capabilities that suit  the kind of games that I have in mind.   What is even cooler is that I can code with  TypeScript, so I can tap into the vast collection   of JavaScript libraries and third part code that  exists in NPM. if you don't know what NPM is: it's   basically a registry of Open Source packages in  libraries for JavaScript and TypeScript there are   plenty of useful packages there that can seriously  speed up development. You can use the package there,   you can study the package there, so that you can  write your own code. For example you can find   stuff like voronoi, pathfinding, multiplayer,  procedural generation, and much much more   now TypeScript is a language that I genuinely  enjoy. And it's also something that I use in my   daily work. So there is less of context switching  when I'm coding my game versus when I'm writing   applications in my daily job. If I were using  Game maker or Godot, for example, that wouldn't be   the case as they use their own limited programming  languages. That's even the case with Unreal, because   to be honest, I've done my fair share of C plus  plus, and I can tell you that the code you write in   something like Unreal is very different from what  you would write for a non-gaming C plus plus project.  Construct comes loaded with a bunch of ready  to use behaviors and features and it lets you   take the no code approach if that's your thing. It  doesn't force you to write code but you can choose   to write code whenever you want. It is great how  you can mix the two by simply inserting a chunk   of code within the visual programming events but  you can also have your code outside the visual   programming and open it in an external editor  like VSCode and do all your game logic there.   Also, with construct my exports aren't necessarily  heavier than when I was coding with Phaser directly, so it's a lightweight engine in that  sense as well, Plus it's got some really nice   features like the ability to preview your games  on any device right from the editor. it's a game   changer for wrapped iteration for my last game I  could test the GamePad support on my Windows PC in   the living room and test the touchpad controls on  my phone all with just click in the remote preview   button and scanning the QR code or getting  the URL from that how cool is that. Unity and   Unreal have their Asset Store and Marketplace  and yeah these are great. Construct doesn't have the   same level of assets store. It does exist but it's  quite not as rich and there's not so much stuff   you can find in there. However Construct really  shines in another area: it's library of examples   really uh comprehensive you find lots of examples  that almost feels like complete games; And these   examples are great research to study, reuse,  mix and match with the game you are building. Since it runs on the web, you play with tje examples  right now. I promise you you're gonna be   impressed with a few of then and on  how simple they are to put together   if you look on the source code; And  you have access to the search code. What I find interesting about the examples  from construct is that they're all low-Fidelity   Graphics which, once again, align perfectly  with the kind of games that I want to create. Now what I appreciate the idea of Godot and Game  Maker for 2D games, I still seriously doubt these   engines would make me more productive than I am  right now with Construct. Plus I'm not a fan of   having to code in GDscript or GML and proprietary  languages you know. GDscripts might resemble   Python but it's not quite Python and Game Maker's  GML is like C, but it's not C. these are domain   specific languages designed specifically for the  game engine; Meaning they are useless outside of   the engine. This means that with GDscript you  don't get access to the vast collection of   libraries and third-party code that python has. While in construct I do have access to NPM, in   fact I used NPM to build my gaming Phaser, and I can  still use it for the games I make with Construct. With unity there's c-sharp, which is a fantastic  language and I agree with you all on this point.   I don't use c-sharp in my professional work  nor do I have any plans to do so anytime soon.   So switching to c-sharp would just add an extra  layer of complexity complex switching without   many benefits. In my case being a web developer  already familiar with JavaScript and TypeScript   Construct is a fantastic choice. I can hit the ground  running with it with everything that I already   know which is great for maximizing the speed of  development. Of course speed of development is   subjective it is hard to measure. We can't be  objective about it, but winning the Game Wisdom Game Jam gave me the confidence that I'm on right  track. Other games were made using Unity, Unreal and   Phaser; And I was able to ship a quite polished  game with a very limited time frame. And if you   want to see how the Game Jam went and what the  judges had to say about my game you can check   out my other videos. One of the judges who uses  Unreal was particularly interested in knowing   if I had used Unity or what and this is a strong  sign that you can't tell if a game was made with   Construct necessarily. If I'm not mistaken  his first guess was that it was made with Unity Conclusion: I think construct 3 is an amazing  choice for Indie Games. In my experience it boosts   my productivity without making me give up on the  flexibility. I find it great that I can code using   TypeScript and JavaScript. If you're a web developer  who wants to dive into game development, and you   don't plan on making realistic Graphics, I highly  recommend you check Construct. You will be able   to leverage any Library you can find in NPM and  ship it to many platforms; And if you want to see   what else is possible to build with Construct, stay tuned for my next video. See you next time!
Info
Channel: Zizaco
Views: 128,491
Rating: undefined out of 5
Keywords: game developement, defold, construct 3, unity, UE4, UE5, Unreal Engine, Godot 4, Game Maker, GameMaker, game dev, gamedev, indie game
Id: Hbft5AtgkOs
Channel Id: undefined
Length: 14min 5sec (845 seconds)
Published: Sun Oct 01 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.