Game Development Tool
A game development tool is a specialized software application that assists or facilitates the making of a computer or video game. Some tasks handled by tools include the conversion of assets (such as 3D models, textures, etc.) into formats required by the game, level editing and script compilation.
Almost all game development tools are developed by the developer custom for one game. Though tools may be re-used for later games, they almost always start out as a resource for a single game. While many COTS packages are used in the production of games—such as 3D packages like Maya and 3D Studio Max, graphic editors like Photoshop and IDEs like Microsoft Visual Studio—they are not considered solely game development tools since they have uses beyond game development.
The game tools may or may not be released along with the final game, depending on what the tool is used for. For contemporary games, it is common to include at least level editors with games that require them.
History
Early in the history of the video game industry, game programming tools were non-existent. This wasn't a hindrance for the types of games that could be created at the time, however. While today a game like Pac-Man would most likely have levels generated with a level editor, in the industry's infancy, such levels were hard coded into the game's source code.
Images of the player's character were also hard-coded, being drawn, frame by frame, by source code commands. As soon as the more technologically advanced use of sprites became common, game development tools began to emerge, custom programmed by the programmer. Today, game development tools are still often programmed by members of the game development team by programmers, often whose sole job is to develop and maintain tools.
Use
Numerous tools can be used to assist in game development. Often developers use tools to convert 3D model formats and graphic image formats into custom formats (though, increasingly, importers and exporters handle these tasks). Level editors are used to create environments and other tools may be used to view assets before they are incorporated in the game. For a contemporary commercial game, a half dozen tools or more may be used to assist in the game creation process.
Game tools change very often during the development process. The look and facility of a tool from the beginning of a project to the end may change dramatically. Often features are added with very little testing to assist other developers as fast as possible. The use of a tool also changes so much that users may have difficulty operating it from one day to the next as late-added features change how it is to be used. Since facility is often the primary goal for tools, they may be very user-unfriendly, with little or no built-in help. For tools that are to be shipped with the game, often debugging and user-friendly features are done near the end of the development process.
Outside of the game development team during the game's creation, many tools would have little facility. Level editors, however, once entirely proprietary, have increasingly been included with the shipping game to allow users to create their own game scenarios. Some games, such as Firaxis' Civilization IV, are built with user modification in mind and include numerous tools for game customizing.
Implementation
Traditionally, game tools were developed in the language that the game itself was developed in. This makes sense since, early on, at least one programmer on the game was also developing the tools. Also, the tools could easily access and use libraries that the game used.
Increasingly, though certainly not universally, games that are implemented in C++ use tools developed in C#. This is because C# is an extremely RAD language and tools, which are often needed posthaste, can be developed extremely quickly. The use of C# is most popular with games developed for Microsoft Windows and the Xbox.