Every beginning is hard or my first steps with GODOT - The 1st month
Tags: godot, gamedev, learning, godotengine
Published: 2024-02-01 06:00:00


In my [DEVResolutions](https://dev.to/pythonisnotasnake/my-personal-devresolutions2024-2cgg) for this year I mentioned that I'm going to learn the game engine GODOT. An answer on the mentioned post was to document the journey of learning game development. My idea to this is that I will share my progress of every month. Possibly it motivate someone or give an idea how hard or easy is the learning curve of GODOT and game development in general.

## Prior knowledge
To my person I never before have done game development. The only things I have made was a visual novel game with Ren'Py. But Ren'Py make things very easy. There are no collisions or physics in it. For a simple base game you're not needing any programming skills because you write a storybook. It is more similar to PowerPoint meets LaTeX.
Another part of my skill level is web development. In general I use Java and Angular for my daily work.

---

So there comes the knowledge about programming. I not start from scratch at this point. I know how to code so it is not difficult to understand the script language of GODOT. The challenge is to understand the concepts of game development. This mean specific keywords and the structure of a game.

## Where to start?
Last year I started with the [tutorial](https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html) on the GODOT website but never finished it. I recommend to start with this at first. It will give you an overview of the different buttons and other stuff of the GODOT UI. If you have done this you can decide if you want a look into 3D games and do their next tutorial. My personal decision was to stay with 2D games.
In this year I started first to watch a video series on YouTube in my native language about the keywords of GODOT. This helped a lot to get a feeling for the structure of a game. Probably there will be a lot other videos or texts in a language of your choice with a similar content.

## After basics come more basics
So at this point I have decided to concentrate on 2D games. My idea was 

> Why not starting with a complete guided game?

So I found on YouTube a video series in which exactly this was done. The guys from GDQuest have made a video series of programming a [platform game](https://www.youtube.com/playlist?list=PLhqJJNjsQ7KH_z21S_XeXD3Ht3WnSqW97). The explanations are very good and each step is described in a deep that you really understand what impact this edit has on the game. Sadly it was made with GODOT major version 3 and not with the latest major version 4. In my case I tried with version 4 and search on the web for objects or methods which not anymore exists or work in another way in the latest version of GODOT.
The first video of the series was the one which contains the most knowledge. After this I get a really good feeling on some points:

- how is the structure of a game
- how to use different kinds of nodes
- how can I make my player to move and interact with the world
- how are collisions working

---

The second part of the series tell you how to make animations and transitions to other scenes (or levels). This can make your game more beautiful and help you to build bigger games than single scene games like pong.

---

In the last part of the video series there came menus. But this was a little bit difficult. The comments under the video support my impression. It feels like there was missing some parts in the video as also between video two and video three. So the theoretical use is good explained but it is not simple possible to expand the own project by these.

## The big goal
It is nearly impossible to learn anything what you never will be use by your own. To give me some motivation I was looking for a game that I will finally code. My intuition tell me that I want to build a 2D fighting game like Street Fighter. After that I make some research for this topic and find out that it is not so difficult to make a rudimentary fighting game. But if you want that the players have fun and enjoy it you need many additional things like a combo system or many sprites of fighters in different positions to make fluent animations and give the player the feeling that the combos feel right and awesome. As I'm not a designer I change my mind. At this point I will try to build a sidescroller shoot'em up like Airwolf or WingWarriors. Possibly my goal can change in the future.

## Assets and more assets
The most important part of a game are assets. From backgrounds over parts in the scene to items and characters. You will need assets for all of them. To get assets I have tried three different ways.

### AI generated assets
First of all I let an AI generate me background images for my games. One of them can you see in the cover image of this post. It looks very good and is not much work to do. The problem in this case is if you need an asset in multiple positions like a character who is walking. In most of the tested image generators the character in the next image don't look like the character in the first one. So it is genius for backgrounds, parts in the game world or items but not for animated sprites.

### Design assets by your own
My next way was to design easily my own characters. So I tried it with pixelart to get simple but not bad looking assets. The result are the samurai and knight in the cover image. If you have the effort to live your creativity this can be a adorable way.

### Get assets legal from the web
The last way is the easiest way to get assets for your game. On [OpenGameArt.org](https://opengameart.org/) you find a huge amount of free assets for your projects. It can be filter by the type of license. So you can choose by yourself which type of license is alright for you. There are not only sprites but also textures or sounds and background music. Give it a try and search for your own if you want start quick develop a game without spend to much time in drawing assets.

## Conclusion
This was many input for one month. I hope with this in your mind you will have a first idea where to start. If you make your own game don't be shy and share it with the community.
Keep coding.