Underlying Game Technology
Contents |
Software
Computer Graphics Technology
Electronic games have been known to be addictive due to their intense graphics that make gameplay experience even more realistic. While many games in the past could draw 2D graphics directly onto screen, modern games require significantly more complex, 3D rendering. In light of this, vendors have developed software libraries that provided higher-level functions to programmers while they handled the low-level mathematical calculations behind the scenes.
3D rendering
3D rendering is to convert 3D wire frame models into 2D images with 3D photorealistic effects on a computer. It is divided into real-time and non real-time rendering.
Real-time
Rendering for games and simulations is calculated and displayed in real time at rates of usually around 20 to 120 frames per second. In real-time rendering, the objective is to show as much information as possible as the eye can process in the duration of the animation. The aim here is primarily speed and not photo-realism. The ultimate aim is to make the images such that to our eyes they're just like the real thing. Rendering software may simulate such visual effects as lens flares, depth of field or motion blur to simulate what cameras and the human eye catches. These effects add realism to a scene and is the basic method employed in games and interactive worlds. The increase in computer specifications has allowed a progressively higher degree of realism even for real-time rendering, including techniques such as HDR rendering. Real-time rendering is often polygonal and aided by the computer's GPU.
Non Real-time (Copied from wiki entry for your knowledge, not really applied much for e-gaming) Animations for non-interactive media, such as feature films and video, are rendered much more slowly. Non-real time rendering enables the leveraging of limited processing power in order to obtain higher image quality. Rendering times for individual frames may vary from a few seconds to several days for complex scenes. Rendered frames are stored on a hard disk then can be transferred to other media such as motion picture film or optical disk. These frames are then displayed sequentially at high frame rates, typically 24, 25, or 30 frames per second, to achieve the illusion of movement.
The rendering process is computationally expensive, given the complex variety of physical processes being simulated. Computer processing power has increased rapidly over the years, allowing for a progressively higher degree of realistic rendering. Film studios that produce computer-generated animations typically make use of a render farm to generate images in a timely manner. However, falling hardware costs mean that it is entirely possible to create small amounts of 3D animation on a home computer system. The output of the renderer is often used as only one small part of a completed motion-picture scene. Many layers of material may be rendered separately and integrated into the final shot using compositing software.
Skeletal Animations
Skeletal animation or rigging, is a technique used in computer animation, often used in games to animate humans, in which a character is represented in two parts: The surface skin(texture) and the skeleton used to animate.
How this Technique is used can be visually imaged as a person or thing wearing the skeleton, which has co-ordinates and motion sensors that is used to send the movements for animation.
CGI
Computer-generated imagery (CGI) is the application of the field of 2D/3D computer graphics to special effects in video games that have pre-rendered "cut scenes" and intro movies. These are referred to as FMV.
CGI is used for visual effects because effects are more controllable then a real set or actor, also it is cost and space effective. Maya and Softimage XSI are examples of such programs used to make CGI for games. The ease of access to such software and the higher speed hardware now allows for normal users to create their own CGI with ease.
2D CGI was first used in movies in 1973's Westworld.
CEL-shading
Cel-shadeding is a type of non-photorealistic rendering created to make computer graphics appear to be hand-drawn. Cel-shading is often used to adopt the style of a comic book or cartoon.
It is a somewhat new in the area of computer graphics and most commonly used console video games. Often the end result of cel-shading has a very simplistic hand-drawn animation feel despite the process is complex. The name comes from the clear sheets of acetate, called cels, that are painted on for use in traditional 2D animation.
The first 3D video game to feature true real-time cel shading was Jet Set Radio (2000) for the Sega Dreamcast.
Multimedia Graphics Libraries
Microsoft DirectX
DirectX (Direct eXtension) is a digital graphics framework developed by Microsoft for handling multimedia tasks such as rendering, animation, shading, and simple graphical physics. The DirectX framework comprises numerous different components for the delegation of different tasks. While DirectX's main purpose was to assist game programmers by providing them with extensive application programming interfaces to the rendering of computer graphics, the framework itself evolved and grew to encompass an even wider set of interfaces. These now include:
- DirectDraw
- Direct3D
- DirectInput
- DirectSound
- DirectPlay
- DirectMusic
Microsoft first launched DirectX in 1995. It was then known as the Windows Games SDK (Software Development Kit). It was loved by developers, who saw it as a replacement for the more complicated OpenGL, which was targeted at the engineering industry.
DirectX is currently in its tenth revision, and there is no one unified solution to rival its breadth of functionality.
OpenGL
SGI introduced the OpenGL interface for engineering and scientific programming tasks in 1992. Since then, it has grown into the industry's leading multi-platform 2D and 3D graphics API and its following continues to grow each day.
The OpenGL interface is a programming environment for developing portable and interactive graphical applications. The OpenGL interface is a low-level and hardware neutral interface, and is often called the assembly language of graphics frameworks. OpenGL applications enjoy broad platform compatibility and is the most flexible and functional framework in the industry. Application publishers in markets such as Computer Aided Design (CAD), content creation, energy, entertainment, game development, manufacturing, medical, and virtual reality have benefited from the OpenGL's functional features.
However, OpenGL was designed to render graphics only and provides only rendering functionality. The core interface has no concept of windowing, sound capabilities, printing to a screen and input devices. This restrictive set of features actually increases OpenGL's ability to be effective in what is does: render quality graphics on a multitude of platforms.
Game Engine Technology
If we take a look at computer games with a functional view, it becomes apparent that most games have the same functions. For example, a First Person Shooter (FPS) game would involve moving around in a virtual space. No matter what the title of the game is, if it is a FPS, this basic requirement would hold true. Thus, developers began developing game engines that would encompass the basic functions of the game type. These engines were extensible and could be implemented into many different games. Game engines reduced the time to develop sequels of the same game, and in the process, made games publishers a lot of money.
Doom Engine
Doom (1993) and its sequel, Doom 2 (1995), were extremely popular FPS games that won numerous awards for its innovation in graphics and gameplay. It was based on the Doom Engine that was developed by John Carmack, with peripheral functions written by Mike Abrash, John Romero, Dave Taylor and Paul Radek. Although it was originally developed for NeXT computers, it was later ported to other platforms (and consoles).
The original Doom engine had limited support for the rendering of 3D graphics, and other than provided a neat programming interface for programmers to access lower-level functions, did little else.
The Doom 3 Engine, however, packed a bigger punch. Originally intended as an enhancement for the Quake III Engine, The Doom 3 Engine ended up with an almost complete re-write due to a decision to switch from the C to C++ programming language. Besides rendering, memory management and file access, the Doom 3 Engine includes new features that were previously absent. These included bump mapping, normal mapping and specular lighting. In essence, the Doom 3 Engine was ahead of its time in rendering realistic virtual environments. This caused many, at the time, to criticize the engine's hardware requirements as excessive.
Source Engine
The Source Engine is a true 3D game engine that was developed and released by Valve Corporation in 2004, when it was used to power the game Counter-Strike and Half-Life.
The engine's design included a large degree of modularity and flexibility that allowed digital artists to work more independently of the game's programmers. The engine also included features that would revolutionize the gaming landscape. Such features included:
- a fully network-enabled physics system that was both processor and bandwidth efficient
- full surround sound support
- facial expressions
- lip-sync technology that would automatically synchronize lip movements with audio sound
- multi-processor optimizations that resulted in faster processing on dual and quad-core computer systems
Enhancements were made to the engine to better support the Xbox and Xbox360 gaming consoles, and even though large, open landscapes with vast amounts of foliage were weaknesses of the original Source Engine, current and future versions have made these shortcomings a thing of the past, proving that this engine is here to stay in the foreseeable future.
Sound
To create an even more realistic gaming environment, sound had to be as real as the graphics that were displayed on screen. Although much of the Digital Signal Processing (DSP) for audio signals are still performed in the sound card, game developers prefer to work with a standard set of libraries rather than worry about the intricacies of each sound card. This led to the development of sound extensions and libraries that allowed programmers to easily produce complex sound effects with little code.
EAX
The Environmental Audio Extensions (EAX) were developed by Creative Labs as an extension for the DirectSound3D interface. Its widespread use can be attributed to its quick and easy implementation. Game developers simply had to choose a preset environment that best matched the environment depicted in their game, and the sound card would automatically use the appropriate Digital Signal Processing (DSP) filters to mimick that environment. Early implementations of EAX includes few features, with limited parameters for adjustment. The newer EAX Advanced HD (aka EAX 3), however, solved these problems by introducing more preset environments, and additional effects, including additions that allowed for the smooth transition between environment presets and audio occlusion (i.e. an obstacle between the player and sound source).
Dolby
Dolby Labs developed many advanced lossless sound encoding and decoding technologies. Originally used in cinemas, Dolby Labs broke into the computer gaming market by introducing Dolby Digital. Dolby Digital is the brand name for a series of audio compression technologies developed by Dolby Laboratories.
Dolby Digital, or AC-3, is the regular version that contains up to six discrete channels of sound, with five channels for normal-range speakers (Right front, Center, Left Front, Right Rear and Left Rear) and one channel for the subwoofer-driven low frequency effects. Dolby Digital supports mono and stereo formats as well.
Dolby Digital Live (DDL) is a technology to encode data for multimedia applications, such as video games, in real-time. It converts analog audio signals from a PC or game console into a 6-channel Dolby Digital format. The SoundStorm, used for the Xbox game console and certain PCs, used an early form of this technology. Dolby Digital Live is currently available in sound cards, as well as on motherboards with certain codecs from Realtek.
The Dolby Digital technology enables the use of digital multi-channel sound output that can be produced with consumer sound cards.
OpenAL
OpenAL (Open Audio Library) is a free software cross-platform audio API that was originally developed by Loki Software to facilitate their business of porting games to Linux. It was designed for efficient rendering of multi-channel 3D-positional audio. Its programming interface styles and conventions deliberately resemble that of OpenGL. After the Loki ceased operations, the project continued to be maintained for a while by the open source community. It is currently hosted and largely developed by Creative Technologies, with on-going support from Apple and open source enthusiasts.
OpenAL is loved by many, because of its intuitive functionality, that allows sounds to behave quite naturally as the user moves through the spatial realm of a virtual world. From a programmer's perspective, very little additional work is required to make this happen in an existing OpenGL-based 3D graphical application.
Games that utilize the OpenAL APIs include Quake, Doom, Unreal, America's Army and Battlefield 2.
DirectSound
DirectSound, and its DirectSound3D extensions, are components of the DirectX library. It provides a standardized interface for high-level applications to interface with sound card drivers. Besides low-level tasks like passing audio data from the application to the sound card, DirectSound also provides many needed capabilities such as recording and mixing sound, adding effects, using hardware buffers to enhance performance, positioning sounds in 3D spaces, capturing sounds from input sources and controlling capture effects during audio capture.
DirectSound provides applications with asynchronous simultaneous access to a single sound card. Is also features 3D sound output, and provides the ability for games to modify sound output in response to real-time game events (i.e. the beat of the music could quicken as the action heats up).
After many years of development, DirectSound has become a very mature API, and supplies many other useful capabilities, such as features that allow for high resolution, multi-channel sounds. While DirectSound was originally designed for games, many professional audio applications now take advantage of its numerous capabilities.
Emulation Technology
Emulation technology refers to an abstract layer of software (or hardware) that allows a program or a device to mimick and imitate another program or device. Game emulators allow game enthusiasts to continue playing games that were developed on now-obsolete hardware. For example, there are emulators that allow us to play the original Super Mario on our modern PCs.
Emulators work by introducing an emulation layer between the operating system and the game software. It mimicks the memory management methods and processor instructions of the intended system, which "tricks" the game into thinking it has been loaded onto its native system. This additional layer creates additional processing commands, though modern computers are able to process these commands without noticeable lag.
With emulation technology, popular games that were developed in the past can continue to be played and enjoyed for generations to come.
Network Technology for Multiplayer Gaming
While there are no dominant standards or libraries for developing multi-player games, many developers implement their own basic protocols that ride on top of the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP), each with its own benefits and shortfalls.
Whereas UDP is theoretically faster and consume less bandwidth than its TCP counterpart, it is a sessionless protocol that does not guarantee the delivery of data after they have left the sender. This causes games on unreliable networks to freeze, lag and skip frames, deteriorating the gaming experience. Some argue that due to the bandwidth-saving feature of its send-and-forget implementation, UDP allows faster buffering of virtual worlds, and data that is not received can be re-requested by the recipient.
Game Networking Engines are only in its nascent stages, and most currently only provide high-level interfaces to low-level functions. Future implementations, hopefully, will see the development of more robust engines that will be able to allow players with different versions of the same game to play concurrently, or to allow better player-to-player interaction, such as the transmission of hand gestures and body movements, or even to allow game play to continue in the event of unstable network connections.
It remains to be seen how technology will improve evolve as multi-player games continue to gain popularity.
Mobile Gaming Technology
Mobile games run on small, portable devices such as mobile phones and PDAs, on a myriad of platforms, including:
- Windows Mobile
- Palm OS
- Symbian OS
- DoCoMo's DoJa
- Sun's Java 2 Micro Edition (J2ME)
Because of the nature of mobile games, many such games trade sophisticated graphics for better and more interactive gameplay. Current mobile games provide a simple gameplay experience with little thrill. This is set to change in the near future, as mobile games begin to take advantage of a player's context (i.e. location and surroundings) to improve the gaming experience. While early games attempted to use Infrared (IR), Bluetooth and GPRS to emulate a multi-player environment, such games left much to be wanting. With the emergence of 3G and WiFi mobile standards, together with greater mobile processing power, mobile games that incorporate multi-user and location-specific features will drive the numbers of mobile gamers upwards.
3G
3G has been touted as a third-generation technology in the context of mobile phone standards. 3G services included video-voice telephony and broadband wireless data. Video telephone capabilities has often been suggested as the most innovative and useful application for 3G. An important feature of 3G is its ability to allow service operators to offer data and voice services to a larger number of concurrent consumers ! especially in urban centres ! as well as provide higher data rates at lower incremental cost than 2G.
J2ME
The Java Platform, Micro Edition is a specification of a subset of the original Java platform's features that is aimed at providing a collection of Java interfaces for the development of cross-platform mobile software, like mobile phones and PDAs. Adoption of the J2ME has slowed somewhat due to the performance limitations that comes with cross-platform functionality.
Hardware
Graphics Processing Units (GPUs)
A Graphics Processing Unit (GPU) is a dedicated graphics processing device for PCs, workstations, or game consoles. These GPUs are normally micro-processors within a graphics card or mounted directly on a motherboard. A GPU takes primitive programming instructions, renders them, and then outputs the results to a display device (normally a screen). GPUs significantly speed up the rendition of complex graphics due to their highly-tuned functions that are designed specifically for processing graphical calculations. Early GPUs had basic support for rastor animation in the form of sprites, but modern GPUs that come with today's graphics cards and game consoles have thousands of advanced capabilities to calculate shading, lighting, geometric vertices, textures and floating point mathematics. In addition, modern GPUs often include full support for DirectX or OpenGL (or both). While there may be hundreds of different brands for graphics cards, the actual design of the GPU often comes from one of two companies: ATI and NVidia.
Sound Cards
A sound card is an expansion card that can input and output sounds based on data provided by computer applications (or games). Many modern computer motherboards have onboard sound cards, while old models still require expansion cards if audio capability is required. A sound card normally includes a microchip which usually features a digital-to-analog converter (DAC), that converts recorded or generated digital waveforms of sound into an analog signal which is output through a speaker. It is this analog wave that vibrates a membrane within the speaker that produces the sound.
An important feature of any sound card is its polyphonic capabilities, which is the number of sounds (or voices) that can be played back simultaneously and independently, and the number of channels it can support (2.1, 5.1, etc).
One of the first manufacturers of sound cards for the IBM PC was AdLib, who produced a card based on the Yamaha YM3812 sound chip, aka the OPL2. Creative Labs also marketed a sound card at the same time called the Creative Music System, but it never really took off, even after Creative marketed it a year later through Radio Shack and re-branded it as "Game Blaster". Creative, however, managed to mark its place in history when it launched its famous Sound Blaster sound card. The Sound Blaster was, essentially, a clone of the features of the AdLib, but also added an additional sound processor to record and play digital audio, a game port for adding a joystick, and the ability to interface directly to MIDI equipment.
Physics Processing Units (PPUs)
A Physics Processing Unit (PPU) is a dedicated processor designed to handle complex and time-consuming mathematical calculations involved in the calculation of game physics. Examples of such calculations include rigid body dynamics, soft body dynamics, collision detection, fluid dynamics, hair and skin texture and clothing movement and flow simulation, finite element analysis, and fracturing of objects. The PPU will do the same that the graphics card did for games, but instead of adding processing power for graphics, it will perform physics-based calculations. This will relieve the workload that calculating physics puts on the processor, thus increasing response-time.
While current adoption of PPUs have been low, the technology continues to be developed and perhaps in the near future, the PPU will become as mainstream as a graphics card or sound card. When this happens, gameplay would be bumped up another notch. Imagine the amount of physics algorithms that would be needed to simulate a building collapsing, factoring where and what kind of explosion took place in it. With the advent of PPUs, these dreams may become a reality and bring on a whole new type of gaming experience.
Links and References
- [3D rendering]
- [Skeletal animation]
- [Computer animation]
- [CGI]
- [CEL-shading]
- PPUs on Video Cards
- Physics Processing Unit
- Graphics Processing Unit
- Sound Cards
- Sound Blaster
- MSDN - DirectX
- DirectX Overview
- DirectX Website
- OpenGL Website
- OpenGL Overview
- SGI's OpenGL Technology
- Doom Engine Overview
- List of Doom Engines
- Source Engine Overview
- SoundBlaster EAX Website
- EAX Overview
- EAX Technical Report
- Dolby Website
- Dolby Digital Overview
- OpenAL Website
- OpenAL Overview
- OpenAL Lessons
- DirectSound Overview
- MSDN - DirectSound
- Sun J2ME Website
- What is J2ME?
- 3G Overview
- What is 3G?







