GameDev Diary: Back At Square One

Andrew Lukes
3 min readSep 7, 2023

--

How an error forced me to switch game engines

As I have written in the previous post, I have had problems with compiling the demo version of my video game. Since I haven't found the bug and am not interested in creating an unplayable game, I have decided to switch to a new tool. I have chosen Godot, a popular open-source game engine. Although it is much more powerful than pygame, it also means that I have to get through an equally heightened learning curve. Here is the progress I have made learning and transferring the project into Godot.

Let's dive in!

· What is Godot?
· Main Benefits
· Learning Process
· Progress
UI
Unit
Structures
· Conclusion

What is Godot?

Godot is a free and open-source game engine that allows developers to create 2D and 3D games for multiple platforms. It was developed by Argentine software developers Juan Linietsky and Ariel Manzur. The engine is supposed to be user-friendly, with a powerful and flexible node and scene system that makes it easier to create complex games. You can choose to write in C, C++, or GDscript, an augmented version of Python. Godot is a popular choice among indie game developers due to its ease of use and versatility.

Main Benefits

I really like that I do not have to code some of the things from scratch. For example, Godot has a built-in collision system, physics, input parsing, and more. Moreover, I can easily reference elements in my project by just dragging them from the folder minimap to my code file. The thing that I like the most is probably, that I can design UI in the editor, and don't have to constantly open and close my debugging screen to change simple details.

Learning Process

I have started by going through an 11-hour tutorial for beginners. It was packed with explanations and exercises by which the tutor showed how he was developing a top-down shooter. To cut down on time, I decided, that as I was watching the video I would include code and mechanics from my pygame using the concepts I have just learnt. Although the tutorial didnt make me a Godot expert, I can say, that I understand how to continue with the development process.

First unit on the battlefield
Rewriting code for the unit

Progress

UI

So far, I was able to create a basic UI with players' information boxes and a buy bar. Also clicking on the next turn button already updates the value of the current player and giving up sends the user to a basic end-game screen.

Unit

I have created a Godot version of my knight unit, and now it is able to move inside of the game area around a certain distance from the starting position like in the old version of the game. This also shows a blue circle around the unit.

Structures

I have created some scenes containing each of the structures in the game, but since Godot makes designing much easier, I am planning to create some better graphics, if something doesn't throw sticks under my legs like when I was compiling the pygame version.

Conclusion

So this is basically how I have started from square one recoding my entire project in a new game engine. Although it is painful, I believe, that this change will make the game much better in the end.

Also when I brought up the topic of development tools, it is almost mandatory for me to ask: What is your favorite game engine?

Check out the previous article

Check out the next article here

--

--

Andrew Lukes

Introducing Andrew Lukes: a Prague web dev & language enthusiast who shares his ideas on Medium. You can visit andrewebdev.online to see some of my projects