Friday 10 June 2011

A Quick Overview of Basic Definitions

   On your journey, you may, and should indeed, encounter a variety of terms which are often used by game developers to reference certain fundamental and/or widely used concepts within video games. The majority of the terms listed here are related to visual game features, but I will do my best to also list terms from other areas of the development  process. Please note that this list is not exhaustive and may be updated in the future.

Antialiasing: This is a technique to conceal visible pixellation caused by the limited resolution of a monitor by essentially altering pixels to smooth edges and other visual crispness. This image effectively demonstrates what is meant.

Frames Per Second (FPS/framerate): This is the number of frames that are updated per second. As monitors create the illusion of movement by rapidly updating the image on the screen, the game needs to render a certain number of images (or frames) per second to create the impression of smooth movement. The framerate commonly used in films is 24 frames per second, which is also acceptable for games. However, an FPS of 60 would usually provide the best experience when gaming. It is greatly affected by the computing power of the system and the processing demand of the game, both factors which should be constantly considered throughout development.

Refresh rate: This is the actual image update rate of a monitor. It is not affected by the machine's performance, and acts as a barrier to the maximum fluidity of the visual experience. However, the vast majority of monitors have a refresh rate of 60 hertz or more, which is perhaps the maximum that the human eye is able to perceive. For this reason, it is often irrelevant, with the exception of the next point.

Vertical Synchronisation (vsync): If the game is running at an FPS that is higher than the monitor's refresh rate, certain vertical 'ripping' may occur as the monitor is sent more frames than it is able to display at a given time. Vertical synchronisation is a method to fix this problem, at a potential reduction of the framerate.

DirectX: This is a framework employed by the majority of Windows games to help with the processing of 2D and 3D information. Its greatest competitor is perhaps OpenGL, but DirectX is mainly used. The three major versions currently in use are DirectX 9, 10 and 11, 9 being currently the most popular one due to the limitations of game consoles and the lack of ground-breaking advancements in the other two versions.

Tessellation: A feature of gaming that mostly came with the introduction of DirectX 11, this is the dynamic increase and deformation of polygons on the surface of an object. A greyscale bumpmap may be used to determine this deformation, although other means also exist. A comparison between no such effect being applied, normal bump mapping and tessellation may be seen here.

Assets: This often refers to objects within the game, mainly 3D models.

Polygon/Triangle Count: As may have been mentioned earlier, game objects are normally composed of triangles, and the number of these triangles has a direct impact on the game's framerate. Modern systems can handle many hundreds of thousands polygons on screen at any given time, although they are an important consideration when creating assets.

rendering: This refers to the process of analysing 3D data and transferring it to a 2D image for display on a monitor. In games this is usually a performance-intensive task that essentially paints the image onto the screen, allowing for beautiful effects and realistic scenery to be conveyed.

Draw Calls: These can have a profound impact on a game's framerate, although it is not truly easy to define. It is affected by many factors such as the number of assets used, the repeated use of assets, the number of textures used and the number of lights, among others things. It essentially occurs when a block of data is sent to the GPU (or video card), and should always be considered when assets are created and implemented. Lights in Forward Rendering quickly increase the number of draw calls, so few lights may be used. However, in Deferred Rendering, hundreds of lights may be used without having any major performance impact with only minimal disadvantages.

Culling: In many games, scenes contain far too many polygons to be rendered simultaneously without reducing performance and causing the FPS to drop dramatically. For this reason it is often necessary to conceal parts of a scene while displaying the other parts. For example, if a player stands near a tall wall, all of the scenery behind that wall should ideally disappear to maximise performance. This is often done by simply hiding objects that can not be seen, and creating areas which can only be viewed essentially one a time unless in transition between two such areas. Per-polygon culling can also be used, although nowadays it is normally restricted to only certain objects (such as terrains) given its intensive CPU usage.

3 comments:

  1. Thank video games. I like your blog
    Friv 6

    ReplyDelete
  2. Hi Draknghar,

    I find the work and effort put into the making of video games really interesting, so I enjoyed reading this. Especially now, when game developers can do so much with graphics and animation and can almost make it look life-like. I think it would be amazing to be apart of that process.

    ReplyDelete