Making my first game in under a week using Godot engine (you can do it too!)
Tags: gamedev, showdev, motivation, beginners
Published: 2021-03-10 08:30:26

*Quick note: I'm creating a brand new community for developers focusing on building programming skills through a welcoming online collaboration environment. We need developers like you so consider [joining us](https://community.inspirezone.tech/)!*

---

# Contents
- [Intro](#intro)
- [First steps into game development](#first-steps-into-game-development)
- [Using Godot engine to make games](#using-godot-engine-to-make-games)
- [Learnings and surprises from making my first game](#learnings-and-surprises-from-making-my-first-game)
- [Conclusion](#conclusion)

---

# Intro

If you’ve never done video game development before, the barrier for entry can seem high. Those were my thoughts also before finally deciding to try out game development. However, you’ll see that thanks to great open source tools like the [Godot engine](https://godotengine.org/), game development is a lot more accessible than you think!

I’ll go through how I made a game in under a week using the Godot engine with no previous video game development experience, and more importantly, the steps you can take to do the same. This will hopefully help anyone who is thinking about getting into game development and making their first game.

---

# First steps into game development

### - Starting with no previous game development experience

With no previous experience it might be tricky to know how to actually start out in the process of making a game.

I did have a little experience developing a GUI (Graphical User Interface) based application. This for me was the closest to any sort of graphics based design I had. If you do have some GUI development knowledge, I believe it will help a bit when it comes to the concept of working with UI elements.

However, regardless of your experience know that game development is accessible to any type of developer!
 
### - What if I’m new to coding?

If you’re completely new to coding with no prior experience, I would advise you should first take some time to learn the basic concepts of your selected programming language and to do a few projects. If your goal is to become proficient in game development be aware that C# and C++ are the typical languages used to make games.

However, Python is also a great choice in this case. It’s considered easier to pick up than C# and C++ and in general great for beginners. Also, the Godot engine native language called [GDScript](https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html) is highly based on Python. So as well as C# and C++,  Python is also another choice if you want to use Godot for making games.

For more guidelines on getting started with coding see my other post on [how to select a first programming language](https://dev.to/funbeedev/what-programming-language-should-i-learn-first-3-key-factors-to-consider-1lo9).

### - Can I really make my first game in under a week?
Now, let’s address the admittedly clickbait-y element of the title… How can you actually make your first game in under a week? 

It depends.

There are a couple of factors that enabled me to do so:

1) I was already familiar with Python (I chose to make the game using [GDScript](https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html) which is similar to Python)

2) I made a very very simple game just to become familiar with basics of game development. (As you’ll see the game is really nothing special 😉 )

3) I entered a Game Jam contest. I was determined to submit a game to the contest and the submission deadline was a couple of days from when I started learning how to use Godot. So this literally *forced* me to make a game within a week. (Deadlines for the win!)

Keep these points in mind when you think about if you can produce a game in under a week and whether it’s realistic given your situation.

Also to point out, it doesn’t really matter how long it takes you to make your first game. Some may do it in a day or some may take a couple of weeks or a couple of months. And obviously, the complexity of the game and amount of time you dedicate to it also matters. The most important thing is that you’re learning game development and working towards your goals 🙂

I believe my single most motivating factor in completing the game quickly was entering a Game Jam. This is a contest you enter either on your own or with a team to submit a game before a deadline. Game Jams usually have a chosen theme the submitted game can be inspired by.

If you want to get into game development I highly recommend joining a Game Jam! Also checkout communities around game dev such as [Itch.io](https://itch.io/). It’s a great place to find many online based Game Jams and to interact with other game developers. The one I entered was the [‘Game Off’ Jam hosted on itch.io](https://itch.io/jam/game-off-2020).

Next, we’ll talk through key points in the process of using Godot to make games.

---

# Using Godot engine to make games

### - Tips for getting started with Godot
Your main resource for getting started with Godot is through [Godot docs](https://docs.godotengine.org/en/stable/index.html). It contains everything you need to use Godot including a very detailed beginner’s walk-through introducing you to the Godot editor, its native scripting language called GDScript and basic concepts you need to know to start making games.

The work to focus on at the start is to go through the docs especially the [Godot step by step guide](https://docs.godotengine.org/en/stable/getting_started/step_by_step/index.html). One of the fundamentals you need to use Godot properly is navigating around its editor. The Godot editor is self contained and you can make an entire game using just the tools provided in the editor.

![godot-engine-code-editor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7dzf49cd8byqqd9ju4ts.png)
<figcaption>Godot engine code editor</figcaption>
 
As you go through the step by step guide you’ll begin to understand how to navigate around the Godot editor. There is also a very useful [making your first game tutorial](https://docs.godotengine.org/en/stable/getting_started/step_by_step/your_first_game.html) which I highly recommend you follow from beginning to end. Once you’ve gone through this tutorial you should know enough to start making your own game. Or at the very least, you’ll know how to work from an existing game example.

These are exactly the steps I followed when I started using Godot. After completing the first game tutorial I had learned enough to start tweaking the example in the tutorial to make the game I planned out.

One point to note is although GDScript is the main language used in Godot, there’s also flexibility in other languages you can use, some of which include C# and C++. However, I chose to use GDScript because it’s recommended in the Godot docs and it’s very similar to Python which I’m comfortable programming in.

With the Godot docs as your main resource you should have enough to start making your own game. If you need help with using Godot also see their [community page](https://godotengine.org/community) for a list of ways you can get help.

### - The result: My first game using Godot engine
[Download the game for Linux and Windows on itch.io](https://funbeedev.itch.io/save-the-sheep). (*Warning, it’s no blockbuster!* 😆 )

<a href="https://funbeedev.itch.io/save-the-sheep"> <img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ctbe17uldnz7xr5pso0.png" width="500" /> </a>
 
What the game is about: The game is called “Save The Sheep” and the concept is very simple. It involves navigating sheep through space, avoiding deadly stars and taking the sheep to the moon.

The difficulty of the game increases slightly with each sheep you successfully land on the moon. There are 22 sheep in total to save.

That’s it. Nothing fancy or groundbreaking. The main point of starting with such a simple game was to become familiar with basic game development concepts like moving a player around, having enemies, hit boxes, keeping score, increasing difficulty, animations, images, music, sound effects and so on.

The game basically started off using the example from the first game tutorial in the Godot docs. I was able to use the learnings from that tutorial to know what I needed to add, remove or tweak to get my desired result.

You can view the complete game source on [my GitHub](https://github.com/funbeedev/SaveTheSheepGame).

 ---

# Learnings and surprises from making my first game

### - Game development is easily accessible
When I decided to make a first game, it didn’t take much effort to discover the vast amount of resources and communities centred on game development.

The Godot engine is just one example of a great resource for those new to game development. [Unity](https://unity.com/) is another game development engine that’s even more popular than Godot. You can see [this article from gamedesigning.org](https://www.gamedesigning.org/career/video-game-engines/) on a list of video game engines if you want more insight into different engines.  


### - Planning and architecture is critical

One factor that stood out in my experience of making my first game is the importance of planning before coding. Although the practice of planning out your code architecture before writing any code is recommended, it’s probably not something a lot of us pay attention to! Depending on the type of development project it may also not be as critical.

However, game development is certainly one field of programming that requires careful planning before you begin to write code. Games require many different elements: controls, mechanics, characters, levels, story and so on. If you don’t have at least a rough plan of how this will all come together your game may end up completely different to what you planned out in your head!

Since I kept the game very simple I didn’t have as many challenges with designing. However, even putting together such a simple game highlighted how important planning will be for more complex games.

### - Coding is only half the work

While coding is certainly a key side to game design, with just code alone your game is nothing. There’s also the art, characters, interact-able objects, music, sound effects, display text, etc..  to take into account. These are known as **video game assets**.

Without assets our game technically is not playable and is just a bunch of code! 

And finding the *right* kind of assets is a challenge in itself as you ideally want assets that match the aesthetics of your game. For my first game, designing my own assets was really not an option because of the limited time I gave myself and also because I had no idea how to make assets!

![godot-engine-2d-scene](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fzpj6pwnz7fhnebqbk7z.png)
<figcaption>It's a lot more than just code when making games. Video game assets are elements that you also need to work with.</figcaption>


I used a lot of assets from [opengameart.org](https://opengameart.org/). This is a great resource of free to use game assets and thankfully I was able to find suitable assets for the concept I had in mind for the game. Note that assets provided by opengameart fall under [creative commons](https://creativecommons.org/) licensing terms so be sure to give attribution if required.

The importance of assets and how it matches your game design and aesthetics is just another factor to consider when making games.


### - Game development is super fun!!

Most importantly, I enjoyed the experience of making a game and looking forward to making more! 

---

# Conclusion

Game development is not as difficult to get into as you may think. There are tons of resources available to help beginners in making their first game.

If you’re interested in game development, don’t overthink it and just try out making your first game. Although we briefly covered getting started with the Godot engine you may also explore other engines.

Once again, I highly recommend joining Game Jams such as the ones found on [Itch.io](https://itch.io/). There’s nothing like having deadlines and participating in contents with other devs to encourage you get involved with game development!

If you’ve been thinking about game development, what’s stopping you from getting started? If you’re already into game development how did you first get started? Comment below!


---

**If you found this helpful check out more posts on developer tips and coding productivity on my [blog](https://inspirezone.tech/blog) :)**

*[Godot Engine](https://github.com/godotengine/godot/blob/master/icon.svg) Logo by Andrea Calabró is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)*