I did some thinking the other day and today I decided to write about game engines as I am working on a game at work. I prefer game engines using a programming language that I’m familiar with. However, I have had to be wary of solutions that make game engine A written in programming language X work with my favorite programming language Y. In my experience, those wrappers are quite often awkward to use, and may still require proficiency in X. If you do have to learn a new programming language, I prefer the one that’s easier to learn, not the one that’s faster.
Because even if you use the potentially faster language, you will only be able to start leveraging that performance advantage after you have completed several projects. Potentially faster programming languages tend to make it a whole lot easier for new developers to waste a lot of performance while struggling to make things work in the first place. From experience, you should also prefer to use the language that’s native for the operating system or platform, because there’ll be a lot more help for it. For example when I started writing code for Android at work I decided that learning more advanced Java will be helpful in the long run as it is the platform’s native language.
Even though using either C or C++ would have been possible, and faster, and I had a lot of experience with both. Lastly, when given the choice between game engines where none of them uses a language you’re familiar with, you may want to go with the game engine using a scripting language. Prefer game engines which have good documentation for at least the major features. It takes you 5 minutes to click through the links and skim the docs to get an impression of what’s actually documented and how well it is documented.
As you all know, there’s also the type of documentation that was written to lure developers in. So make sure the documentation has depth, and not just wonderfully crafted beginner’s tutorials which only cover the basics. This is particularly important if the game engine has a free and a commercial version. The free version’s documentation may either be limited, or describe features only available in the commercial version, or tries to up sell the commercial version in other ways.
One sure way to know if a game engine is well documented is to figure out if there’s a book about the game engine available which is less than one year old. Hope this article helps some people with some things I was thinking about in relation to game dev.