Flappy Bird on Godot

Leaving Unity3D
Since I began my career as a game developer a decade ago, I have mostly worked with Unity3D. At first, because it was the tool I learnt to use during my studies.
After that, I stuck to it because using any other popular engine was just not viable: Unreal Engine required a powerful computer to run, which my budget laptop was not. Game Maker was limited to 2D games, and I wanted to explore 3D mechanics and game design.
The years went by and I grew concerned about the consecutive predatory, anti-consumer, and sometimes simply unethical actions taken by the team behind Unity3D. Yet I kept using the engine, because it was familiar to me, and I was very good at making games with it.
At this point I acknowledged the only reason why I hadn’t switched to Godot yet, which was looking more promising by the day: I was afraid of starting again, of not being capable of using a new tool.
I feared to find that I was not good at making games, that I was good at using Unity3D.
Switching to Godot
Once I made the switch, the very first projects I built using Godot were the offcial tutorials available on their documentation page, as they do a very good job of introducing readers to the workflow of the engine and GDScript.
After that I felt ready to program a small game on my own, which would solidy what I just learnt so far. I wanted to code something that I was familiar with in the other engine, becuase that would help me better understand the differences between them.
That’s why I decided to develop a Flappy Bird clone, as its game mechanics are very simple to replicate and I have done them multiple times in the past. This was a great choice as it allowed me to focus on understanding the workflow, and not on the game logic itself.
This copy of Flappy Bird is quite simple, but still it covers many common areas of game development: input handling, audio effects, scene management, user interface, instancing…
And on top of that, it is also a perfect boilerplate to expand upon. For example, instead of using a 2D perspective with sprites, I created 3D models and animated them using the Animation Player node. Additionally, the 3D perspective allowed me to implement a nice parallax effect and experiment with the environment and post-processing stacks.
Play it now 🕹️
The source code of this project is available at my codeberg profile. This small game is available for Windows, Linux, and MacOS.