gaming technologies craig peeper software architect windows graphics & gaming technologies...

36
Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

Upload: leonard-jennings

Post on 11-Jan-2016

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Gaming TechnologiesGaming Technologies

Craig PeeperSoftware ArchitectWindows Graphics & Gaming TechnologiesMicrosoft Corporation

Craig PeeperSoftware ArchitectWindows Graphics & Gaming TechnologiesMicrosoft Corporation

Page 2: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

OverviewOverview

Games Yesterday & Today

Game Components

PC Platform & WGF 2.0

Game Trends

Big Challenges in Game Creation

Summary

Games Yesterday & Today

Game Components

PC Platform & WGF 2.0

Game Trends

Big Challenges in Game Creation

Summary

Page 3: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Games Yesterday & TodayGames Yesterday & Today

Quake 2 - 1997

Far Cry - 2004

Prince of Persia - 1989

Age of Empires IIIMax Payne - 2001

Doom - 1993

Page 4: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Platform

Game ComponentsGame Components

Content + Engine

Page 5: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Content ComponentsContent Components

story

scripting

animationtexturing /surfacing

lighting

Content

as well as …

• user interface

modeling

effects

leveldesign

sound

visualtechnologies

Page 6: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Content CreationContent Creation

Tool driven

Combination of tools forms “Art Pipeline”

Character Pipeline3D Model/Sculpting

Animation/Rigging

Skinning

Texturing

Lighting/Shading

An artist often specializes on one part of pipeline

Tool driven

Combination of tools forms “Art Pipeline”

Character Pipeline3D Model/Sculpting

Animation/Rigging

Skinning

Texturing

Lighting/Shading

An artist often specializes on one part of pipeline

Page 7: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game Engine ComponentsGame Engine Components

AI

Physics

Audio

Graphics

Networking+

I/O

Engine as well as …

• installation

• patching

• resource management

• multithreading

• disk i/o

• state save/restore

Page 8: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game EnginesGame Engines

Studio chooses to build or buyQuake Source, Unreal enginesRenderware, Gamebryo middlewareOften come with great authoring tools (level editors, etc.)

Componentized softwareMay buy specialized components

How many people can write a physics engine?Video codecs, etc

Engine may be optimized for game genre/styleEngine bounds range of content

Global illumination, terrain, indoor scenes

Studio chooses to build or buyQuake Source, Unreal enginesRenderware, Gamebryo middlewareOften come with great authoring tools (level editors, etc.)

Componentized softwareMay buy specialized components

How many people can write a physics engine?Video codecs, etc

Engine may be optimized for game genre/styleEngine bounds range of content

Global illumination, terrain, indoor scenes

Page 9: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game Platform ComponentsGame Platform Components

CPU+

Memory

Storage

Audio

Graphics

Networking+

Input

SW + HWPlatform

Page 10: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game PlatformsGame Platforms

Console10M – 100M installed base

“fixed platform”

Moderately powerful hardware

Standard & High definition video resolution (1080i, 720p)

Controller, wheel (& keyboard, mouse) input

Refreshed every 4-5 years

10’ experience on TV

Console10M – 100M installed base

“fixed platform”

Moderately powerful hardware

Standard & High definition video resolution (1080i, 720p)

Controller, wheel (& keyboard, mouse) input

Refreshed every 4-5 years

10’ experience on TV

Page 11: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game Platforms (cont.)Game Platforms (cont.)

PC600M installed base (running Microsoft Windows)

Non-uniform platform (video cards, memory, CPU)

Most powerful hardwareLeast powerful too

Very high resolution (1600x1200, 1920x1080, …)

Keyboard, mouse (& controller) input

2’ & 10’ (desk vs living room)

Notebook (portable gaming)

Upgraded yearly!

PC600M installed base (running Microsoft Windows)

Non-uniform platform (video cards, memory, CPU)

Most powerful hardwareLeast powerful too

Very high resolution (1600x1200, 1920x1080, …)

Keyboard, mouse (& controller) input

2’ & 10’ (desk vs living room)

Notebook (portable gaming)

Upgraded yearly!

Page 12: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Other PlatformsOther Platforms

Hand-heldDedicated consoles (PSP, Gameboy)

Controller-like input

Mobile phones700M phones/year

Non-uniform platform

Keypad input

Modest resolution (320x200 … 640x480)

1995-class PC graphics

ArcadeIndustrial version of home console?

Hand-heldDedicated consoles (PSP, Gameboy)

Controller-like input

Mobile phones700M phones/year

Non-uniform platform

Keypad input

Modest resolution (320x200 … 640x480)

1995-class PC graphics

ArcadeIndustrial version of home console?

Page 13: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

PC as a PlatformPC as a Platform

Large installed baseLeast expensive to publish on

No platform royalties

Large hw variation, rapidly evolvingLarge number of support calls

Supports rapid innovationProfit from selling PC hardware!

Games must span variabilityInfluences content & engineReach versus development cost

ChallengesAbstract hardware differences in platformSupport innovation

Large installed baseLeast expensive to publish on

No platform royalties

Large hw variation, rapidly evolvingLarge number of support calls

Supports rapid innovationProfit from selling PC hardware!

Games must span variabilityInfluences content & engineReach versus development cost

ChallengesAbstract hardware differences in platformSupport innovation

Page 14: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

New Direction for PC PlatformNew Direction for PC Platform

Reduce “unnecessary” hardware variationProgrammable hardware causes new problems

Shading programs are part of content not engineShading programs more complex

Content must be portable & reusable

Approach:Specify details that matter

Representation, precision, accuracy

Don’t specify non-observable implementation details

Use virtual machine model

Reduce “unnecessary” hardware variationProgrammable hardware causes new problems

Shading programs are part of content not engineShading programs more complex

Content must be portable & reusable

Approach:Specify details that matter

Representation, precision, accuracy

Don’t specify non-observable implementation details

Use virtual machine model

Page 15: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Windows Graphics Foundation 2.0Windows Graphics Foundation 2.0

Maintain consistent feature setEliminate capability bits (optional features)

Well defined behaviorMultiple implementations produce same result

E.g., IEEE-754 arithmetic

Migrate legacy fixed functions to shadersFixed-function lighting, alpha test, etc

Consistent shader programming modelVertex and pixel shaders use common instruction set

Obsolete assembly level programming

Add optimizations where large benefitScenario-specific formats (high dynamic range, normal maps)

Maintain consistent feature setEliminate capability bits (optional features)

Well defined behaviorMultiple implementations produce same result

E.g., IEEE-754 arithmetic

Migrate legacy fixed functions to shadersFixed-function lighting, alpha test, etc

Consistent shader programming modelVertex and pixel shaders use common instruction set

Obsolete assembly level programming

Add optimizations where large benefitScenario-specific formats (high dynamic range, normal maps)

Page 16: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Innovation in WGF 2.0Innovation in WGF 2.0

Integer & floating-point processing

More general data flowStream out to memory after vertex processing

Unify textures, render targets, vertex buffers

“Arrayed” resourcesSelect array element to render to in shader

Enables single-pass render to cube map

New pipeline stage (geometry shader)Whole-primitive processing

Integer & floating-point processing

More general data flowStream out to memory after vertex processing

Unify textures, render targets, vertex buffers

“Arrayed” resourcesSelect array element to render to in shader

Enables single-pass render to cube map

New pipeline stage (geometry shader)Whole-primitive processing

Page 17: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Geometry ShaderGeometry Shader

Shader stage that “sees” whole primitive3 vertices of a triangle (or 2 vertices of a line)As well as adjacency (6 vertices per triangle)

Can compute per-primitive dataPass to pixel shaderBarycentric parametersPlane equations

Can amplify dataExtrude edges, expand points, generate shellsFind silhouette edgesLimited amplification (not a general tessellator)

Shader stage that “sees” whole primitive3 vertices of a triangle (or 2 vertices of a line)As well as adjacency (6 vertices per triangle)

Can compute per-primitive dataPass to pixel shaderBarycentric parametersPlane equations

Can amplify dataExtrude edges, expand points, generate shellsFind silhouette edgesLimited amplification (not a general tessellator)

Page 18: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

WGF 2.0 PipelineWGF 2.0 Pipeline

VertexBuffer

InputAssembler

VertexShader

SetupRasterizer

OutputMerger

PixelShader

GeometryShader

IndexBuffer

Texture TextureRenderTarget

DepthStencil

TextureStreamBuffer

Stream out

Memory

memory

programmable

fixed

Sampler Sampler Sampler

Constant Constant Constant

Page 19: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game TrendsGame Trends

2004-2005 Record sales

Visually stunning titlesHalf Life 2, Halo 2, Far Cry, Doom 3

Largest worlds

Most detailed levels of realismNot just graphics: AI, physics, animation

Longest development times

Largest development costs

Bulk of cost in producing contentIncreasing ratio of artists : programmers

2004-2005 Record sales

Visually stunning titlesHalf Life 2, Halo 2, Far Cry, Doom 3

Largest worlds

Most detailed levels of realismNot just graphics: AI, physics, animation

Longest development times

Largest development costs

Bulk of cost in producing contentIncreasing ratio of artists : programmers

Page 20: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Trends - SoftwareTrends - Software

Demand for larger worlds

Demand for more detailFloppies vs CDs vs DVDs → HALO2 4.2GB

HD-DVD/Blueray → 20GB

Rising development costContent creation is the bottleneck

$10M content budget

Art Pipeline is not scaling

Amortize cost over multiple platforms

Demand for larger worlds

Demand for more detailFloppies vs CDs vs DVDs → HALO2 4.2GB

HD-DVD/Blueray → 20GB

Rising development costContent creation is the bottleneck

$10M content budget

Art Pipeline is not scaling

Amortize cost over multiple platforms

Page 21: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Trends – HardwareTrends – Hardware

CPU performanceClock speed brick wall

Transition to “multi-core” CPUs

Games are CPU-limitedGames are tuned until they are not GPU-limited

PC & consoles

GPU performance2x increase every 2 years

CPU performanceClock speed brick wall

Transition to “multi-core” CPUs

Games are CPU-limitedGames are tuned until they are not GPU-limited

PC & consoles

GPU performance2x increase every 2 years

Page 22: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

HardwareLots of Room To Grow?HardwareLots of Room To Grow?

Enthusiast GPU today (soon):

1-2 Teraflops

110-90nm

~300-350M transistors

~80 Watts

Increasing attention onpower

efficiency

Enthusiast GPU today (soon):

1-2 Teraflops

110-90nm

~300-350M transistors

~80 Watts

Increasing attention onpower

efficiency

Page 23: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Game Development ChallengesGame Development Challenges

Creating & Managing DetailScalable process for content creation

CPU overloadMulti-core not a panacea

Volume of dataEffective run-time management of data

Tool power & expressivenessTraditional tools not powerful enough

Creating & Managing DetailScalable process for content creation

CPU overloadMulti-core not a panacea

Volume of dataEffective run-time management of data

Tool power & expressivenessTraditional tools not powerful enough

Page 24: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

GPU as SolutionGPU as Solution

How best to use performance increases?

CPU bottlenecksOffload more processing to the GPU?

Simulations, physics?

ContentSupport greater detail

Don’t create more work for artists

Procedural detail?

How best to use performance increases?

CPU bottlenecksOffload more processing to the GPU?

Simulations, physics?

ContentSupport greater detail

Don’t create more work for artists

Procedural detail?

Page 25: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Procedural DetailProcedural Detail

Techniques used in film production

Scene Composition & Post ProcessingTranslucency & Antialiasing

Filter & Blend

Texture DetailProcedural generation

Modeling & AnimationTessellation + Displacement/Normal Maps

Techniques used in film production

Scene Composition & Post ProcessingTranslucency & Antialiasing

Filter & Blend

Texture DetailProcedural generation

Modeling & AnimationTessellation + Displacement/Normal Maps

Page 26: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Scene Composition & PostScene Composition & Post

“Post” effects becoming common placeHDR, bloom, tints, grain, motion blur, depth of field ….

Global atmosphereDon’t merge into individual assets

Next step, on the flyApply to individual scene elements

Composite scene elements together

Use to “break up” the scene – detailing

“Post” effects becoming common placeHDR, bloom, tints, grain, motion blur, depth of field ….

Global atmosphereDon’t merge into individual assets

Next step, on the flyApply to individual scene elements

Composite scene elements together

Use to “break up” the scene – detailing

Page 27: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Transparency Transparency

Traditionally render back to front with blendSort on CPU

Interactions with other algorithms (e.g., shadows)

Different algorithms forObjects with feathered edges (trees)

Transparent objects (windows)

Volumetric effects (particle systems)

Opacity versus CoverageUse alpha to represent both

Can we solve with hardware?

Traditionally render back to front with blendSort on CPU

Interactions with other algorithms (e.g., shadows)

Different algorithms forObjects with feathered edges (trees)

Transparent objects (windows)

Volumetric effects (particle systems)

Opacity versus CoverageUse alpha to represent both

Can we solve with hardware?

Page 28: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Unsorted TransparencyUnsorted Transparency

Traditionally solved with a-buffer algorithm

Save all of the pixel fragments for each pixel

Resolve at end of frame

Arbitrary number of fragments per pixel Lists (linked), dynamic allocation

Look at “good enough” solutionsSave some maximum number of fragments

Fixed-function or programmable solution?Fixed-function more efficient, but extra hardware

Traditionally solved with a-buffer algorithm

Save all of the pixel fragments for each pixel

Resolve at end of frame

Arbitrary number of fragments per pixel Lists (linked), dynamic allocation

Look at “good enough” solutionsSave some maximum number of fragments

Fixed-function or programmable solution?Fixed-function more efficient, but extra hardware

Page 29: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Texture Maps Texture Maps

Resolution increasing rapidly4Kx4K high-resolution maps

Nearing the 8Kx8K used for film

Too much work to paint this much detailDon’t paint individual skin pores

Digital camera capture not the answer

4Kx4K RGBA = 32MB @ 2x compression

Resolution increasing rapidly4Kx4K high-resolution maps

Nearing the 8Kx8K used for film

Too much work to paint this much detailDon’t paint individual skin pores

Digital camera capture not the answer

4Kx4K RGBA = 32MB @ 2x compression

Page 30: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Texture MapsTexture Maps

GPU virtual memory helps with size, but…Can we ever really store enough resolution?

A better way?Use procedural texture techniques

Shaders now expressive enoughDo they have enough performance?

Artists concentrate on formAlgorithmically add detail

“paint” algorithm ids

GPU virtual memory helps with size, but…Can we ever really store enough resolution?

A better way?Use procedural texture techniques

Shaders now expressive enoughDo they have enough performance?

Artists concentrate on formAlgorithmically add detail

“paint” algorithm ids

Page 31: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Surfaces and TessellationSurfaces and Tessellation

Increasing character complexity2K → 5K → 15K triangles/character

Increased skinning and morphing complexityk weights for each vertexHand-tuned for animation

Silhouette edges still look poorCompared to lighting and shading quality

Alternative – use higher-order surfacesBeziers, Catmull-Clark subdivision, NURBS, …

Many studios already model with surfacesConvert to triangles when packaging content

Increasing character complexity2K → 5K → 15K triangles/character

Increased skinning and morphing complexityk weights for each vertexHand-tuned for animation

Silhouette edges still look poorCompared to lighting and shading quality

Alternative – use higher-order surfacesBeziers, Catmull-Clark subdivision, NURBS, …

Many studios already model with surfacesConvert to triangles when packaging content

Page 32: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Tessellation AdvantagesTessellation Advantages

Animate and skin the control meshLess computation than per-vertex

Tessellate the resulting control mesh

Combine with displacement mappingUse for additional geometric detail

Adds detail to silhouette edges

Use normal maps for fine shading detail

Combine with adaptive tessellation?

Animate and skin the control meshLess computation than per-vertex

Tessellate the resulting control mesh

Combine with displacement mappingUse for additional geometric detail

Adds detail to silhouette edges

Use normal maps for fine shading detail

Combine with adaptive tessellation?

Page 33: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Skinned Control MeshSkinned Control Mesh

Page 34: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

SummarySummary

Games increasingly more complexWorld size, detail

Bulk of cost in producing contentContent creation process not scaling

Amortize cost over multiple platforms

Try to reduce cost of additional detailRun-time generation of detail

Improved tools for controlling detail

Good areas for additional research

Games increasingly more complexWorld size, detail

Bulk of cost in producing contentContent creation process not scaling

Amortize cost over multiple platforms

Try to reduce cost of additional detailRun-time generation of detail

Improved tools for controlling detail

Good areas for additional research

Page 35: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

Games TomorrowGames Tomorrow

Page 36: Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows

QuestionsQuestions