It has been a while since I wrote my last entry. The truth is I have been very busy with life and also working on the next game. In fact, I was about to put out a topic talking about the next title, but I have noticed a very interesting subject being talked about all over Twitter the past two days, which involves the shaming of pre-made game engines (Mainly the Unity game engine). So I thought this would be an interesting opportunity to discuss this topic and leave the other entry for next week.
This topic is rather deep yet I’m not sure why this issue even exists nor am I sure how we got here to begin with. But there are people out there who have the idea that certain games suck because they’re made with a specific game engine, and this conclusion is often reached without even playing the game, which in itself is rather puzzling.
I’ve encountered two types of groups that illustrate this behavior. The first group are people who are not game developers, but rather the gamers themselves who don’t have the technical background. I’m not sure why these people even talk about game engines, when in reality the critique should be directed toward the game (After being played or viewed that is). Your constructive feedback as a fan is very important to developers to better video games in the future, but in order to hear you out, you need to play or watch the game being played in order to reach a proper conclusion. Glancing at what the game was made in and walking away giving an empty opinion does not help at all.
The second group of people that slam game engines tend to be those advanced programmers that prefer to do things from scratch. Which takes me back a few years ago when I dove into game development as a side hobby. Some of these programmers have said that using pre-made tools like Unity does not make you a game developer, only if you build your own engine from scratch. Being a programmer myself, I take a lot of pride in writing code and do enjoy it a lot, so I avoided Unity for a good year or so thanks to these guys (Not). I decided to pull some of my old OpenGL labs from college and use that as a starting point in order to write my own game engine. In very little time, I realized that what I was doing was not fun at all, because I was not building anything nor was I making any significant progress. Does that mean my skillset was not good enough? Perhaps, and I’m willing to accept that, but shaming these game engines did me no favors, if anything, it put me in a confusing state going around trying to find the perfect solution when there was none to begin with.
Luckily for me, I found this video by Alec Holowka, a successful Canadian indie game developer. He illustrated in that video what Unity can do, and best of all, he had to write quite a bit of C# code to get all that functionality in there. From that moment, I was sold on what Unity can do and have been using it ever since. Mind you I still tried other engines/frameworks, but I think the simplicity that Unity offers always pulls me back to it, and there’s absolutely nothing wrong with that. At the end of the day, it’s how good your game is, not the tool you’re using, and Unity is a great game engine that has proven itself, if you’re doubting its capability, just check out the list of games made in it, you’ll quickly realize that the engine is not at fault here.
So what can we get out of all of this? For the first group (The gamers), if you’re one of those that looks down on the engine without even knowing what the game is all about, please understand that this does not help. You as a gamer should care about the game experience, not the tools the game was made in. I understand that part of this backlash came from the flood gate of mediocre games made with Unity that got through Steam’s greenlight, I think this may explain why they’re removing greenlight in favor for Steam direct (Not 100% sure). But even if that’s the case, understand that the engine’s capability has nothing to do with this. I remember when people did not like games in the 90’s, no one talked about game engines, it was always about the games. I know we live in a different age, but please focus on the games, this mentality is not fair to actual good games made with Unity or any other engine that gets a similar treatment.
As for the elite veteran game developers who shame game engines, you need to realize that you guys are looked at as role models for beginners. I appreciate the advice if you say it would benefit me to learn how a game engine works, and believe me, some of you did that and I was able to spend some time making a basic pong game using nothing but OpenGL and C++. It was a great learning experience, but I was more interested in making actual games that I can release for others to play and enjoy, in which tools like Unity, Unreal, GameMaker, etc can give you a chance to do so.
At the end of the day, thankfully your average gamer does not care about how your game was made, they only care whether your game is good or not, so if you are able to make good games that perform well using a specific tool, stick to it and take advantage of your strengths. I do encourage programmers who want to get into game development to learn some of the basics of a game engine and how you can build a game from scratch, but this can be achieved as a learning experience without avoiding game engines down the line. The wonderful tools we have today can offer you a huge shortcut to dive into the indie gaming world. This is specially the case if the most enjoyable aspect of game development to you is gameplay programming (Which sometimes is called scripting).
If you do find yourself restricted by a specific game engine and you decide to move on to make your own thing for the sake of flexibility and freedom, that would be a very fair point. But please understand that there are others that can make it work within that workflow. If you give advice to beginners, please make sure that it’s a fair one that outlines the pros and cons of a certain tool. Telling someone they’re not true game developers unless they build their own engine is like telling someone they’re not a true programmer unless they make their own IDE and compile their code with a compiler they built themselves, which of course would be an absurd thing to say.
There you have it, my two cents on the topic, now back to more important things, until next time 🙂