Conclusions. Chapter 9



Similar documents
Professional Networking

Handling. Collection Calls

Modified Line Search Method for Global Optimization

ODBC. Getting Started With Sage Timberline Office ODBC

(VCP-310)

The Forgotten Middle. research readiness results. Executive Summary

Determining the sample size

Domain 1: Designing a SQL Server Instance and a Database Solution

Ideate, Inc. Training Solutions to Give you the Leading Edge

In nite Sequences. Dr. Philippe B. Laval Kennesaw State University. October 9, 2008

SECTION 1.5 : SUMMATION NOTATION + WORK WITH SEQUENCES

CREATIVE MARKETING PROJECT 2016

*The most important feature of MRP as compared with ordinary inventory control analysis is its time phasing feature.

The Importance of Media in the Classroom

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.

CHAPTER 3 THE TIME VALUE OF MONEY

To c o m p e t e in t o d a y s r e t a i l e n v i r o n m e n t, y o u n e e d a s i n g l e,

Agenda. Outsourcing and Globalization in Software Development. Outsourcing. Outsourcing here to stay. Outsourcing Alternatives

Engineering Data Management

One Goal. 18-Months. Unlimited Opportunities.

Flood Emergency Response Plan

PUBLIC RELATIONS PROJECT 2016

How to use what you OWN to reduce what you OWE

6. p o s I T I v e r e I n f o r c e M e n T

Hypothesis testing. Null and alternative hypotheses

INVESTMENT PERFORMANCE COUNCIL (IPC) Guidance Statement on Calculation Methodology

STUDENTS PARTICIPATION IN ONLINE LEARNING IN BUSINESS COURSES AT UNIVERSITAS TERBUKA, INDONESIA. Maya Maria, Universitas Terbuka, Indonesia

Lesson 17 Pearson s Correlation Coefficient

Domain 1 - Describe Cisco VoIP Implementations

INVESTMENT PERFORMANCE COUNCIL (IPC)

IT Support n n support@premierchoiceinternet.com. 30 Day FREE Trial. IT Support from 8p/user

Soving Recurrence Relations

Project Deliverables. CS 361, Lecture 28. Outline. Project Deliverables. Administrative. Project Comments

Pre-Suit Collection Strategies

Hypergeometric Distributions

where: T = number of years of cash flow in investment's life n = the year in which the cash flow X n i = IRR = the internal rate of return

A GUIDE TO BUILDING SMART BUSINESS CREDIT

Discrete Mathematics and Probability Theory Spring 2014 Anant Sahai Note 13

Desktop Management. Desktop Management Tools

Assessment of the Board

Setting Up a Contract Action Network

Week 3 Conditional probabilities, Bayes formula, WEEK 3 page 1 Expected value of a random variable

leasing Solutions We make your Business our Business

How to read A Mutual Fund shareholder report

client communication

GOOD PRACTICE CHECKLIST FOR INTERPRETERS WORKING WITH DOMESTIC VIOLENCE SITUATIONS

Baan Service Master Data Management

France caters to innovative companies and offers the best research tax credit in Europe

Security Functions and Purposes of Network Devices and Technologies (SY0-301) Firewalls. Audiobooks

Scratch tm Programming for Teens

CS103A Handout 23 Winter 2002 February 22, 2002 Solving Recurrence Relations

Center, Spread, and Shape in Inference: Claims, Caveats, and Insights

Your organization has a Class B IP address of Before you implement subnetting, the Network ID and Host ID are divided as follows:

Get advice now. Are you worried about your mortgage? New edition

CHAPTER 3 DIGITAL CODING OF SIGNALS

Enhancing Oracle Business Intelligence with cubus EV How users of Oracle BI on Essbase cubes can benefit from cubus outperform EV Analytics (cubus EV)

Bank Secrecy Act. Job-specific BSA tracks Related case studies Suggested courses

Digital Enterprise Unit. White Paper. Web Analytics Measurement for Responsive Websites

iprox sensors iprox inductive sensors iprox programming tools ProxView programming software iprox the world s most versatile proximity sensor

Elementary Theory of Russian Roulette

WindWise Education. 2 nd. T ransforming the Energy of Wind into Powerful Minds. editi. A Curriculum for Grades 6 12

INDEPENDENT BUSINESS PLAN EVENT 2016

My first gold holdings. My first bank. Simple. Transparent. Individual. Our investment solutions for clients abroad.

ABCs. of Diabetes Care

A Guide to Better Postal Services Procurement. A GUIDE TO better POSTAL SERVICES PROCUREMENT

E-Plex Enterprise Access Control System

Measures of Spread and Boxplots Discrete Math, Section 9.4

CS100: Introduction to Computer Science

Basic Elements of Arithmetic Sequences and Series

Output Analysis (2, Chapters 10 &11 Law)

Domain 1 Components of the Cisco Unified Communications Architecture

G r a d e. 2 M a t h e M a t i c s. statistics and Probability

Domain 1: Identifying Cause of and Resolving Desktop Application Issues Identifying and Resolving New Software Installation Issues

Best of security and convenience

PENSION ANNUITY. Policy Conditions Document reference: PPAS1(7) This is an important document. Please keep it in a safe place.

AGC s SUPERVISORY TRAINING PROGRAM

Mobile Application Testing

Lesson Plans for Teachers

A Combined Continuous/Binary Genetic Algorithm for Microstrip Antenna Design

CCH CRM Books Online Software Fee Protection Consultancy Advice Lines CPD Books Online Software Fee Protection Consultancy Advice Lines CPD

CS100: Introduction to Computer Science

Chapter 5 Unit 1. IET 350 Engineering Economics. Learning Objectives Chapter 5. Learning Objectives Unit 1. Annual Amount and Gradient Functions

5: Introduction to Estimation

Message Exchange in the Utility Market Using SAP for Utilities. Point of View by Marc Metz and Maarten Vriesema

TruStore: The storage. system that grows with you. Machine Tools / Power Tools Laser Technology / Electronics Medical Technology

Authentication - Access Control Default Security Active Directory Trusted Authentication Guest User or Anonymous (un-authenticated) Logging Out

Non-life insurance mathematics. Nils F. Haavardsson, University of Oslo and DNB Skadeforsikring

I. Chi-squared Distributions

Configuring Additional Active Directory Server Roles

Transcription:

Chapter 9 Coclusios You have reached the fial chapter of this book o Microsoft s DirectX. At this poit you should have a good uderstadig of DirectX 11 from graphics to iput ad audio as well as basic, yet commo, math cocepts for both 2D ad 3D games. Although a lot of iformatio was covered i this book, this marks oly the begiig of the jourey ito video game developmet. Creatig a video game is a lot of hard ad fulfillig work, ad for begiers, uderstadig the cocepts i this book is a importat first step. I this chapter we will briefly recap what you have leared ad discuss the ext steps to take what you ve leared to the ext level. Where to go from here is ot always a trivial choice ad, depedig o what your passios are, will determie how you focus your time as you move forward. Each role o a video game developmet team takes a level of expertise that ofte requires a dedicated ad focused idividual to master. Recap Each chapter i this book served a specific purpose. As you made your way through this book, the goal was to slowly advace what you kow about DirectX as a whole ad especially Direct3D for graphics rederig. I this sectio we will briefly recap what you should have take away from each chapter of this book. At ay poit, do t hesitate to go back ad reread a chapter whe you feel you ca improve your uderstadig, because havig a firm grasp of the basics 1

2 Chapter 9 Coclusios discussed i this book is importat for makig it easier to lear more advaced topics i the future. I fact, it is essetial. Chapters 1 ad 2 The purpose of Chapter 1 was to itroduce DirectX, specifically DirectX 11, ad the various compoets that comprise it. This chapter essetially gave a overview of the techology, both past ad preset, ad the various parts that make up the SDK. Not all parts of DirectX 11 fit withi the scope of this book, ad ow that you are fiished with this book it might be beeficial to explore those other areas as well. I this begier s book we ve covered a lot of topics ecessary to uderstad whe startig off with DirectX, but there is a to of advaced aspects that DirectX offers developers. The purpose of Chapter 2 was to quickly itroduce you to Direct3D 11 ad the basics of drawig graphics usig the API. Chapter 2 focused o the bare basics of rederig with Direct3D 11 ad wrapped up by drawig a simple 2D triagle. From this chapter, you should have walked away with the followig kowledge: How to iitialize Direct3D How to create rederig destiatios (swap chais ad reder targets) How to clear the color buffer of the mai rederig target How to draw simple geometry to the scree How to properly release DirectX objects from memory The first two chapters are largely meat for readers startig out with graphics programmig i DirectX 11. Readers with experiece with previous versios of DirectX, especially DirectX 10, will fid these chapters to be a brief recap of what they should already geerally kow. Remember, DirectX 11 is very close to DirectX 10 i may areas, so those with experiece with DirectX 10 should have a leg up o learig DirectX 11. Readers comig from DirectX 9 ad later will have quite a adjustmet to make, but this adjustmet is defiitely for the better, as DirectX 10 ad 11 are very friedly to work with. Chapters 3 ad 4 The purpose of Chapter 3 was to dive a little deeper ito rederig with Direct3D 11 by focusig more o 2D cocepts. This was doe to give those ew

Recap 3 to DirectX a much more maageable steppig stoe to learig the graphics API, while also providig a ecessary foudatio for rederig with DirectX. Chapter 3 differs from Chapter 2 i that it is more focused o geometry ad texture mappig. This separatio was doe ot oly to make each chapter more maageable i size, but also to split the focus from the two extremes of basic rederig (i.e., learig to get somethig draw ad learig to expad that kowledge with textures). Chapters 2 ad 3 represet two differet levels of skill whe it comes to rederig simple shapes. Readers should have walked away from Chapter 3 with the followig kowledge: How to create custom vertex layouts ad structures How to reder geometry How to perform texture mappig How to create ad utilize vertex ad pixel shaders Text ad strigs are importat elemets i ay video game, but ulike past versios of DirectX, such as DirectX 9, text rederig support i the API o loger exists, ad it is up to the developers to write their ow text system. The purpose of Chapter 4 was to show you how to draw text i Direct3D 11 usig a very simple method of geeratig the geometry ad texture coordiates that make up the strigs of text. Although this system is fairly simple, more advaced ad efficiet systems would require more skill tha you would have obtaied this early i the book; therefore the simple system was itroduced to give you a start with the topic. Chapter 4 was directly iflueced by the iformatio provided i Chapter 3. You should have walked away from Chapter 4 with the followig kowledge: How to geerate simple geometry for the purpose of drawig strigs of text How to geerate texture coordiates based o the regio of the texture you wish to use (letter of the text) ad use this to build strigs of text Chapter 5 The purpose of Chapter 5 was to itroduce you to iput detectio ad respose for keyboards, mice, ad Xbox game cotrollers (which work as USB cotrollers

4 Chapter 9 Coclusios o the PC). Iput i some form eve exitig the applicatio via the Escape key is importat to games ad demos. Coverig iput early o could oly beefit you, sice oe of the graphics-related topics of later chapters had ay bearig o a chapter dedicated to iput. You should have walked away from Chapter 5 with the followig kowledge: A uderstadig of DirectIput The ability to detect iput from keyboards The ability to detect iput from mice The ability to use Xbox 360 game cotrollers as iput devices Chapter 6 No book o games or graphics programmig ca afford ot to cover at least the basics of the mathematics importat to the field of game developmet. Although math is a huge topic i which you would beefit from formal educatio, there are some topics that caot be left out of a book of this ature, especially a book targeted toward begiers. The purpose of Chapter 6 is to give you a basic overview of the various math cocepts that are popular i video games ad would be ecessary for this book. Although you do ot eed a lot of previous experiece with the math topics i this chapter to follow alog, everyoe eeds some exposure ad explaatio to help them uderstad what is beig performed ad how they ca leverage this kowledge for their beefit. Chapter 6 largely covered the math ecessary for the 3D-orieted chapters that followed (Chapters 7 ad 8) ad also wet ito more depth of the 2D math cocepts explored i previous chapters. You should have walked away from Chapter 6 with the followig kowledge: A uderstadig of XNA Math A uderstadig of vectors ad ormalized vectors A uderstadig of matrices A uderstadig of coordiate spaces A uderstad of trasformatios

Recap 5 Chapter 7 The purpose of Chapter 7 was to go ito deeper detail of shaders ad effects i Direct3D 11. This chapter ot oly examied the ew effects but also created examples of some of the shader types Direct3D 11 supports i order to get you familiar with creatig them. Also, a few commo yet straightforward effects were created i this chapter as examples. You should have walked away from Chapter 7 with the followig kowledge: A uderstadig of the High Level Shadig Laguage (HLSL) A uderstadig of effect files A uderstadig of vertex ad pixel shaders A uderstadig of lightig A uderstadig of geometry shaders A uderstadig of the tessellatio-based shaders (domai ad hull) A uderstadig of compute shaders Because Direct3D 10, 11, ad presumably higher versios will oly use shaders for graphics rederig, it is highly importat to have a firm uderstadig of the High Level Shadig Laguage ad the ature of shaders i geeral before cocludig this book. Chapter 8 The purpose of Chapter 8 was to provide iformatio o loadig more complex 3D models ad objects tha what was see i the rest of the book. 3D cameras were also discussed i this chapter, which built off of the math iformatio discussed i Chapter 6. Throughout this book we ve touched upo simple shapes i 2D ad 3D form, but this chapter takes it to a whole ew level. Although this is a begier s book, we could ot leave out the oe topic that every reader will eed to lear from this book: the ability to draw models. This chapter is importat for a umber of reasos. First, it shows you how to create complex 3D models, which allows you to begi creatig 3D objects ad eviromets that you commoly see i the 3D games that you play. Secodly, it discusses how to create cameras i a 3D eviromet. Rederig characters

6 Chapter 9 Coclusios ad models ca become very advaced whe lookig at ext-geeratio games such as Naughty Dog s Drake s Ucharted 3, ad this book covered the foudatios to get you started. You should have walked away from Chapter 8 with the followig kowledge: The ability to reder complex 3D models The ability to utilize a 3D camera i a virtual scee The ability to load ad utilized models stored i various file formats A basic uderstadig of how game worlds are represeted ad composed Game Graphics Programmig Graphics is a very importat topic for video games ad has bee for a very log time. The power of Direct3D 11 comes from its ability to provide extgeeratio effects to 3D games i a way that is efficiet ad effective. Graphics is largely a marriage betwee art (textures, models, etc.) ad techology. There is much more to graphics tha the API beig used. Graphics optimizatios require kowledge of graphics hardware, the ability to profile ad fid bottleecks, ad may times some very creative thikig whe it comes to problem solvig, where the problem is ofte about how to get the most out of what we have. Scee ad state maagemet are also topics that will quickly come up as your scees become more complex because icreasig performace is ofte related to what you are ot doig (or drawig) rather tha what you are doig. I other words, if you ca avoid costly state switches (e.g., istead of chagig textures for every object, draw every object that uses texture A, switch to texture B, ad the draw all objects for texture B ad so forth) ad oly draw geometry that the user ca see, the performace ca be icreased by reducig these thigs as much as possible. Other topics that go with this iclude istacig (usig fewer draw calls), level of detail (usig less geometry for distat objects), ad so much more. But i additio to drawig geometry, there is also the effects side of graphics programmig, ad the fill-rate ca have a tremedous impact o performace. This icludes lightig, shadowig, motio-blur, depth-of-field, high dyamic rage rederig, explosios ad smoke, ad so much more.

Game Programmig 7 There are may resources available to improve your graphics programmig skills. The Game Programmig Gems books from Course PTR ad ShaderX books from Charles River Media are excellet resources for learig advaced graphics programmig techiques. To excel at graphics programmig, it helps to have a strog math backgroud. For those without this backgroud, it is ofte ecessary to ivest i some really good math books. These math books do ot ecessarily eed to be focused o video games, but game math books could help arrow the focus o the topics most importat to a aspirig game developer as well as preset the iformatio i a maer a aspirig game developer ca relate to. The book Mathematics for 3D Game Programmig ad Computer Graphics from Charles River Media ca be a good referece, depedig o your curret level of mathematics skills. Game Programmig It is a safe bet that your goal i purchasig this book is to lear to make your ow video games. This book marked a importat first step toward that goal, ad as you ow ca see, makig eve simple video games requires skill ad experiece. It is ot always easy work, but it ca be quite challegig ad fulfillig to play your ow creatio ad to share that experiece with other people. At this jucture you should have eough iformatio to begi writig your ow video games. Realistically, a begier will ot be able to tackle a massively multiplayer olie role-playig game like World of Warcraft (from Activisio Blizzard) or a ext-ge shooter like Epic Game s Bulletstorm, but a game ispired by Pog, Asteroids, Tic-Tac-Toe, etc. is a great way to get that experiece writig your ow games without overburdeig yourself. As the wise sayig goes, practice makes perfect, ad whe learig video game developmet, it is best to start small ad work your way up. Whe creatig your ow video games, whether it is a hobby, for a portfolio, or whatever, certai game elemets should be preset whe showcasig your work. Complete games are composed of meus, high-score screes (if applicable), i-game user iterfaces, iput, audio, load- ad save-game capabilities (if applicable), polish (steady frame-rate, ice visuals, stable executio), ad special effects to ame a few. Whe puttig together a portfolio, it is importat to create games that are as complete as reasoably possible. If you re startig

8 Chapter 9 Coclusios off as a hobbyist or a studet, o compay will expect AAA game titles withi your portfolio, but your games should be complete, stable (bug free), ad reasoably polished. Whe programmig a video game, you are programmig the game logic ad mechaics that create the experiece the users are ejoyig. This ca be aythig from writig code for a death-match game mode i a first-perso shooter to a capture-the-flag game mode, to a sigle-player game level of a actio game, ad so much more. Beig able to write simulatios efficietly is o easy task; it takes practice ad experiece to do it well. But as you gai more experiece, you will fid yourself explorig ew desigs ad ideas with more success ad fulfillmet. Try ot to take o too much, however, because it is easy to get overwhelmed whe you start swimmig i the deep ed. This book s compaio website located at www.ultimategameprogrammig. com (or www.courseptr.com/dowloads) has several tutorials o creatig video games, game tools ad editors, ad game egies. Cotet for the begier level tutorials is beig developed, icludig a series o creatig your first complete 2D game, first complete 3D game, your first level editors, ad a itroductio to 2D ad 3D game egies. More cotet is beig plaed ad developed, so expect this website to grow cosiderably over time. The book s specific URL is www.ultimategameprogrammig.com/begiigdirectx11. Or you ca use www.courseptr.com/dowloads.. I the followig sectio we ll discuss some games ad demos you ca create to move you from a begier of DirectX to the ext level. Although some of these games might ot be the most excitig to play, for a begier they are very importat to create. Your First 2D Game It is ofte recommeded that ew game programmers start with a simple game as a first project, ad oe popular game to start with is a cloe of the classic Pog, which ca be thought of as the Hello World of video game programmig. At UltimateGameProgrammig.com, the first game programmig tutorial is a 2D Pog-ispired game built complete with meus, audio, ad keyboard ad game pad iput. The overall goals of this tutorial iclude the followig:

Game Programmig 9 Lear to create a basic meu system ivolvig game screes Lear basic artificial itelligece i the sigle-player game mode Implemet local two-player support for the multiplayer game mode Desig ad implemet a i-game heads-up display (HUD) Startig off with a simple game ispired by Pog allows this begier-level tutorial to touch upo a few key topics without overwhelmig you. This tutorial is targeted to begiers who have fiished this book ad are lookig to implemet their acquired kowledge ito a workig video game. A screeshot of a early versio of the tutorial ca be see i Figure 9.1. Also part of the itroductio to the game programmig tutorial set is a tutorial o creatig a Tic-Tac-Toe game (Figure 9.2) ad a card matchig game (Figure 9.3), each of which reiforces the mai topics leared durig the first game programmig tutorial. For each of these tutorials i the itroductory series, you will eed to kow how to perform iput with the keyboard ad mouse or Xbox 360 game pad (leared from Chapter 5 of this book), play game audio for soud effects (leared from Appedix B from the compaio website), ad how to reder 2D graphics (leared from Chapters 2 ad 3 of this book). Figure 9.1 A screeshot of a early versio of the Pog-ispired game programmig tutorial.

10 Chapter 9 Coclusios Figure 9.2 A screeshot of a early versio of the Tic-Tac-Toe-ispired game tutorial. Figure 9.3 A screeshot of a early versio of the card-matchig game tutorial. Followig the tutorials i the itroductory series will be more 2D themed tutorials aimed at learig other topics such as olie multiplayer game programmig, game programmig for multicore machies, ad gere-based game programmig (e.g., top-dow games, side-scrollers, platformig games, etc.). These tutorials will icrease i difficulty ad will itroduce more topics

Game Programmig 11 ad techiques to aid i learig how to make video games. The goal of these tutorials is to provide fu exercises for creatig games usig the kowledge of DirectX that you have gaied i books such as this. Your First 3D Game Creatig 2D games ca be fu, but chaces are if you are learig DirectX 11, your goal is to evetually make 3D video games. Makig a 3D video game presets its ow challeges, especially whe it comes to the maagemet of the art cotet ad the techiques used to gai the best performace out of the applicatio. Whe startig out with 3D, it is useful to take simple ideas ad brig them ito the 3D realm. For example, creatig a spaceship flyig through a 3D outer-space eviromet while shootig asteroids ca be a good first step because: You ca keep the player s avatar (spaceship), asteroids, ad eviromet (outer space) fairly simple artistically (assumig you are more of a programmer tha a artist). You ca practice addig particle explosios ad other special effects to ehace the game s visual for the weapos ad the destructio of asteroids. It allows you to desig ad implemet a simple 3D rederig system that operates o a higher level tha the graphics API itself, which ca be a baby step toward makig your first simple game framework (i.e., game egie). It allows you to figure out how to cotrol the ship i a 3D eviromet effectively usig commo iput devices. It allows you to implemet more complex camera systems tha were used i the 2D games. UltimateGameProgrammig.com will also have a itroductio to 3D game programmig tutorial based aroud this very cocept. The idea is to take what was doe i the itroductio tutorials (2D games) ad move ito the 3D world. Firig at asteroids allows readers to move ito the 3D realm without havig to worry about physics (such as gravity, rag dolls, etc.) ad artificial itelligece,

12 Chapter 9 Coclusios both of which are challegig to lear idividually, let aloe together or with other topics. Other game tutorials that ca make good startig poits for learig 3D game programmig iclude a itroductio to first-perso shooters, a third-perso platformer, ad a simple rail shooter (e.g., Sega s House of the Dead ad Virtual Cop games). Your First Multiplayer Game There is a differece betwee writig a sigle-player game, a local multiplayer game, ad a olie etworked multiplayer game. With a sigle-player game there is usually oe iput device that is polled ad respoded to each frame as the game is beig played. The same ca be said for local multiplayer games where oe or more iput device (game pad, etc.) is plugged ito a sigle machie that both players are iterfacig with. This was the mai method of multiplayer gamig before the rise of olie etworked games. Networked games ca geerally be see i two flavors. First there are LAN (local area etwork) games. LAN matches are popular for competitive gamig evets (touramets), gamig parties ad get-togethers, ad ay time multiple machies are coected to oe aother via a etwork cable but ot ecessarily coected to the Iteret. May gamers have played the origial Xbox s Halo title with their frieds by gettig together a few Xboxes, a few TVs, ad a lot of pizza ad havig themselves a LAN party! The secod flavor of etworked games icludes games played over the Iteret betwee two or more remote players. This type of gamig sessio ivolves may challeges ad obstacles that eed to be addressed. Lag, which is the time i millisecods it takes for oe machie to receive a respose from aother, is a huge obstacle to get aroud. Not oly is the frequecy with which machies sed messages to oe aother dyamic, but also the quality of gamig sessios ca be adversely affected by the overall etwork coditios. Ad that assumes the message from oe machie actually reaches the other(s). Whe startig off with etworked multiplayer games over the Iteret, oe topic that is sure to come up is predicatio ad smoothig algorithms to keep the simulatio stable ad cosistet for all players. Usually i LAN matches the lag is

3D Game Egies ad Architecture 13 ot a issue because the distace betwee machies is fairly small, whereas with the Iteret you ca be playig with people i other states ad coutries, ot to metio all of the devices such as routers ad stops betwee you ad the other players. To keep the simulatio smooth for all players, games must apply various techiques to keep everythig lookig good. This is extremely challegig but also makes etwork game programmig very iterestig ad fu to tackle. There are also issues with etwork maipulatio by players who willigly egage i cheatig or etwork disruptio, badwidth limitatios, the hadlig of players who quit or are dropped, migratig betwee hosts (the game that sets up ad rus the game) if the host leaves the game, ad may more topics that make multiplayer game programmig over a etwork somethig ot to take lightly. Although a set of multiplayer game programmig tutorials has yet to start developmet at the time of writig this chapter, there are at least three plaed, with the first beig local multiplayer gamig, LAN multiplayer gamig, ad olie multiplayer gamig. Each of these tutorials builds off of oe aother ad scales from begier to advaced. 3D Game Egies ad Architecture We talked about graphics programmig, we talked about game programmig, ad the there is game egie developmet. Geerally, the game egie is a collectio of tools ad editors used to build games via cotet ad scripts, such as Epic s Ureal game egie (see Figure 9.4). These tools ca be actual applicatios such as light-map compilers, virtual machies, compilers for scriptig systems, ad so o, as well as beig code such as data structures, algorithms, helpers ad utilities, ad much more. DirectX is ot cosidered a game egie because, although it does have may base compoets that are used by games ad game egies, DirectX is a collectio of APIs for iterfacig with various compoets such as the graphics hardware, iput devices, audio, ad so forth. Also, there is far more that goes ito a game such as memory maagemet, cotet maagemet ad pipelie tools, multithreadig systems, a host of data structures ad algorithms, tools used for automatio, ad may more tools that are far beyod what DirectX aloe provides. Direct3D, which was the focus of may chapters throughout this

14 Chapter 9 Coclusios Figure 9.4 A screeshot from Epic Game s UDK (Ureal Developmet Kit). book, is a rederig applicatio programmig iterface ad ot a rederig egie for the same reasos. But for those ufamiliar with the term game egie, what is it? A game egie is a framework that a game is built upo. This framework is usually abstract ad ot specific to ay oe game title, although it ca be tailored toward specific game geres ad is usually origially developed aroud a iitial game that proves the tech. Typically, all game egies, both simple ad complex, iclude the followig compoets: A rederig system used to draw objects ad iterfaces Scee maagemet ad eviromet partitioig for o-basic game worlds

3D Game Egies ad Architecture 15 Editors ad tools such as level editors, light compilers, collisio compilers, cotet maagemet tools, ad much more Character aimatio systems A system for playig audio ad music withi games Support for commo iput devices More advaced game egies of today ca also iclude additioal compoets such as the followig: Multithreaded support The ability to stream cotet via a hard drive or disk Advaced material ad rederig systems Advaced aimatio geeratio systems Powerful scriptig laguages, compilers, virtual machies, etc. Ciematic systems (cut-scees) Advaced rederig pipelies for ext-geeratio effects Destructible eviromets Advaced physics ad collisio systems Networkig systems Auto-update abilities Defeses agaist cheatig Ad much more Rederig systems are usually built o top of redig APIs. A rederig system i a game egie is ofte a collectio of data structures ad algorithms that feed the rederig API data to draw. Thik of the two as two systems workig together, where the rederig API draws what it is told to draw ad the rederig system decides what eeds to be draw ad how best to preset that data to the rederig API. Rederig systems (also sometimes referred to as rederig egies) are highlevel tools used to make drawig ad data maagemet efficiet. For example, part of a rederig system might be to take a subdivided game world ad submit

16 Chapter 9 Coclusios oly parts of that game world to the rederig API for rederig. By idetifyig what the user ca see ad the oly drawig that data, games ca icrease performace tremedously. This specific techique falls uder the category of spatial partitioig, practically a ecessary evil whe drawig terrai, but there is tos more that moder video games use, some of which iclude but are ot limited to: Next-ge graphics pipelie (e.g., high dyamic rage rederig, etc.) The geeratio of data (e.g., portals, shadows, occlusio volumes, etc.) Cotet maagemet for games that stream data State maagemet (reducig graphics API state chages greatly improves performace) Deferred rederig Effects systems (e.g., shader geeratio, etc.) Ad much more What ca be icluded iside of a game egie seems to have o limits outside of the scope of what is eeded for the game project it is beig developed aroud. Game egies are a collectio of may systems, data structures, algorithms, ad tools that together are used to lay the foudatio of a video game ad provide much eeded automatio. By remaiig abstract ad ot hardcoded to ay specific game, it is possible to reuse game egies across multiple projects. Game egies such as Epic s Ureal egie (www.udk.com) do this very well. Your First Game Egie Creatig a game egie, eve a simple oe to get started, is o trivial task. If you do t approach it with care, you could easily overwhelm yourself with a codig ightmare. The key to writig a game egie is to ot write a video game egie aloe, but istead develop a video game aroud it. As you develop your game, you ca abstract your code ito a higher-level framework as you progress i developmet. The game provides a clear ed goal to achieve as well as the roadwork for what eeds to be doe. Without this ed goal or target game to develop, how would you kow what to add or what to focus o? How would you kow whe you have completed your task?

Summary 17 Oe commo mistake begiers make is to try to create a game egie without creatig a game, as if a egie without a game or tech to prove it is its ow ed goal. It is easy to get ito what is kow as feature creep, where you keep addig features for the sake of addig them without ay directio or ed goal i mid. Sice the goal of a game egie is to be the foudatio of a game, games should be the drivig force, ot a buch of geeric features, wrapper classes, ad rederig effects. Tech demos are great, but a actual game is a must. Creatig a AAA game egie, o the other had, takes a tremedous amout of experiece, talet, hard work, ad expertise, but we all must start somewhere i our educatio. It takes a lot of work ad time to obtai such a skill, ad professioal game developers should get a lot of credit for the amazig work they do. Tryig to make a video game yourself is a real eyeopeer to how serious game developmet is. Summary DirectX is a amazig tool game developers have at their disposal for developig software. If you ve reached this poit of the book after workig through each chapter, you will be at a poit where the ext best step is to go from creatig simple demos to creatig your ow games. There is much more to explore with DirectX, ad you are ecouraged to explore these other areas ow that you have a good hadle o the API ad how it works. As a begier there will be a balacig act betwee learig more about graphics programmig ad gaiig experiece with game programmig, which go together but are ot oe ad the same. I this book we ve barely scratched the surface of graphics programmig; there is a moutai of iformatio waitig for you to lear ad explore. There are also the topics of game physics, artificial itelligece, game egie architecture ad desig, advaced C++ software desig (or whatever your laguage of choice is), game desig, etwork game programmig, ad so much more. Each of these topics is a huge subject area ad ofte icludes separate job titles performed by teams of experts i their fields. Becomig a game developer is a log jourey but ca be a very excitig experiece of learig ad explorig. By completig this book, you ve take your first few steps dow this rabbit hole that will hopefully lead you to creatig the game experieces you ve always dreamed of.