Do You Need a Game Engine as a Seasoned Programmer

INDIE GAME DEVELOPMENTPROGRAMMINGOPINIONGAME ENGINES

Michael Vasquez - Developer/Designer

3/1/20244 min read

Sometimes I regret not spending time learning a game engine when I was younger and had the time to spare. Then I remember that, back then, game engines were complicated and expensive. Now, as a seasoned programmer, I often find myself questioning whether I truly need a game engine for my projects. With my experience, I know I can write the code to make games, but here are some undeniable benefits to using a game engine, especially for certain types of projects. In this post, I'll explore why I decided to take the programming route and weigh the pros and cons.

For the games I plan on creating and with the experience I have, a game engine was slowing me down. I found myself fighting a game engine to get it to do a task that I knew I could code myself. That is why I chose not to use a game engine.

What does a Game Engine do

A game engine provides a general structure for putting game objects together to make a game. Though their structure is proprietary, the concepts behind them are not. Popular game engines use some kind of component/entity system and provide components for the user out of the box. Their structure is easy enough to grasp. The tedious part is the tons of configurable properties associated with them.

Game engines also allow non-programmers to make games, which is an amazing feature. Anyone can create their game by dragging, dropping, and configuring. There are amazing creators out there who can't spend the time learning to code. Game engines enable them to bring their ideas to life. If I did not enjoy coding or know how to code, I would most definitely go that route.

Another argument for using game engines is the ability to compile for different platforms. I know in theory this is probably true for some games, but my experience with cross-platform mobile applications makes me doubt it. With mobile apps, there was always some code that had to be added or removed when building for a different platform. Even when using those cross-platform frameworks.

Who do I Think Benefits from Game Engines

Using a game engine is not bad and many will directly benefit from using one.

  • Non-programmers that have the time to dedicate to learning the engine

  • Programmers who do not like coding in what they know and want to learn a new skillset

  • Big teams that need structure because a lot of people are working on the same thing

  • People who already know how to use game engines (obviously)

  • People who want to use them. Using a game engine because you find it fun is as good of a reason as any.

Using the Right Tools for the Job

Before starting any project I try and find the right tool for the job. The job in this case is creating a 2D game. Any modern general-use programming language allows you to create graphics objects and interact with them. There are even libraries that have binding that allow use with different programming languages. Some libraries have outlived many game engines and have a strong community and plenty of documentation. When considering whether I needed a game engine to display game graphics, I could not find a good reason. Making an interactable graphic on a computer was a similar thought process and conclusion.

With my ability and experience creating graphical user interfaces, the right tool for me was leveraging what I know and filling in the gaps when necessary.

Understand Your Abilities

Before making the final decision not to use game engines, I looked at everything I had worked on in the past and considered if I had the ability.

Here are some of the things I considered about myself:

  • Creating large projects with complicated business rules in the past that are 10 years old and still being used and added to today.

  • A significant part of my job involves joining projects initiated by others, where I then focus on debugging or enhancements.

  • I've worked on improving code performance and creating test cases.

  • I am extremely comfortable with my coding workspace, so being forced to work with a different editor will slow me down. (I think I'm supposed to mention I use Vim here)

  • Reading documentation is something I do daily.

  • Appending to my current skillset is much quicker than learning an entirely new one.

  • As a rule, I don't worry about the things I don't know until I encounter a problem I haven't solved before.

Creating a game is just like creating any other piece of software only for a game. Users mostly don't care how it is made as long as it works as intended. Having a working and fun game is the end goal of all this. I know if I write the code myself I could complete it and fix any issues quicker.

When Would I Reevaluate Using a Game Engine

With the current list of games I plan on creating, I do not see a use for a game engine. I have already created a process that makes sense for me and can work for any 2D game in the future.

If I ever decide to do a complex 3D game, I would probably consider using an engine again. Depending on the experience I gain from 2D, I may also first consider using libraries and code. I can also imagine a future where I am wrong about everything, but that also doesn't worry me. The experience will be valuable regardless.