Technical Issues:Graphics • A discussion of modern video games is incomplete without mention of graphics technology. • Some game developers focus on these issues to such an extent that others suffer as a result. • Good visual effects can make a good game great, but they will not make a game good. • Nevertheless, they have become an important part of modern video games.
Technical Issues:Graphics Screen shot from Unreal Tournament 2003. This game is known for great graphics in its visual effects. It is hard to imagine what itwould be like without them.
Graphics Requirements for Video Games • In essence, graphics are used to provide the representation element of a video game. • Before such visuals, representation was provided by textual descriptions and a healthy dose of player imagination. • In these cases, good storytelling allowed the player to create their own visuals in their heads.
Graphics Requirements for Video Games Screen shot from the original Zork (left) and Return to Zork (right), one of theearly PC CD-ROM games. In the opening sequence of Return to Zork, we finally get to visualize the original white house. It was definitely a totally different gaming experience from the original.
Graphics Requirements: Immersing the Player • Good game visuals are important to both drawing a player into a game and keeping them there. • The player should be continuously bathed in a stream of attractive and fitting graphical effects. • Visual effects are not the only way to immerse a player, but poor visuals can prevent a player from being drawn in.
Graphics Requirements: Immersing the Player Screen shot from Rune. The stunning visuals in this game go a long way towards immersing the player. You can easily lose hours in a gameworld like this!
Graphics Requirements: Support Storytelling • Graphics contribute to storytelling aspects of a video game in a variety of ways. • Introducing and developing characters, and conveying their physical, emotional, and mental state. • Establishing the setting of the various levels and locales within a game. • Establishing the general atmosphere, tone, and mood of a game.
Graphics Requirements: Support Storytelling Screen shot from the Legend of Zelda: The Ocarina of Time. Visuals such asthis one from the introduction establish setting and a foreboding mood. Therepresentation of Ganondorf clearly casts him as the game’s villain.
Graphics Requirements:Providing Feedback • The graphics used in a game should provide good feedback to the user. • Every user action should result in some kind of visual feedback. • This feedback should provide useful information to a player and indicate whether their actions were successful or not. (If not, they should also suggest corrections.) • Without good visual feedback, it is easier for players to get lost or frustrated.
Graphics Requirements:Providing Feedback Screen shot from Oni. Oni provides good visual feedback to the user. Everyaction has a visible result. Useful information is also conveyed; for example,the colour of an attack’s impact indicates an enemy’s remaining health.
Graphics Requirements:Be Consistent • To support immersion, it is important to be consistent in game visuals. • Nothing jolts you out of immersion quicker than something that is visually out of place. • If something is represented in a certain way, make sure it is always done this way. • Use the same models, same textures, same bitmaps, same colour schemes, and so on. • If something is suddenly done differently, a good reason should be provided. Otherwise, it appears inconsistent.
Graphics Requirements:Be Consistent Screen shot from Die Hard: Nakatomi Plaza. The graphics are decent, butthere is an extraordinary lack of variety in opponents. You shoot someone,round the corner, and there he is again … such consistency is inconsistent!
Graphics Requirements:Provide a Good Viewpoint • It is critically important to visually present the player with a view of the game that makes the game easier to play. • Viewpoints that make the action difficult to follow make a game frustrating and hard to play. • Whenever possible, allow the user to have control over how they will view the game. • If you find, however, that they constantly need to adjust their viewpoint, this is an indication of potential trouble.
Graphics Requirements:Provide a Good Viewpoint Screen shot from Splinter Cell. A very impressive game, but some people find they spend as much time moving the viewpoint as moving their character.
Graphics Requirements:Allow Tuning • It is important to be as flexible as possible with the graphics used in your game. • Some users will want to maximize the resolution, details, lighting effects, and so to provide the most stunning visuals possible. • Others will lack the hardware to do so, or prefer a smoother and quicker game over one that is better looking, but slower. • The more you allow the user to tune the visuals provided by the game, the better.
Graphics Requirements:Allow Tuning Screen shot from Unreal Tournament 2003. There are a lot of graphics features that can be tuned by the user, both interms of basic display options, and details as well.
Graphics Requirements:Make an Impact • Basically, you want the player to say “Wow! That looks amazing!” • You want to catch the player’s attention, and get them interested in the game to see more. • Once they are hooked, your game’s immersion will keep them that way. • You want your graphics to be stunning and memorable.
Graphics Requirements:Make an Impact Screen shot from Halo. The stunning visuals in this game can make ahuge impact. With scenes like this, you just want to sit back anddrink it all in.
Graphics Requirements:One Last Note • It is important to point out that things such as “realism” are not part of the requirements of graphics for video games. • In some games and game genres, this can be very important. • Sometimes, however, other styles of visual representation are more fitting and result in a better overall game.
Graphics Requirements:One Last Note Screen shot from Jet Set Radio Future. With its cartoon-style cel-shading, there is a very definite look and feel to the game. It would be hard toimagine the game any differently.
Graphics Techniques • Producing graphics for video games is typically composed of three stages: • Modeling • Rendering • Display • Each stage is important to producing good visual effects for a game.
Modeling Techniques • Modeling for graphics in video games involves providing some kind of description of the various objects, characters, and parts of levels in a game. • These descriptions define the general look and feel for a game. • These descriptions tend to be formal or otherwise mathematically rigorous. • By providing such a description, rendering can more easily occur in the next stage.
Modeling Techniques • Depending on the kind of game being developed, the target platform, and resources available, there are several general techniques. • Two dimensional modeling. • Three dimensional modeling. • Fractal modeling. • Some combination of the above.
Two Dimensional Modeling • Most early games used graphics that were totally two dimensional. • This was the easiest and cheapest method given the technology at the time. • Most modern games use three dimensional modeling, but some still use two dimensional modeling instead. • All of the past two generations of consoles had three dimensional support in hardware. • Most home computers now have this hardware acceleration technology as well.
Two Dimensional Modeling Screen shots from Pac-Man (left) and Donkey Kong (right). Both made use oftwo dimensional graphics, like most early video games.
Two Dimensional Modeling • Graphics in two dimensional games are composed of bitmaps. • Each bitmap is essentially a two dimensional array of pixels that, when rendered to the screen, produce an image. • Each character, object, and piece of a level is composed of such a bitmap. • Each bitmap has an associated palette or colour map that lists the colours used by pixels in the image. • Palettes can be either shared or private.
Two Dimensional Modeling • The term “sprite” is used to refer to a bitmapped object with transparency areas. • Transparency is typically provided either by using a mask or by designating a particular bitmap colour to be transparent. • This allows bitmaps to be non-rectangular and lets the background show through. • Typically, game characters and the objects they interact with are sprites.
Two Dimensional Modeling Bitmap of Mario from Donkey Kong. Mario was composed of pixels of three colours. Mario was also a sprite in the game … the black area aroundMario in the above picture was transparent in the game.
Two Dimensional Modeling • Two dimensional modeling has its pluses: • Relatively cheap and easy to use. • Good for beginning developers. • Collision detection is relatively simple: a matter of detecting overlapping bitmaps. • Animation is also fairly simple: cycle through multiple bitmaps for the same object. • It also has its drawbacks: • Realism and certain effects can be hard to achieve. • With the advent of three dimensional modeling, many people believe only two dimensions is archaic.
Two Dimensional Modeling Screen shot from Metal Slug. All four games from the Metal Slug series, published from 1996 to 2000, have been two dimensional games. All are stillquite popular, even though they appear more cartoonish than realistic.
Three Dimensional Modeling • Three dimensional modeling in video games is quickly growing in popularity. • Hardware support in consoles and computers is now quite common. • Features and performance allow for better visuals in games at little cost. • Software support for developers is improving, making this approach easier. • This form of modeling, however, has been around in some form since 1980.
Three Dimensional Modeling Screen shots from Battlezone (left) and I, Robot (right). In 1980, Battlezonebecame one of the first three dimensional games, albeit in wireframe only.In 1983, I, Robot became the first video game to use three dimensionalfilled polygons, instead of just a wireframe mesh.
Three Dimensional Modeling • There are many three dimensional modeling techniques used in the video game industry. • These include: • Polygonal modeling. • Bicubic parametric patches. • Constructive solid geometry. • Spatial subdivision techniques. • Implicit representation.
Polygonal Modeling • This is currently the most popular approach to modeling in games. • In this approach, objects are represented by a mesh of planar polygons. • The accuracy of the representation is limited only by the number of polygons used in constructing the mesh. • Continuity between polygons can be achieved through proper shading of the polygons. This provides a smooth surface with no visible breaks or lines.
Polygonal Modeling Polygonal model from Oni. This model shows a wireframe representation of the main character Konoko.
Polygonal Modeling • Achieving very high accuracy with polygons alone can be quite costly. • Creating models with high polygon counts can be time consuming and expensive. • Pushing the high number of polygons out to video hardware can be resource intensive. • To increase accuracy without increasing the polygon count, textures are mapped on to the polygons in models. • When this applies to characters, this process is sometimes referred to as “skinning”.
Polygonal Modeling Model from Heretic II. On the left is a wireframe version of the model; on the right is the skinned version.
Polygonal Modeling • Polygonal modeling has several benefits: • Realistic models are reasonably simple to construct. • Hardware acceleration for this approach is good. • Software tool support is also quite good. • It also has some drawbacks: • Non trivial for beginner developers. • Collision detection and animation become more complex and more difficult. • Frequently a lot of waste. When viewing objects from a distance, you can be using thousands of polygons to model a handful of pixels on the screen.
Bicubic Parametric Patches • The representation in this case is similar to a polygon mesh, except that the individual polygons are now curved surfaces called patches. • Each patch is specified by a mathematical formula giving its position and shape. • The shape or curvature of each patch can be changed by tuning the mathematical specification. This allows for interesting interactive possibilities. • There are several approaches to doing this, including Bezier curves, B-spline curves, and many more.
Bicubic Parametric Patches The Utah Teapot represented by bicubic parametric patches. Part a)depicts a single shaded patch. Part b) depicts the patch edges. Part c)depicts a wireframe of the control points of the mesh.
Bicubic Parametric Patches • Bicubic patches can require fewer resources to provide an equivalent representation to a polygonal mesh. • The Utah Teapot on the previous slide requires only 32 patches; a comparable polygonal mesh would require roughly 2048 polygons instead. • Bicubic parametric patches have problems, however. • Some problems in maintaining smoothness. • More complex and more difficult to work with. • Less hardware and software support.
Constructive Solid Geometry • This is an exact representation of objects to within certain rigid shape limits. • Many manufactured objects can be represented by some combination of elementary shapes or geometric primitives. • Constructive solid geometry usually works with the following: • Primitive volumes: spheres, cones, cylinders, prisms (rectangular and triangular), and so on. • Basic operators: Boolean set operators (union, intersection, difference, and so on), and a variety of linear transformations.
Constructive Solid Geometry Example of constructive solidgeometry. By using union, differenceand intersection operators inparts a), b), and c) respectively, complex objects can be modeledaccurately and precisely.
Constructive Solid Geometry • Advantages of constructive solid geometry: • Good for describing manufactured objects. • Works best with a rich set of primitives. • Moderately intuitive and easy to understand. • Disadvantages of constructive solid geometry: • Some objects may be difficult to describe. • We are limited by the set of primitives and operators that apply to them.
Spatial Subdivision Techniques • In this approach, the game world object space is divided into elementary cubes, known as voxels, and each voxel is labeled as empty or containing part of an object. • This is the three dimensional analog of representing a two dimensional object as a collection of pixels in a bitmap. • In three dimensions, we are representing the space occupied by an object, not just its surface. • There are many different ways of carrying out this division.
Spatial Subdivision Techniques: Octrees • An octree is a data structure formed by repeatedly dividing a cubic region of the object space into 8 smaller subcubes. • Each subcube is a child node of the parent cube node in the tree data structure. • This process is repeated until the subcubes are of an appropriate size to accurately represent the desired object.
Spatial Subdivision Techniques: Octrees An octree showing the parent cube, and its 8 subcubes.
Spatial Subdivision Techniques: BSP Trees • A Binary Space Partitioning Tree, or BSP tree, partitions the game world object space into two parts by using a splitting plane. • Each partition results in two children nodes in a BSP tree under the parent space node. • A BSP tree can be used to represent an octree, but it is much more flexible. • Partitions do not have to divide the space equally, and they only need to divide the space where needed. They can also divide space at arbitrary orientations.
Spatial Subdivision Techniques: BSP Trees Screen shot from Quake II. Many games, including the Quake series use BSP trees for representing elements of game levels.