The History of Computer Gaming Osama Mazahir



Download 93.52 Kb.
Page7/7
Date20.10.2016
Size93.52 Kb.
#6914
1   2   3   4   5   6   7

5.3.GPU Advances and History


The key driver to the development and optimization of computer games was based on advances in the GPU through the decades. The following will discuss the history of the GPU and how they influenced game development and the user experience. Also included will be examples of games that were instrumental in utilizing these specific advances.

5.3.1.1980s


It was only until the late 1970s and early 1980s that GPUs were used for computer gaming. GPUs designed during this period were generally monolithic in design and had limited features. Blitting support was minimal and could run several operations in a display list. These processors could also use direct memory access to reduce the load on the main processor. Examples are the ANTIC co-processor used in the Atari 800 and Atari 5200.
Later in the decade, high-speed, general-purpose microprocessors became popular for implementing high-end GPUs. The Commodore Amiga was the first mass-market computer to include a specialized blitter in its video hardware. IBM's 8514 graphics system was one of the first PC video cards to implement 2D primitives in hardware. It had a full video accelerator and basically offloaded video functions to hardware instead of software.
There were a few applications that used digital signal processors on GPUs for 3D support, such as Atari Games' Hard Drivin'. Hard Drivin’ was an arcade game that allowed players to test drive a high-powered sports car on a stunt course. The game used 3D support on the GPU and was one of the first games to do this. This game used polygons to simulate the racing course which was only possible and performant using the GPU.

5.3.2.1990s


In 1991, S3 Graphics introduced the first single-chip 2D accelerator, the S3 86C911. By 1995, all major PC graphics chip makers had added 2D acceleration support to their chips. By this time, Windows accelerators had surpassed expensive general-purpose graphics coprocessors in Windows performance, and these coprocessors faded away from the PC market.
Throughout the 1990s, 2D GUI acceleration continued to evolve. As manufacturing capabilities improved, so did the level of integration of graphics chips. In the early and mid-1990s, real-time 3D graphics were becoming increasingly common in computer and console games and subsequently led to an increase in demand for hardware-accelerated 3D graphics. Examples of such 3D graphics hardware can be found in video game consoles such as PlayStation and Nintendo 64. There were some failures as well for low cost 3D chips such as the ATI Rage and Matrox Mystique which were 2D accelerators with 3D features ‘bolted’ on.
During this period, DirectX became one of the leading 3D graphics programming interface (discussed in a later section), 3D accelerators took off in terms of features and performance. Direct3D 7.0 introduced support for hardware-accelerated transform and lighting and 3D accelerators moved beyond of being just simple rasterizers to add another significant hardware stage to the 3D rendering pipeline. The nVidia GeForce 256 was the first card on the market with this capability. Hardware transform and lighting set the precedent for later pixel shader and vertex shader units which were far more flexible and programmable than their predecessors.
Doom was released in 1994 and was a revolutionary game in terms of first-person shooters. The Doom engine used full texture mapping and varying light levels. It use of 3D accelerators was apparent in the performance of the game. Apparently this game was thought to be installed on more machines than Windows 95 and was hugely popular in part due to its intelligent use of the 3D accelerator which allowed for a lot of detail and smooth movement of the characters in the game.
Another popular game, Myst, was released in 1993 and was an adventure, puzzle-solving game. It used StrataVision 3D which was a comprehensive 3D computer graphics software package by Strata. Features include primitives-based modeling with texturising, keyframe animation, and raytracing . By using 3D graphics via StrataVision, the developers of Myst created an engaging and realistic environment for the user to navigate through. This games was revolutionary in its use of graphics and plot and was the best-selling games of all time until the release of The Sims in the late 1990’s.

5.3.3.2000s


This decade marked the dominance of DirectX and OpenGL as the dominant players of graphics programming apis. GPUs now have added programmable shading to their capabilities. The GeForce 3 and the ATI Radeon 9700 were the first cards to surpass the processing power of CPUs. Each pixel could now be processed by a short program that could include additional image textures as inputs, and each geometric vertex could likewise be processed by a short program before it was projected onto the screen. Pixel and vertex shaders could now implement looping and floating point math, and were quickly becoming as flexible as CPUs.
This period is also considered the era of major advances in console game systems such as Sony PlayStation 3 (released recently), the Nintendo Wii and the Xbox360. These are custom built machines designed to focus solely on game performance and are stripped down to a barebones system that have minimal functionality for their filesystem and networking stack. The PlayStation 3 (PS 3) GPU is the based on the NVIDIA G70 architecture, which focuses on maximizing per-pixel computation in favor of raw pixel output. The GPU makes use of 256 MiB GDDR3 VRAM clocked at 700 MHz. Given this raw power, the PS3 can render high-definition graphics which is major win for the customer experience with HD TVs. Noteworthy games that make extensive use of the GPU processing power include Half Life 2 and Call of Duty 3.
The PS3’s main competitor is the Xbox360 which features uses a chip designed by ATI called Xenos. Xenos contains 48 unified shader units, which are capable of both vertex and pixel shading operations. This is in contrast to older graphics processor designs which utilize separate specialized units for these tasks. The GPU package contains two separate silicon dies (rectangular slice of the silicon wafer), each on a 90 nm chip with a clock speed of 500 MHz. The Xenos can do z-buffering and alpha blending with no appreciable performance penalty on the GPU. The GPU also houses additional capabilities typically separated into a motherboard chipset in PC systems. The Xenos is so powerful that a separate aluminium heat sink is required implemented to cool the GPU! Noteworthy games that make extensive use of the GPU processing power include Call of Duty 2 and Project Gotham Racing 4.
The Nintendo Wii released in April 2006 is another major contender. There was not much information available on its GPU capabilities, however, many user forums have contended that the graphics performance of this unit is not as performant as the Xbox 360 and the PS3.

5.3.4.Looking forward

The gameplaying experience has also moved in terms of how many graphics cards you have installed on your machine and how many monitors you have. ATI recently introduced Crossfire which allows a pair of video cards on a single computer. This greatly increased graphics performance and subsequently the game playing experience for most games. NVidia also recently released the SLI (Scalable Link Interface) which links two graphics cards to produce a single output. This roughly doubles the graphics throughput for a given computer and is also a major performance gain for the discerning gamer. Both technologies are still new enough to not have much performance and user data on them, but these and quad card support is expected to become more widely adopted in the near future. Another major advantage of this is that it easier to drive multiple monitors with a single machine and this has proved very popular with gamers who would like to play games like World of Warcraft spanning several monitors.


The future may also bring more parallel GPU experience where we have multi-core GPUs and more parallelism in rendering and performing graphics operations. These are mostly experimental in nature, but given the availability of dual and multi-core CPUs on the market, this is close to becoming a reality and should soon be available to the general public.

5.4.3D Graphics APIs


This section will discuss the graphics APIs developed in the 90’s which is when 3D gaming became popular and available to the gamer market. These APIs are central to game development and have directly affected the ‘gamer’ experience and complexity of games. While there have been many APIs released, the top two graphics APIs that have dominated the market are OpenGL and Direct3d (a subset of Direct X).

5.4.1.Open GL


Developed by Silicon Graphics (SGI), OpenGL is more of a specification that describes a set of functions to be implemented, which is similar to an abstract class or a set of interfaces that must be met. Hardware manufacturers implement libraries specific to their video cards which are then used by games developers to create games. The OpenGL specification is owned by the OpenGL Architecture Review Board (ARB), which was formed in 1992. This board includes 3D hardware manufacturers SGI, 3Dlabs, ATI Technologies, NVIDIA and Intel, and computer manufacturers IBM, Apple Computer, Dell, and Sun Microsystems. OpenGL is used primarily on the MacOS and Unix and has limited adoption by Windows.
Open GL is considered a low-level, procedural API which requires the programmer to determine the exact steps to render a scene for example. This is unlike Direct3D which provides the programmer more functionality in defining and rendering a scene. Open GL 1.0 evolved from SGI’s IrisGL programming APIs and was designed primarily for standardized access to hardware. This allowed for device drivers to all use the same interfaces and was a big win for game developers as well as increasing the quality of games. OpenGL 2.0 was created by 3D Labs and enabled the programmer to replace the vertex and fragment pipelines with shaders. This specification was quite ambitious in the features it supported and did not restrict itself to the current feature.
The latest version of OpenGL v2.1 was released on August, 2006. It includes some revisions and minor updates that did not differ much from v2.0. World of Warcraft using 2.1 and has started using multi-threaded functionality of OpenGL. This is specific for the Macintosh and apparently can double the performance of World of Warcraft. The Build engine used by Duke Nukem 3D games also uses OpenGL.
Many games in general can be implemented in OpenGL or Direct3D. However, note that this is also dependent on the OS for the target. In general Direct3D games have been more popular due to the market share of the Windows operating system and the new functionality available in the Direct3D 10 which was released in Windows Vista.

5.4.2.Direct3D

Direct3D is part of Microsoft's DirectX API and is only available for Microsoft's various Windows operating systems and is the base for the graphics API on the XBox and XBox 360 console systems. Direct3D uses hardware acceleration if it is available on the graphic board and has a rich set of libraries for 3D rendering. Direct3D also offers full vertex software emulation but no pixel software emulation for features not available in hardware, i.e. the hardware takes precedence in terms of feature availability.


Microsoft released the first version of Direct3D that shipped in DirectX 2.0 and DirectX 3.0. The first version of Direct3D immediate mode was based on an "execute buffer" programming model that Microsoft hoped hardware vendors would support directly. These buffers were intended to be allocated in hardware memory and parsed by the hardware in order to perform the 3D rendering. They were apparently awkward to program and hindered adoption of the new API. However, Microsoft did not adopt OpenGL as the 3D rendering API for games and chose to continue improving Direct3D. This was done to be competitive with OpenGL and to compete more effectively with proprietary APIs such as 3Dfx's Glide. There many more releases of Direct3D, the more noteworthy are discussed below.
Direct3D 7.0 introduced a new texture format (.dds) and added support for transform and lighting hardware acceleration, as well as the ability to allocate vertex buffers in hardware memory. Hardware vertex buffers represent the first substantive improvement over OpenGL in DirectX history.
Direct3D 8.0 introduced programmability in the form of vertex and pixel shaders, enabling developers to write code without worrying about superfluous hardware state. They wrote shaders to do simple tasks or more complicated shaders to do more complex tasks. The display driver then compiled these shaders to instructions that could be understood by the hardware. Direct3D 8.0 and its programmable shading capabilities were the first major departure from an OpenGL-style fixed-function architecture, where drawing is controlled by a complicated state machine. Direct3D 8 contained many powerful 3D graphics features, such as vertex shaders, pixel shaders, fog, bump mapping and texture mapping.
Direct3D 10.0 (included with Windows Vista), was the next major release and is considered to be one of the most dramatic in terms of features and performance. This release was defined to work on newer hardware that conforms to the WDDM driver model. This version contained many new features such as fully programmable pipelines and virtualization of the graphics hardware which allows multiple threads or processes to use it. Paging of graphics memory is another feature which allows data to be loaded to Video RAM when needed and move it out when not needed. This also enables usage of the system memory to hold graphics data, such as textures, thereby allowing use of more and higher resolution textures in games. Texture arrays enable swapping of textures in GPU without CPU intervention.
The majority of games in the game market have a Direct3D implementation many of which have been discussed in this section. These include the default games in the Windows Vista operating system, World of Warcraft, Half Life 2, Halo 2, etc.

5.4.3.Conclusion


Both OpenGL and Direct3D have their pros and cons. Direct3D has a wider adoption based on the market share of the Windows operating system. D3D is also more optimized for modern hardware and is supposed to be more efficient for the games programmer to create code faster. On the other hand, OpenGL gives the programmer more control in terms of direct access to graphic buffers and constructs allowing a higher level of control. The fact that the specification of Direct3D is owned by a large corporation has a substantial number of users against this API especially since OpenGL is controlled by a consortium of vendors and is considered more ‘open’. In terms of performance, statistics have shown that Direct3D 10 is more performant in terms of rendering 3D graphics than the latest release of OpenGL (2.1). However, benchmark tests are still not conclusive and are potentially more biased as these statistics were made available on a Microsoft website. In any case, it is likely that both standards will continue to thrive as both have generated many games for the gamer market and implementations in each API exist for many games to serve both the MacOS and Windows.


6.References


  1. http://en.wikipedia.org/wiki/History_of_video_games

  2. http://www.gamespot.com/gamespot/features/video/hov/index.html

  3. http://inventors.about.com/library/inventors/blcomputer_videogames.htm

  4. http://en.wikipedia.org/wiki/Tennis_for_Two

  5. http://en.wikipedia.org/wiki/OXO

  6. http://en.wikipedia.org/wiki/Spacewar

  7. http://en.wikipedia.org/wiki/Star_Trek_%28text_game%29

  8. http://en.wikipedia.org/wiki/Maze_War

  9. http://en.wikipedia.org/wiki/Air_Warrior

  10. http://en.wikipedia.org/wiki/Arcade_game

  11. http://www.islandnet.com/~kpolsson/vidgame/

  12. http://en.wikipedia.org/wiki/History_of_computer_and_video_games

  13. http://jwgibbs.cchem.berkeley.edu/nimrod/

  14. http://en.wikipedia.org/wiki/Nintendo

  15. http://www.nintendoland.com/home2.htm?history/index.htm

  16. http://www.nintendo.com/corp/history.jsp

  17. http://en.wikipedia.org/wiki/List_of_video_games_published_by_Nintendo

  18. http://inventors.about.com/library/weekly/aa090198.htm

  19. http://www.gamesfirst.com/articles/comp_future/pc_gaming.htm

  20. http://www.gamesinvestor.com/Thinkpieces/Next-gen_PC_market/next-gen_pc_market.html

  21. http://www.npd.com/press/releases/press_060117a.html

  22. http://www.npd.com/press/releases/press_040126a.htm

  23. http://gameinfowire.com/news.asp?nid=3815

  24. http://arstechnica.com/articles/paedia/gaming-evolution.ars/1

  25. http://en.wikipedia.org/wiki/Real-time_strategy

  26. http://www.ringsurf.com/info/Entertainment/Video_Games/Elements_of_Gaming/Evolution_of_the_Video_Game_Industry/

  27. http://en.wikipedia.org/wiki/

  28. http://www.opengl.org

  29. http://www.microsoft.com/windows/directx/default.mspx

  30. http://ai.eecs.umich.edu/soar/Classes/494/talks/

  31. http://www.nvidia.com/

  32. http://ati.amd.com/


Download 93.52 Kb.

Share with your friends:
1   2   3   4   5   6   7




The database is protected by copyright ©ininet.org 2024
send message

    Main page