My Experience With Godot So Far
At the end of 2023, I realized that I wanted a career that could satisfy my creative desires while doing something I actually enjoy. It's no secret that I love gaming, and that I love the development history behind video games. I didn't think that I could ever do what those developers do, but Godot gave me the confidence that I could achieve that type of life for myself. Here's what I've experienced using this open-source engine so far.
Like many of us developers it all starts with a tutorial. There are numerous sources online to learn Godot so I was initially lost on what would be the best for me to learn first.
I'd already been following this YouTube channel called GameDev.tv, which I highly recommend you go check out, and they just provide everything I need for my preferred learning style.
Their structured courses gives me just enough hand-holding without being too invasive so I can learn at my own pace. Luckily for me I caught a humble bundle sale where they were selling all their Godot courses and I immediately jumped on that.
I had decided that I wanted to focus more on 3D game development, so I jumped into their 3D course, and made a couple projects. From the get-go, I could tell that this engine was really simple in design and made for developers.
The engine has the basics that Unity and Unreal Engine had, but it looked almost more like an IDE than it did a game engine editor. Everything was structured clearly for developers.
From their scene tree, folder like structure, and easy out-of-the-box integrations with their code editor, I could just feel the intentions of all the developers who contribute to this engine.
This engine is intuitive in its design and it felt a lot like VS Code. I had to get used to the game editor in the middle, but that was pretty trivial since it feels like controlling a game itself.
After going through the options I quickly started up the first lessons and created a simple game where you had to control a rocket ship from one side of the map to the other side of the map.
The node system that Godot uses is just so simple it almost feels like building legos. Basically there are several types of nodes that can be added to your game that have simple functionalities and purposes. Scenes are a combination of nodes and a combination of scenes are what create your games.
It honestly was a little confusing in the beginning how to connect nodes with each other, but that's the beauty of these self-paced courses. You can easily just go back and review it until it sticks with you.
There are several ways nodes can communicate with eachother, but this tutorial basically used signals to know when the rocket interacted with either a wall or the goal.
I was surprised how simple the process was, and within a couple of hours I had created 5 simple levels and built a simple game.
The course ended with my exporting the project for Windows where I had my brother try it out. It was quite the feeling of someone playing a game I made.
All of this was great, and I learned a lot just from a simple game design, but there was just so much more that I didn't know. The course immediately took me through a simple tower defense project.
Here it introduced the idea of AI and enemy interaction. It was quite the learning process. I learned so much about how to interact with enemies like messing with health, targeting, and using code to update the game accordingly.
I learned that having scenes that act as managers for specific tasks makes the flow of the game much easier. It also makes it easier for nodes to communicate with eachother if there is one central place where game logic is handled.
Some examples:
- Tower Manager
- Enemy Manager
- Game Manager
Overall, this section of the course had a wealth of information as well, and taught me the basics of enemy AI and how to handle game logic.
The final project from this course was to create a First-Person Shooter (FPS). The experience was a lot easier than expected. Thankfully player control code come built-in with CharacterBody nodes. This streamlined the process and all we had to do was tweak the code a bit to handle a camera.
The course provided some assets, like guns, and after messing around and making the level for my character to run around, I had my first FPS up and running.
Again, I was blown away how simple it was to get projects started. For anyone that's looking to get into game development, I highly recommend Godot for its simplicity, intuitive design, and pre-built components.
Working with FPS games was a bit different when it came to character interaction, but the principles were the same. Enemy AI had to act a bit differently, but I quickly learned how to make enemies start moving when you either attack them or you enter their radius.
After adding manager scenes for everything and a UI, I had my first playable FPS prototype. I had a spawn manager for enemies and created a room for the player to run around in and kill them.
Just like that I had the basic principles of a 3D FPS down. I closed out the course with the feeling like I just climbed a mountain. The problem is that I immediately saw several more mountains in the horizon.
The idea of continuous learning did feel exhausting, but I was determined because this was the first time I actually enjoyed coding ever since college.
The course provided a lot of insight and just enough explanation for me to fully understand how to get started with game development and the importance of having a plan for your game in mind before starting.
The only thing that I think the course lacked was a more in-depth explanation of GDScript and good coding practices. It felt a little over-the-place with the code, but in the end, the game works.
Still, the course provided is a great starting point for any beginners like myself, so check GameDev.tv out and start your game development journey also!
At the time, I wasn't sure what to do from here. Should I continue learning? Should I try building my own game? There were so many questions I had, but I eventually came to conclusion that I wanted to try my hand at freelance game development. There was just so much I didn't know, but this felt like a good way to dip my toes in to game development.
I noticed that there were a lot of requests for mobile game development on freelancing platforms like Fiverr and Upwork. Once again GameDev.tv came in clutch and released a course for Godot mobile development.
So that's my next destination. I'll be giving updates on my next post once I finish the course, so in the mean time I encourage all the readers to give Godot a try if you've been on the fence about game development.
Until then thanks for reading, and I'll see you guys next time!