July 19, 2016 Leave a comment
The State of the Industry
One of the most alluring aspects of software development is the creation of one’s own game or a utility to support a game genre. Many software developers whether they are hobbyists or professionals have investigated at some point during their tenure as developers the possibility of writing a game that they may either sell or simply enjoy on their own. I have been one of those professionals who was bitten by this “bug” many years ago and since then have investigated just about every aspect of game programming I could come across. However, in the end of each research foray I always returned to the development of turn-based strategic games as a result of my deep interest in military history and the fact that I was a fan of such games years ago when they were still played on printed map boards with cardboard counters.
Through all of these years, game development has steadfastly remained a “Dark Art” in the software development industry whether it was done on an individual basis or by a commercial company.
Whatever the interest, game programming, even today, still remains one of the most difficult types of programming one can attempt. For starters, a majority of the terminology you are used to dealing with in terms of business development, if that is how you have been trained, will be completely foreign to you and those aspects that will be familiar will play “second fiddle” to your core development endeavors. For example, the database aspects of game development take a relatively minor back-seat to the majority of the work required while such work is a major component in today’s business applications. Most database support required will be done with desktop databases such as SQLite unless you are part of a group that is developing a multiplayer game with an expected large degree of concurrency. In this case, you can expect to be using a more suitable database for such purposes.
Nonetheless, actual game development itself will require a good knowledge of graphics programming whether you use one of the foundational libraries such as DirectX or OpenGL or a higher level library that makes the use of the underlying libraries slightly easier to work with. The only difference here is that the properties and methods of the various classes have a slightly less arcane set of names but the overall difficulty is still there.
Other than a good foundation in graphics, game development will also require an understanding of a different type of event driven programming in that much of what you will design for a user interface for a game will require your own efforts to make the necessary events work properly. Modern event programming in business applications is a cakewalk in comparison.