Choosing Game Engine | Elemental Cowboy Devlog #1

Devlog Mar 10, 2020

Hi, welcome to the Elemental Cowboy devlog, a series of articles following the development of Elemental Cowboy video game. In this post I would like to explain the choice of Godot engine over Unity and Unreal Engine.

Choice #1 - Unreal Engine 4

If Elemental Cowboy was supposed to be a 3D game, Unreal Engine definitely would have been an engine of choice.

From my simple experiments, the built-in capabilities of Unreal Engine 4 seemed more advanced, and I found it easier to utilize the more advanced graphical features that Unreal Engine offers.

I also really enjoyed the use of blueprints in Unreal Engine, and while I know that it is possible to add similar functionality to Unity, here it is already provided by the developers, which I strongly believe improves overall stability of the system. Plus, it is free, unlike the Unity plugin.

Year 2020 also brought an amazing integration with Quixel suite, which is now free for use with Unreal Engine 4. That means that you get access to over 11K professional, high quality assets.

Currently, Epic Games also gives out additional assets from the Marketplace every month. These assets range from simple texture packs to more advanced 3D models or even entire gameplay systems, often built with Blueprints.

Choice #2 - Unity

While Unity is one of the most popular choices when it comes to indie games, I never really seemed to like it. I first tried creating games in Unity around 5 years ago, and while I found the engine to be one of the easiest game engines to start with, something just didn't click.

That's not to say that I didn't seriously consider Unity. With the large community backing Unity, it is basically unmatched when it comes to solving problems. There are tons of different tutorials around the web, and most of the popular systems are already implemented by someone.

One of the biggest disadvantages that I found when it came to Unity was the fact that it is the only completely closed-source game engine on the list. And while I don't think that I would ever need to tickle with the source code in the beginning of my adventure, I really enjoy understanding the tools that I work with, and having access to the source code allows me to do just that.

Another strong point for Unity was the Asset Store. While there are tons of bad quality assets, there are also a lot of gems there. But for me, it didn't really matter. You see, I'm a complete beginner when it comes to game development, and my goal is to learn. I strongly believe that the best way to learn is by creating something, which means that I want to write all the game mechanics myself.

Choice #3 - Godot and why I choose it

Finally, we arrive at Godot. The newest, most simple game engine out of all the ones I considered. So why would I ever choose it?

First, I love working with Godot. GDScript is a really nice language to use. Sure, C# and C++ are both great, and objectively speaking, they give you more opportunities to progress with your career. The thing is, I already know quite a few programming languages, so I don't have to worry much about the career opportunities.

Second, Godot is open source. It's also has a relatively small code base. This makes it much easier to understand, but also to modify if I ever have that need. This also allows community to fix the bugs and make additional improvements.

Third, it is something that I have never tried before. Godot is the only engine that I've never spent more than few hours with. That's not to say that I'm experienced with other game engines.

Conclusion

Godot to me seems like a good and interesting way to start learning game development. The tools that it provides seem to be a good fit for everything I need to create Elemental Cowboy. I hope to post about the progress every week, sharing new gameplay features, assets and more.

Dawid Cyron

Dawid Cyron is a full-stack web developer living in Poland. Currently, Dawid is pursuing a degree in Computer Science and awaiting his summer internship at SkyScanner.