Game Dev Journal Entry 1: Deciding on a Game Engine

Deciding on a game engine takes a lot of thinking

What is my goal?

Before a pick a game engine, I believe it’s beneficial to first figure out “why am I doing this?” and “what is my north star?”

  • I am NOT trying to make money off a game or necessarily grow a community around it
  • I am NOT trying to make something 3D.

Requirements

Now that I have this direction, what are my requirements in a game engine?

  • Free
  • Easy to use (otherwise, I’ll go back to LibGDX)
  • Large community with documentation
  • Deployment options including desktop, web, Android
  • Github version control
  • Linux compatibility
  • Some programming
  • Multiplayer/networking capabilities (nice-to-have)
  • Deployable to Nintendo Switch (nice-to-have)

Ruled Out

Looking into game engines, I quickly ruled out a few. Unreal Engine seems primarily for 3D games, and Lumberyard is meant for larger-scale projects. GameMaker seems like it tries to minimize coding (as a software engineer, I’m more comfortable working with code). I didn’t feel it was necessary to explore much further and I narrowed it down to Unity and Godot.

Unity

Unity seems like the most popular game engine at the moment and is chock-full of documentation and features. My first inclination was to go with Unity because of its pervasiveness. But then I heard some more opinions and my impression is that that legion of capabilities comes at the cost of feature bloat. I don’t think I’ll be doing anything too complex in my games, so I think this feature bloat wouldn’t be worth the cost. I also started hearing suggestions for Godot as an alternative (thank you bei from the Game Dev Field Guide Discord), and so I looked into it.

Godot

Godot is an open-source game engine that is growing quickly in popularity. It has a large community and a ton of documentation and has a focus on 2D games at the moment (to be clear, there are robust 3D capabilities, I’ve just heard the 2D experience is better). Most of all, I keep hearing people talk about the “simplicity” and “user experience” of Godot, and that particularly caught my eye. It also appears that Godot has the minimum set of features I need: free, deployment options to web, desktop, & Android, Github version control, Linux compatibility, and even some multiplayer/networking capabilities. The one apparent downside is that it has its own native programming language (GDScript) as its de facto scripting tool. Ideally, I would be gaining familiarity using a programming language that I might use in other software engineering contexts. Godot does offer the ability to use C# (and I even saw unofficial plugins for other languages), but I think if I were to use Godot, I’d want to “use it the way it was intended to be used” and would take up GDScript.

Verdict: Godot

I think you can figure out which game engine I decided on. In truth, I didn’t spend a lot of time evaluating this decision and was quickly drawn to Godot. I was convinced by the reviews about its user experience, the large, growing community, the focus on 2D, and the open-source nature (I’m interested in contributing in the future). Using GDScript isn’t that big of a downside, and I’d still probably be learning programming lessons that I could translate to my software engineering career.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store