Game Programmer - Languages and Tools

Languages and Tools

This section does not cite any references or sources.


Most commercial computer and video games are written primarily in C++, C, and some assembly language. Many games, especially those with complex interactive gameplay mechanics, tax hardware to its limit. As such, highly optimized code is required for these games to run at an acceptable frame rate. Because of this, compiled code is typically used for performance-critical components, such as visual rendering and physics calculations. Almost all PC games also use either the DirectX or OpenGL APIs (or SDL) to interface with hardware devices.

Various script languages, like Ruby, Lua and Python, are also used for the generation of content such as artwork and especially AI. Scripts are generally parsed at load time (when the game or level is loaded into main memory) and then executed at runtime (via logic branches or other such mechanisms). They are generally not executed by an interpreter, which would result in much slower execution. Scripts tend to be used selectively, often for content design and high-level game logic. Some games are designed with high depedency on scripts and some scripts are compiled to binary format before game execution. In the optimization phase of development, some script functions will often be rewritten in a compiled language.

Java is used for many web browser based games because it is cross-platform, does not usually require installation by the user, and poses fewer security risks, compared to a downloaded executable program. Java is also the dominant language for mobile phone based games. Adobe Flash is also a popular development tool for browser-based games using the ActionScript language.

As games have grown in size and complexity, middleware is becoming increasingly popular with the industry. Middleware provides greater and higher level functionality and larger feature sets than the standard lower level APIs such as DirectX and OpenGL, such as skeletal animation. In addition to providing more complex technologies, some middleware also makes reasonable attempts to be platform independent, making common conversions from, for example, PC to PS2 much easier. Essentially, middleware is aimed at cutting out as much of the redundancy in the development cycle as possible (for example, writing new animation systems for each game a studio produces), allowing programmers to focus on new content.

Other tools are also essential to game developers: 2D and 3D packages (for example Blender, GIMP, Photoshop, Maya or 3D Studio Max) enable programmers to view and modify assets generated by artists or other production personnel. Source control systems keep source code safe, secure and optimize merging. IDEs with debuggers (such as Visual Studio) make writing code and tracking down bugs a less painful experience.

See also: Game development tool and Tools from game programming

Read more about this topic:  Game Programmer

Famous quotes containing the words languages and/or tools:

    I am always sorry when any language is lost, because languages are the pedigree of nations.
    Samuel Johnson (1709–1784)

    Think of the tools in a tool-box: there is a hammer, pliers, a saw, a screwdriver, a rule, a glue-pot, nails and screws.—The function of words are as diverse as the functions of these objects.
    Ludwig Wittgenstein (1889–1951)