Programming languages can either be compiled or interpreted;compiled languages are programs that are fully translated from source code toobject code, for the target system to read in its specific language given tothe processor and OS. On the other hand, interpreted languages are interpretedby the system line by line by another program – the interpreter which is oftenspecialised for a certain computer. To interpret the language means totranslate it to the system’s equivalent of that language, it could also be doneby converting the program into a transitional code that can then be interpretedto the system’s specific language by the interpreter. It depends on thepurpose of a program for whether compiled or interpreted is better, but each hasgeneral advantages/disadvantages that do not change.
Compiled languages aremuch faster due to the not having every line of code individually interpretedwhen the program is booted or while running, but instead read directly by thecomputer. However, versions that are not compiled can be ported to many differentsystems as interpreters will make the program usable while compilers are a lotmore difficult to develop. C++ is a common compiled language, many game engines such asCryEngine, Blender, and Unity are built in C++ as powerful object-oriented programming (OOP) language. An OOPlanguage differs from procedural oriented programming (POP) in several ways –OOP has sections called objects that hold functions and data, this allowsobjects to be modified much easier than in POP, where the code just followsprocedures (instructions that follow a specific order of statements). As inprocedural languages, when new functions are added many modules will probablyneed to be changed – while object languages can add objects without changes asthey can inherit data/functions due to objects already created.
The build language of a game engine is responsible for thecore game mechanics including a rendering engine for 3D animated graphics,physics engine to give a game its own laws of physics (otherwise known as collisiondetection), artificial intelligence to generate realistic acting NPCs thatreact to player’s actions, an audio engine, and many more components that makeup a video game. This is supported by scripting languages such as Python orJavaScript that allow developers to implement visual game features/additionsthat do not change how a game runs so even if there are glitches and errorsthen it will only make the new addition bugged as the game’s code and the gameengine’s code are separated. The scripting language for the engine also doesnot have to be compiled, so it is quickerto develop but without affecting the performance. 3D modelling software, used for many purposes such asproduct design, TV/film, animation, architecture, education, and video games,has a few features of game engines as well. The rendering engine withinsoftware like Autodesk Maya or 3DS Max is the software that allows the modelsand their textures, materials, and colours to be rendered into images,animations, and game models. The process cantake some time depending on the number of polygons/triangles, effects,and any tools used in the creation of the model—it also depends on CPU/GPUprocessing power. 3D software may also have their own scripting language, as3DS Max has MAXScript, which provide the option for scripting for the samefunctions as the GUI has but as simplified and faster alternatives to speed upa task that the user will probablyrepeat.