3D Art
 2D Art
 Games
 Programming

Are Custom Engines Elitist?

In discussions with fellow game developers, I sometimes notice a weensy bit of negativity when it's made apparent that me or someone else is making games through custom engines instead of Unity or any of the other popular options.

"La-di-da! Well aren't you special?" And a couple of times I've even seen the word "elitism" thrown around.

Before I tell you why I think that's unfair, let me just say that most game developers I know are absolute sweethearts, and that this rant is not designed to make anyone change what tools they use.

I only try to make the case that there are sane reasons for making custom engines, beyond just bragging rights, in order to bring understanding. Keep making awesome games in whatever way you prefer!

Making a custom engine isn't some herculean task

People sometimes over-estimate the difficulty of making a custom engine. Sure, it can be difficult if you aim really really high, but you don't need to. There's no need to beat CryEngine 12 when you're making a doom-clone or a 2D platformer. You just need the stuff you need.
  I almost hesitate before using the word "engine" in many places while writing this. Often the code between engine and game is so intertwined that they're really one and the same. It's the opposite of a general purpose engine, and that of course makes it a lot easier to program.

There are other things that also makes it easier. So many great resources on low level game development. Books, videos, blogs... the internet is full of knowledge. People have been making games for a long time. We stand on the shoulders of giants.

Libraries can do a lot for you! It's not beyond many to make games using SDL or similar libraries. There are things like RayLib that offers even more. You can get all the elements of a complete game engine without having to write a single line of really low-level engine-code yourself.

It's only gotten easier lately with the rise of single file libraries that cover almost anything. Any algorithm, structure or function you might need is out there on Github. It might take a little effort to make it work, but once you have it you can modify and adapt it for your specific needs.

Sometimes programmers self-impose difficulty voluntarily and make things in a more cumbersome way than necessary. Perhaps for dumb reasons, or valid ones. An off topic rant I'll leave for another post.

The right tool in the hands of what person?

You hand me Engine X and tell me to make a silly little Doom-clone. I would need to spend a long time just learning how to navigate the interface.

Now if you instead tell me to use my old familiar tools, I would be up and running very quickly. All that Engine X has to offer for making a doom clone, I already figured out how to do with my old tools years ago.

So while there may be an objectively better tool for someone coming in fresh, old dogs are different.

Many of us simply started out with C++, Python, Pascal or whatever. For better or worse, we learned how to make games differently from what's common now.

People like what they know and old habits die hard. Its no less true for people that make games.

If the cause of this is because people are too closed-minded to try new things, then it's sad. If they have tried the new thing and concluded that, no, for now I'll better stick to what I know, then it's sound. Or maybe they're just unwilling at the moment of diving head first into new territory. Whatever the case, I would rarely suspect some underlying superiority complex.

We're hooked on the freedom

I don't mean freedom in the Stallman/Liberal sense of the word (even though, yes, that is true for some as well), but the freedom of programming the way we want to, the way we're used to, the way we enjoy.

Custom-engine coders like me are used to being able to add code wherever we want, willy-nilly, without restriction. I may even get a sense of claustrophobia working within Engine X, because there I must follow a preexisting set of rules.

I don't like to keep all of that Engine X stuff in my head. Granted, I still have to keep my own engine in my head. But that is naturally much much easier, since I wrote it. Even if 99% of the code is in libraries that other people wrote, I am still the orchestrator, the one putting it all together.

Deep Knowledge that Lasts

Once you learn how to solve a problem using code, as opposed to a graphical user interface (that may change next year), that knowledge will be useful to you for as long as you keep coding.

When is the next version of Engine X coming out? Will all the knowledge you gathered about it and its quirk become worthless? Will you have to re-learn how to do things you've already done for years at this point?

As far as reasons go, this is a big one for me. I don't want to re-learn how to bicycle for every new bicycle I get, I want to keep getting better at bicycling!

Though, you will surely earn some long-lasting knowledge using Unity (and others) as well. Some of us may just be more sensitive about having stuff thrown at us because of perceived random decisions made at some company.

It is Interesting

There are people out there who are passionate about technology, programming, math and engines as well as games, and they want to understand the matter deeply. Making games from scratch in order to gain knowledge and experience, or to satisfy curiosity, may not be the fastest way to make games. People have different goals.

Conclusion

So there you have it. Hopefully I've convinced you that, while there sure are some cocky programmers, there are plenty of other reasons why people choose custom engines. There are of course many other reasons that I haven't mentions as well, many of which are probably very dumb, and other good, and other just very personal.


Thank you for reading!




End of page.  TopHome