Game development tools, frameworks and engines
Previously, I described the various components of a game and how they are connected to each other intricately. In this post, I’ll be talking about software which can be used to make life easier when getting into development of games.
I mentioned three kinds of them in the title of this post. While frameworks and engines are terms commonly mixed up, there is however a clear distinction between the two. Lets look at a quick brief about them.
They are basically individual pieces of software that can be used to work with the artifacts associated with the game. Any game will have a whole array of associated assets, like artwork (sprites, backgrounds, images), audio (sounds effects, music), application code and so on. It is left to the developer to integrate the end result of these tools into a single working package, which is the actual game.
This is re-usable software code, that allows you to take care of the basic mechanics of the game, like handling input, interface with hardware, manipulate graphics and audio and so on. Perhaps another, more suitable term for this would be a game development library. Every game naturally needs specific code to handle these aspects and this is where these frameworks can save a LOT of time and enable you to focus on the more important aspects like improving game logic and making the game play more engaging, instead of trying to reinvent the wheel.
These are the big guys. They essentially combine the convenience of individual tools and the power of frameworks to deliver a unified game development platform. While the learning curve for some of the engines is a bit steep, its totally worth it if you are persistent (just like with anything good in life). Do keep in mind, that most game engines are geared towards development of specific kinds/genres of games. While it is possible to build whatever you want, the full functionality of the engine may probably not be utilized to the extent possible.
Understanding these concepts is an essential step in beginning your game development journey, as it serves as a foundation on which more complex ideas can be developed.