What if I told you anyone can make a video game with Godot?
While it may seem like a lofty statement – especially if you’ve tried game development before and failed – it’s definitely true. With the right tools and education, you can be on the fast track to making that game idea that’s been stuck in your head. Even for those a bit more career-oriented, keep in mind that video games are a multi-billion-dollar industry. And, despite many negative world events, video games continue to see increases in revenue every year.
But why is Godot so great? In this article, we’re going to help get you familiar with Godot 4 and help you find fantastic resources that will jump-start your game development journey.
Let’s start our game development journey!
What is Godot?
Put simply, Godot is a game engine for creating games. Or, for those super new to the game development space, a piece of software with tools and structures specifically designed to aid in the creation of games.
While there are plenty of engines out there – such as Unity and Unreal Engine – Godot has been a rising star, especially for indie developers. There are a few distinct advantages that have made Godot stand out. We’ll discuss these below, but we also encourage you to check out our full article on what Godot is.
It’s open source.
For those experienced with the term, this may cause a sigh of relief and make the engine automatically more appealing. For those not familiar, let us explain.
Think of most software you use every day. In general, we’ll never know the exact coding behind the software. We may be able to guess bits and pieces, but we’ll never have access to what’s referred to as the source code. This means that the functionality of the software is locked to us – and what we see is what we get with that software for the most part.
When a program is declared as open source, this means that the source code for that software is available. This generally means a few things:
- If you don’t like something about the software, you can freely alter it to suit your needs.
- Open source projects are often more community-driven in development, which means you get a lot of experienced developers working together to make the program better.
- Since one can see the source code, it’s easier to develop complementary tools for the program.
- The software’s existence is no longer reliant on a few developers and the community can keep it alive as long as there is interest.
Open source is a highly coveted aspect for many developers when looking for software, so we hope you can see the benefits here to that!
When we say free, we mean free. You don’t pay anything to download the engine. There’s no secret free trial. There’s no freemium model. There’s no royalty fees if you make a game and decide to sell it. The engine is free in every aspect of the word with no road bumps or surprise costs.
It does 2D & 3D.
Godot is capable of both 2D and 3D games. As such, you’re not limited to one specific art style. One day you can build your 2D platformer and then the next start making a 3D FPS game. No need to learn multiple engines just to create the game you want!
We also want to mention that, unlike other engines, Godot also has a dedicated 2D engine. What does this mean, though?
Well, let’s look to Unity. Unity still technically uses its 3D engine for 2D games. In general, the 2D aspects are simply mimicked by pseudo-ignoring one of the three axes available. Godot, on the other hand, does not. When it says there are two axes, there are two axes. Without getting too technical, the thing to understand here is that Godot’s 2D games are often more efficient and more pixel-perfect in their calculations. Thus, having a dedicated 2D engine comes with some distinct advantages in terms of efficiency.
Godot games can be exported for desktops, mobile, and even the web. As such, you get a ton of options on where you can send your game. You also don’t have to make separate projects and can use the same project if you want to go for all three.
While not officially part of the engine, there are also a variety of well-made, third-party tools for exporting the games for consoles!
Last but not least, despite all the features mentioned above, Godot was made to be simple. Thus, it is a very lightweight engine – especially when you compare it to powerhouses like Unity and Unreal Engine. This is perfect for developers who don’t necessarily have beefy computers, or whose only computer might just be a laptop.
Godot Engine Game Structure
The next topic we want to explore with Godot is how everything is structured within the engine. We’ll be covering a few different topics here that will prepare you to interact with the engine while also hinting at what makes Godot so different from other engines. We feel these are important concepts to get started familiarizing yourself with, though, as they ultimately dictate the “how” of how you make your game.
While common across most engines, Godot games start with the viewport. This is a visual editing space, akin to what one would see with an art program, that shows everything you have available in a scene (which we’ll cover in a moment). This viewport allows you to do everything from moving your players around to resizing specific elements. You’ll work a lot specifically in this space in terms of making your game, as this is where you’ll basically dictate where all the aspects of your game are visually.
The FileSystem is where you’ll store basically everything for your game. This includes sprites, scenes you happen to make, scripts, and so on. While fairly self-explanatory, the FileSystem is designed to make it easy for your to import your assets and keep track of everything in a structure reminiscent of regular file systems.
Now we come to a unique aspect of Godot – nodes. Nodes are more or less the fundamental building blocks of any Godot project. Nodes are what dictate and add specific functionality. This can be as large as dictating the existence of a 2D or 3D element, or as small as adding the ability to display a sprite. Other things nodes can do are:
- Add physics
- Create lights
- Create raycasts
- Add tilemaps
- Show animations
- Add navigation mesh abilities
- Add scripting logic
- … and more!
Everything in Godot starts with nodes, as they are basically what add the principle abilities for what you want elements in your game to be able to do. As you develop in Godot, you’ll be adding lots and lots of nodes as they are basically the primary construction tool. Nodes can also be parented to each other – allowing you to create complex logic for things like players and so forth.
Related to nodes is another fundamental concept: scenes. While you may be familiar with the term from other engines, “scenes” in Godot are a bit different.
To put it plainly, scenes are just a collection of nodes. For example, for a player scene, you might have a Node2D with children for a sprite and a script for movement. Or, for a level scene, you might have a Node3D and some various child 3D nodes for displaying various 3D models.
The brilliant part of scenes is that they can also be parented and reused. So to make a full game, you’d have your level scene which contains scenes for your player, enemies, and whatever else is needed. Since they can be reused, you only need one scene for duplicated content. For example, if you need multiples of the same enemy, you only need to make one scene and just add that scene multiple times to the level scene!
Overall, scenes are an easy and fundamental way to group your node functionality and add everything to the game without making a huge mess.
The Inspector & Properties
The last concept we want to discuss is the inspector and properties. When you click on any node, the Godot Inspector will display the node’s properties. These properties allow you to adjust certain functionality settings for that node. For example, a Node2D will have properties related to its transform – i.e. its position, location, and rotation. On the other hand, a node for the sprite will have fields for what sprite you want to display and how.
Properties are a very powerful tool in Godot as they help you customize your nodes to be what you need for your game.
Languages for Godot
In order to make a Godot game, you might have guessed you’re going to have to learn a programming language. While nodes add a lot of built-in functionality, there is a ton of game logic that will need to be dictated by hand. After all, the functionality nodes provide is very basic – and it’s the logic behind how they work together that dictates how your game works.
There are three main languages that Godot supports:
Each language has its pros and cons, so which language is right for you depends on a few factors. We’ve outlined the basics below. However, do be aware you can use other languages with Godot if you can find the right extension – which many community developers have already created. Nevertheless, we’ll focus on the three big ones here.
GDScript is a language made specifically for Godot. It’s designed to make developing with Godot easier and to also emphasize some of the best aspects of another popular language – Python.
- Extremely readable compared to others
- Arguably works the best of the three with Godot itself
- Much more beginner-friendly for users who have never coded before
- Easier to work with the syntax with fewer lines of code
- It was made for Godot, so you can’t exactly use it for anything else
- Not as powerful in general as the other two languages
C# is a language developed by Microsoft for its .NET framework. Based on the C family of languages, C# is used for a variety of software applications. However, it is also notable for being the main language of Unity – so users coming from Unity have a distinct advantage.
- It offers a good balance between readability, functionality, and performance compared to other high-level languages
- Has many convenient features like automatic garbage collection compared to C++
- It’s general-purpose, so learning it means you can use it outside Godot
- As GDScript tends to dominate, there are fewer tutorials for using C# with Godot
- It’s simply not as powerful as C++
Here we are – the granddaddy of languages. C++ is a widely used, general-purpose language. Considered to be one of the most powerful language options, it is a true powerhouse that is often even behind things like operating systems! However, we’re here to talk about Godot, so let’s check out the pros and cons.
- As mentioned, it is powerful and the performance you can get out of C++ is amazing – which is very desirable for complex games.
- As Godot the engine itself was built on C++, if you intend to make extensions, this is the language to go with.
- It is a super difficult language to learn with tricky syntax.
- It isn’t feature-rich like C# is, so there are a lot of more advanced things you’re going to have to do by yourself within the program’s code.
- The fact it’s mostly used for extensions is obvious as there aren’t a lot of tutorials on using it for Godot otherwise.
How to Distribute a Godot Game
You may have not made your game yet (or so we assume). But, part of the point of making a game is to share it. So, how does one distribute a Godot-made game? This is something you’ll probably want to know upfront.
Fortunately, much like other big-name engines, Godot’s cross-platform friendliness gives you fairly endless options. Here are just some of the few you can use:
- itchi.io – A popular site for sharing free and paid games, focused specifically on indie creators. Once you export your Godot game, you simply need to upload a zip of them to the platform and voila, people can download it and play it.
- Steam – If you’re a gamer, you’ll know about Steam. Steam is one of the most popular digital game stores for AAA developers and indie creators. While there is a one-time fee of $100 to publish to the store, past that Godot games are readily accepted.
- Your own website. While we don’t have specific recommendations here, using your own website is always an option. This may especially be helpful if you do a web export of your game so people can play right in the browser.
- Google Play Store – If you have a mobile game for Android, you can publish it to the Google Play Store (which is just as welcoming for indies). While Google does charge a one-time fee of $25 (to help weed out scammers), you’re free to publish anything that fits the store guidelines.
- Apple App Store – Similar to the above, for mobile games for iOS, you have the Apple App Store. Keep in mind this option is best for serious developers looking to monetize, as Apple charges a yearly fee of $99.
There are plenty of other options – but Godot is accepted in a ton of places due to its growing prevalence.
Godot Game Development Courses and Tutorials
In this section, we’re going to help you find courses and tutorials that are perfect for learning Godot and feature a wide range of genres. We’ll also include some bonus supplementary material for game development in general – just in case you want more guidance on other fundamentals.
General Game Development
- How to Make a Game – A Guide to Making Video Games
- Learning to Code for Game Development – Beginner’s Guide
- What is Game Design? A Guide for Making Video Games
- Unity vs Godot – Choosing the Right Game Engine for You
- Unreal vs Godot – Should You Use One or the Other for Games?
- What is Godot? The Free Engine for Making 2D & 3D Games
- Game Developer: What is it & How to Become One
Godot Game Development
- Godot 4 Game Development Mini-Degree
- Godot 3 Game Development Mini-Degree
- Godot 101 – Game Engine Foundations
- COMPLETE COURSE – Learn GODOT 4 in 90 MINUTES
- Godot 4 Crash Course for Beginners – GameDev 2D Top Down Tutorial
- Godot Game Development – Crash Course for Beginners
- Action RPG in Godot 4 tutorial series
- Godot 4 for Beginners
- Complete 2D Platformer in Godot 4 Tutorial – Zero to Shipped Game for Beginners
- How to Create an RPG in Godot 4 (step by step)
- How You Can Easily Make Your Code Simpler in Godot 4
- Custom Resources – A Godot Workflow GAME CHANGER
- How to use setter and getter functions in Godot 4
- GDScript Fundamentals Tutorial Series
Supplementary Game Making
- Game Artwork Academy
- Game Design Academy
- Basic Principles of Game Design
- The 6 Design Patterns game devs need?
Other Godot Resources
While you have the education at your fingertips now, we also wanted to include links to a variety of other resources that will help with your Godot game-making. These range from community spaces so you can connect with other developers, to generalized resources that will help you along the way.
- Godot Asset Library – Tools, templates, materials, and more for use in your games
- Godot Events – List of events for connecting with Godot and Godot developers
- Official Godot Q&A page – Ask your questions about Godot here!
- Godot’s subreddit – Forum-like conversations for showcasing work and getting help from other developers
- Godot Forums – Traditional forum environment with Godot developers
- Godot’s YouTube channel – News, showcases, and more straight from the makers of Godot
- Godot Steam Community – A resource for tutorials, showcases, and more. Also, a good way to find Godot games to play!
- Godot’s GitHub – The official hub for Godot’s source code. Also, if you find a bug, report it here!
- Godot User Groups – Find local communities of Godot developers around the world!
Godot Game Development Wrap-Up
Through this article, we’ve strived to help you understand what Godot is and give you the building blocks for creating your own game with it. There is definitely a lot to learn before your game can come to life. However, our hope is you now have a guided understanding of where to go next – versus just staring into the abyss looking at a blank Godot project.
We wish you the best of luck with your games, and we can’t wait to see your Godot projects!
FINAL DAYS: Unlock 250+ coding courses, guided learning paths, help from expert mentors, and more.