 Come with me on a journey to the Godot engine I'm going to show you how to install Godot Let's check it out. So hopefully you know how to install software on your system But just in case you don't I thought I'd go over it real quick We do have a few options first of all you can get the Godot game engine at Godot engine org That's Godot with a T good dot good dots But spelt was pronounced Godot as far as I know Anyway, we go here and we can go to download and it should jump to your operating system But you can download for Linux Mac OS Windows Linux server And they'll have options here on your Linux for 64 bit and 32 bit if you're on a modern system You probably want a 64 bit unless you're running a very old distro on a very old machine In case you want to go with 32 don't worry that you're downloading it for a 64 bit or 32 You'll be able to export to both those there's also a mono version which we're not going to worry about That's if you want to be able to write code in C sharp because they do support that We're just going to be using Godot Scripting language in the tutorials I do so all you need is the standard so you can choose 64 bit there Of course you can download it for Mac Windows and a link server We'll talk about the difference in the Linux and a link server options in in just a few minutes But go ahead and download that it's around a 40 or 50 megabyte file. That's it. It's it's one execute It's so nice. There's nothing to really install. It's just one executable You download it and unzip it and run it That being said that's downloading it from the site another place if you're a links user, you know, you have your repositories So I'm running a Debian Unstable here Debbie and Sid so I'm not sure What version is in other distros? But right now Godot 3 is what's in my repositories. You can see here now these ones that say I 386 because I have repositories for 32 bit stuff as well, but we have the Godot 3 Godot 3 runner and Godot 3 server. So what are these three different things? Well, I'll explain as best to Ken Godot 3 will be the game engine with the editor and everything in it So you're going to design your game in it. It's going to run the games And allow you to modify and export all that stuff. So that's that's the main game engine. That's all you really need Godot 3 server what that does is so it's a headless version. So come over here to serve I'm not really sure what the difference between headless and server Here is But the server one here is the headless one. So what does that mean? So let's say I have a game I designed a game. I put it up on github. You want automate the packaging of it and we'll go over this in future videos so basically You pull down the code instead of opening up the editor and then saying package for Linux package for Windows You can do it from the shell if you use the regular Godot 3 Engine you can do it, but it will pop up the GUI interface while it's packaging it and then it will close The server one is great So it doesn't open up the GUI and also if you're running out of servers So if you're producing a piece of software and you want to do builds of that software it can build it on a headless server So that's what the server version is for it's for not designing the game But once the game is created just packaging it without the GUI interface So you can saw as well, but again, you can do the same thing here. It's just gonna pop up the GUI wall It's running. So what is the Godot runner? I'm gonna explain this as best I can it's it's the engine runtime So it's against not the whole editor So when you compile or I shouldn't say compile really when you package your game for distribution You have a few options. We'll talk about all them in a moment, but let's say I'm packaging it for Linux and Windows and Mac OS, okay You have an option to package it as a single binary Which will have the game engine built-in basically this runtime file as Well as all your assets and code all in one executable. You also have an option to Compile and executable with a separate pack file think of this if you're familiar at all with a lot of games But thinking back to Doom or Quake are good examples Doom had wad files. So you had the game executable But then all your assets your art your music and all that were inside a wad file Similar to that except for your dough scripts in is in the pack file Why would you do this separately? I'm gonna try to display this as best I can In fact, I'm gonna talk to you here rather than have you guys just stare at a screen. So what I was saying was It's really nice to have a single binary with everything So I can say here's one file click on it and it runs and you can do that for Windows and Linux I haven't really looked at what for Mac. I've packaged it. It gives a zip file. I didn't look it was in the zip box I don't have an Apple machine to test on So why wouldn't you want to just have it packaged in one? executable binary there are a few reasons one If you want people to be able to make modifications to the game or if you want to have mod packs It's better to have your pack files separate. That's one reason a second reason is just for Size and distribution so one pack file is not platform dependent So I can make an executable for Windows and execute for Linux and I can make an executable for Linux 32 bit and 64 bit And I'll have those executables, but they all can share the same pack file so I'm not making multiple pack files embedded in five into one binary file and so that's another example, but What really came to light for me because I was originally was making a full binary for this because I was like, okay, it's it's The the executable I think is like 20 megabytes And then my pack file was another 30 so we're looking at 50 megabytes So I'll just make make a few binaries for 32 bit Linux 30 64 bit Linux and Windows Then I was looking at making a dead file. So a pack a dead file for Debbie and or Debbie and base distributions I might begin a little technical here, but that's what this video is for and it was recommended to me Not to do it that way and here's why so you have Linux and Linux runs on program pretty much anything It runs, you know, most modern desktop systems are gonna be 64 bit So but some people might have a little 32 bits Debian still supports 32 bit operating systems. So and then there's also Arm based Linux systems and at least by default the dough doesn't export to Standard Linux arm distribution, but if you get a raspberry pi running Debbie in I'm pretty sure there's an arm version of the engine on in their repositories so It makes more sense for me to just create a pack file and then have a the Debian file the deb file Pull down the executable from the repositories. So that's what this is. So we have the game engine We have the server for compiling headless packaging headless But then you have the Godot 3 runner the runner is basically the same as the executable program You generate when you export except for it just isn't named like your package So what you would do if you were to create a dead package You would put your pack file in there, but then create a Dependency on this Godot 3 runner Okay, you're with me this might get a little this I'm worrying that I'm being a little confusing And then you have a script that says use a Godot 3 runner with my pack file Then you don't have to worry about different architectures because if Debbie and supports it they're going to have that Godot 3 runner in the repositories and now you just have one pack file and a dead file saying use that and It's good with all architectures that are supported on Debian with Godot So that is a reason why you might separate. So there's a few reasons why you might separate Yeah, having one single binary with everything in it is convenient for distribution In some aspects but not in others and that's pretty much it You have one pack file and then the operating systems can share it regardless of their architecture and operating system So that being said again This Godot 3 can do what these other ones do it's just it's going to be bigger than the runner and It's going to have require a GUI when the server one won't and again We'll look at that more in the future So whether you install it from the website or you install it from your package manager the package manager is not Going to have the mono version in it. So you're going to be looking at writing stuff with Godot script Well next you want to open it so once you open it the first time you open it It's going to ask if you want to download some templates So if you want to look at some other people's projects and see how they do things you can click on that these are projects I've been working on I'm going to create a new one. So I'm just going to click new project I'm just going to call this tester. I'm going to create that folder in my project path creating edit Okay, now we're not going to get into creating an app so much in this one or a program in this one But I'm going to say user interface just to have something in there. I'm going to add a child label and I'll type in this is a test Now I can hit f5. Oh got to save that for save it Run it and choose that one. So there's my app great background white text. This is a test and And now let's talk about a little more about packaging and exporting So I'm going to go up to project and export right now. I have no presets for this project. I Have not set up any templates So we're going to go go add and I can choose one of these so I'll choose Linux and it's going to tell me here that I have problem blah blah blah you're gonna want to click this manage export templates and just click download Now the Godot game engine. Oh And then click official and we'll start downloading it and it will install it for you The good old game engine is great because it's Like I said 40 or 50 megabytes, which isn't much at all for the whole interface for designing games and running them But if you want to package them like I said for APK for Android, you want to generate binaries for Windows for other architectures for iOS Package it for use in a web page. It's you're going to need these templates and it's a little large Not too bad to today's standards. I think it's kind of large But again, this is making it so you can export to basically all major platforms out there It's about 441 megabytes right now once it's done downloading that it will quickly Extract that and you'll be good to go That's it. We're gonna go close and now when I go back up to projects and export you can see Linux runnable there. I'm going to just choose and you have options here again So we have binary. I'm going to do 64 bit. We can choose to embed the pack file or not Which I've talked about I'm gonna go create here. I'm just gonna make a folder I'm gonna call it been for my binary stuff and I'm gonna call it my app and I say export It's gonna confirm. That's what I want to call it. Yes It's gonna give it an extension here of x86 64x we're doing 64 bit which You don't need that extension on a Linux machine, but if I was to now Go to my file browser. You can see here that I have a binary Which is actually the origin I thought was going to be 40 megabytes Which is basically the game engine and my pack file which in this case is only eight kilobytes because there's no code or Or would that there's basically it's just something to display this text But that's what all your art and music and your scripts go So That's exporting like that Now let's look at this Let's say we want to export To another one we can go HTML and I'm going to go here. I'm gonna go to that same bin folder, but I'm gonna call this HTML and We're going to call this my app And we will export it's gonna confirm That's what I want to call it and where I want to put it and now if I go back over here you can see that I have this I can put this up on a web server and People can access the game and you can see it has that same pack file So again, I've just doubled up my pack file, which again, this is a teeny tiny file But once I add a lot of music and graphics that can get large So it's good if you can have your different applications your different packages of this share that same pack file So if I wanted to instead of putting it in this HTML folder I Can come back here and just say to put it in my bin folder Tester bin Save and now I can say export Yes, there and it recreated that stuff But you can see I now have my Linux executable here and my HTML as well as the other files the HTML needs But they're both going to share that same pack file So I'm not doubling up and of course I can do the same thing I can say add, you know Mac OS windows I guess I don't know what UWP is. It's a window symbol. Maybe portable windows. Is that still a thing? And then Android we'll go over Android a little bit more There are a few things you need to create a key a debugging key for testing and then key for distribution And then you also want to make sure you change this name to your unique identifier Otherwise, it's going to say Godot engine in there I will go over Android packaging a little bit more But just basically it's just a few options in here, but you got to generate a key But once you have that set up Those how you like them I can delete that one once you have them set up I can say export all and I can say whether debugging or release. I'll say debugging and It will create all those packages so I can have a configuration for Linux If I want I can do a 64 bit or 32 bit or both. I can do HTML I can do iOS which you probably need a key for as well. That's one thing I have a package for Mac OS and then once you have most of you like you just click export all and you've generated packages mall And of course you can do that from the shell so you can do automatic builds clears mud Okay, I think I made it sound a little more complicated Then I need to just because I'm giving you different options But really all you have to do is once you download Godot and install it Go to export install the templates and then export stuff again. We're going to get into the APKs for Android because you just got to generate a key and change some options, but once you do that It's super simple as well Don't worry too much if you don't understand the difference between packaging your pack file into your binary and separate I recommend doing it. Well, whatever you think is best. It really isn't that big of a difference If it becomes once you start doing it, you'll decide which way is best for you So thanks for watching. Please visit films by Chris calm. That's Chris the K There's a link in the description and as always I hope that you have a great day