04 98 374 Gaming Development Fundamentals
04 98 374 Gaming Development Fundamentals
www.it-ebooks.info
www.it-ebooks.info
VP & PUBLISHER EDITOR DIRECTOR OF SALES E#ECUTIVE MAR$ETI%G MA%AGER MICROSOFT PRODUCT MA%AGER ASSISTA%T EDITOR EDITORIAL ASSISTA%T ASSISTA%T MAR$ETI%G MA%AGER SE%IOR PRODUCTIO% & MA%UFACTURI%G MA%AGER ASSOCIATE PRODUCTIO% MA%AGER PRODUCTIO% EDITOR CREATIVE DIRECTOR COVER DESIG%ER TECH%OLOG/ A%D MEDIA Co2er 3"o o4 5 Mi!"ael Mel*or10Ge y Ima)e&6 In!(
Don Fowley Bryan Gambrel Mi !"ell Bea on C"ri& R'el Gene R( Lon)o o* Mi!ro&o* Learnin) +enni*er Lar , Alli&on -in.le Debbie Mar in +ani& Soo +oel Balbin E')enia Lee Harry %olan Geor)ina Smi " Tom $'le&a0-en1y A&"enber)
T"i& boo. wa& &e in Garamon1 by A3 ara6 In!( an1 3rin e1 an1 bo'n1 by Bin17Ri e Robbin&2ille( T"e !o2er wa& 3rin e1 by Bin17Ri e Robbin&2ille( Co3yri)" 5 89:; by +o"n -iley & Son&6 In!( All ri)" & re&er2e1( %o 3ar o* "i& 3'bli!a ion may be re3ro1'!e16 & ore1 in a re rie2al &y& em or ran&mi e1 in any *orm or by any mean&6 ele! roni!6 me!"ani!al6 3"o o!o3yin)6 re!or1in)6 &!annin) or o "erwi&e6 e<!e3 a& 3ermi e1 'n1er Se! ion& :9= or :9> o* "e :?=@ Uni e1 S a e& Co3yri)" A! 6 wi "o' ei "er "e 3rior wri en 3ermi&&ion o* "e P'bli&"er6 or a' "ori,a ion "ro')" 3aymen o* "e a33ro3ria e 3er7!o3y *ee o "e Co3yri)" Clearan!e Cen er6 In!( 888 Ro&ewoo1 Dri2e6 Dan2er&6 MA 9:?8A6 web&i e www(!o3yri)" (!om( ReB'e& & o "e P'bli&"er *or 3ermi&&ion &"o'l1 be a11re&&e1 o "e Permi&&ion& De3ar men 6 +o"n -iley & Son&6 In!(6 ::: Ri2er S ree 6 Hobo.en6 %+ 9=9A97C==;6 D89:E=;>7@9::6 *a< D89:E=;>7 @99>6 web&i e " 3400www(wiley(!om0)o03ermi&&ion&( Mi!ro&o* 6 A! i2e#6 E<!el6 In*oPa "6 Mi!ro&o* Pre&&6 MSD%6 One%o e6 O' loo.6 Pi2o C"ar 6 Pi2o Table6 PowerPoin 6 S"arePoin 6 SFL Ser2er6 Vi&io6 Vi&'al Ba&i!6 Vi&'al CG6 Vi&'al S '1io6 -in1ow&6 -in1ow& =6 -in1ow& Mobile6 -in1ow& Ser2er6 an1 -in1ow& Vi& a are ei "er re)i& ere1 ra1emar.& or ra1emar.& o* Mi!ro&o* Cor3ora ion in "e Uni e1 S a e& an10 or o "er !o'n rie&( O "er 3ro1'! an1 !om3any name& men ione1 "erein may be "e ra1emar.& o* "eir re&3e! i2e owner&( T"e e<am3le !om3anie&6 or)ani,a ion&6 3ro1'! &6 1omain name&6 e7mail a11re&&e&6 lo)o&6 3eo3le6 3la!e&6 an1 e2en & 1e3i! e1 "erein are *i! i io'&( %o a&&o!ia ion wi " any real !om3any6 or)ani,a ion6 3ro1'! 6 1omain name6 e7mail a11re&&6 lo)o6 3er&on6 3la!e6 or e2en i& in en1e1 or &"o'l1 be in*erre1( T"e boo. e<3re&&e& "e a' "orH& 2iew& an1 o3inion&( T"e in*orma ion !on aine1 in "i& boo. i& 3ro2i1e1 wi "o' any e<3re&&6 & a ' ory6 or im3lie1 warran ie&( %ei "er "e a' "or&6 +o"n -iley & Son&6 In!(6 Mi!ro&o* Cor3ora ion6 nor "eir re&eller& or 1i& rib' or& will be "el1 liable *or any 1ama)e& !a'&e1 or alle)e1 o be !a'&e1 ei "er 1ire! ly or in1ire! ly by "i& boo.( All 3"o o& in "i& boo. were 3rin e1 wi " 3ermi&&ion o* "e !o3yri)" owner( For all o "er "ir1 3ar y 3"o o 3ro2i&ion& in "e e< 6 "e !o3yri)" "ol1er& are in1i!a e1 near "e 3"o o( T"e remainin) 3"o o& were !rea e1 by "e a' "or& o* "i& e< boo. an1 3rin e1 wi " "eir 3ermi&&ion( ISB% ?=>7:7::>7AC?>?7: Prin e1 in "e Uni e1 S a e& o* Ameri!a :9 ? > = @ C ; A 8 :
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
, iii
www.it-ebooks.info
www.it-ebooks.info
+reface
-el!ome o "e Mi!ro&o* O**i!ial A!a1emi! Co'r&e DMOACE 3ro)ram *or Gamin) De2elo3men F'n1amen al&( MOAC re3re&en & "e !ollabora ion be ween Mi!ro&o* Learnin) an1 +o"n -iley & Son&6 In!( Mi!ro&o* an1 -iley eame1 '3 o 3ro1'!e a &erie& o* e< boo.& "a 1eli2er !om3ellin) an1 inno2a i2e ea!"in) &ol' ion& o in& r'! or& an1 &'3erior learnin) e<3erien!e& *or & '1en &( In*'&e1 an1 in*orme1 by in71e3 " .nowle1)e *rom "e !rea or& o* Mi!ro&o* 3ro1'! &6 an1 !ra* e1 by a 3'bli&"er .nown worl1wi1e *or "e 3e1a)o)i!al B'ali y o* i & 3ro1'! &6 "e&e e< boo.& ma<imi,e &.ill& ran&*er in minim'm ime( S '1en & are !"allen)e1 o rea!" "eir 3o en ial by '&in) "eir new e!"ni!al &.ill& a& "i)"ly 3ro1'! i2e member& o* "e wor.*or!e( Be!a'&e "i& .nowle1)eba&e !ome& 1ire! ly *rom Mi!ro&o* 6 !rea or o* "e Mi!ro&o* Te!"nolo)y A&&o!ia e DMTAE e<am& Dwww(mi!ro&o* (!om0learnin)0!er i*i!a ionE6 yo' are &'re o re!ei2e "e o3i!al !o2era)e "a i& mo& rele2an o & '1en &H 3er&onal an1 3ro*e&&ional &'!!e&&( Mi!ro&o* H& 1ire! 3ar i!i3a ion no only a&&'re& yo' "a MOAC e< boo. !on en i& a!!'ra e an1 !'rren M i al&o mean& "a & '1en & will re!ei2e "e be& in& r'! ion 3o&&ible o enable "eir &'!!e&& on !er i*i!a ion e<am& an1 in "e wor.3la!e(
,
T"e Mi!ro&o* O**i!ial A!a1emi! Co'r&e &erie& i& a !om3le e 3ro)ram *or in& r'! or& an1 in& i '7 ion& o 3re3are an1 1eli2er )rea !o'r&e& on Mi!ro&o* &o* ware e!"nolo)ie&( -i " MOAC6 we re!o)ni,e "a 6 be!a'&e o* "e ra3i1 3a!e o* !"an)e in "e e!"nolo)y an1 !'rri!'l'm 1e2el7 o3e1 by Mi!ro&o* 6 "ere i& an on)oin) &e o* nee1& beyon1 !la&&room in& r'! ion ool& *or an in& r'! or o be rea1y o ea!" "e !o'r&e( T"e MOAC 3ro)ram en1ea2or& o 3ro2i1e &ol' ion& *or all "e&e nee1& in a &y& ema i! manner in or1er o en&'re a &'!!e&&*'l an1 rewar1in) !o'r&e e<3erien!e *or bo " in& r'! or an1 & '1en K e!"ni!al an1 !'rri!'l'm rainin) *or in& r'! or rea1ine&& wi " new &o* ware relea&e&M "e &o* ware i &el* *or & '1en '&e a "ome *or b'il1in) "an1&7on &.ill&6 a&&e&&men 6 an1 2ali1a ion o* &.ill 1e2elo3men M an1 a )rea &e o* ool& *or 1eli2erin) in& r'! ion in "e !la&&room an1 lab( All are im3or an o "e &moo " 1eli2ery o* an in ere& in) !o'r&e on Mi!ro&o* &o* ware6 an1 all are 3ro2i1e1 wi " "e MOAC 3ro)ram( -e "in. abo' "e mo1el below a& a )a')e *or en&'rin) "a we !om3le ely &'33or yo' in yo'r )oal o* ea!"in) a )rea !o'r&e( A& yo' e2al'a e yo'r in& r'! ional ma erial& o3 ion&6 yo' may wi&" o '&e "e mo1el *or !om3ari&on 3'r3o&e& wi " a2ailable 3ro1'! &(
i. ,
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
-e+agogical Features
T"e MOAC e< boo. *or Gamin) De2elo3men F'n1amen al& i& 1e&i)ne1 o !o2er all "e learnin) obLe! i2e& *or MTA E<am ?>7A=;6 w"i!" are re*erre1 o a& i & IobLe! i2e 1omain&(J T"e Mi!ro&o* Te!"nolo)y A&&o!ia e DMTAE e<am obLe! i2e& are "i)"li)" e1 "ro')"o' "e e< boo.( Many 3e1a)o)i!al *ea 're& "a2e been 1e2elo3e1 &3e!i*i!ally *or Mi!ro&o* O**i!ial A!a1emi! Co'r&e 3ro)ram&( Pre&en in) "e e< en&i2e 3ro!e1'ral in*orma ion an1 e!"ni!al !on!e3 & wo2en "ro')"o' "e e< boo. rai&e& !"allen)e& *or "e & '1en an1 in& r'! or ali.e( T"e Ill'& ra e1 Boo. To'r "a *ollow& 3ro2i1e& a )'i1e o "e ri!" *ea 're& !on rib' in) o "e Mi!ro&o* O**i!ial A!a1emi! Co'r&e 3ro)ramH& 3e1a)o)i!al 3lan( Followin) i& a li& o* .ey *ea 're& in ea!" le&&on 1e&i)ne1 o 3re3are & '1en & *or &'!!e&& a& "ey !on in'e in "eir IT e1'!a ion6 on "e !er i*i!a ion e<am&6 an1 in "e wor.3la!e4 N Ea!" le&&on be)in& wi " an E<am ObLe! i2e Ma ri<( More "an a & an1ar1 li& o* learnin) obLe! i2e&6 "e E<am ObLe! i2e Ma ri< !orrela e& ea!" &o* ware &.ill !o2ere1 in "e le&&on o "e &3e!i*i! e<am obLe! i2e 1omain( N Con!i&e an1 *reB'en S e37by7S e3 in& r'! ion& ea!" & '1en & new *ea 're& an1 3ro2i1e an o33or 'ni y *or "an1&7on 3ra! i!e( %'mbere1 & e3& )i2e 1e aile16 & e37by7& e3 in& r'! ion& o "el3 & '1en & learn &o* ware &.ill&( N Ill'& ra ion&4 S!reen ima)e& 3ro2i1e 2i&'al *ee1ba!. a& & '1en & wor. "ro')" "e e<er!i&e&( T"e ima)e& rein*or!e .ey !on!e3 &6 3ro2i1e 2i&'al !l'e& abo' "e & e3&6 an1 allow & '1en & o !"e!. "eir 3ro)re&&( N $ey Term&4 Im3or an e!"ni!al 2o!ab'lary i& li& e1 wi " 1e*ini ion& a "e be)innin) o* "e le&&on( -"en "e&e erm& are '&e1 la er in "e le&&on6 "ey a33ear in bol1 i ali! y3e an1 are 1e*ine1( T"e Glo&&ary !on ain& all o* "e .ey erm& an1 "eir 1e*ini ion&( N En)a)in) 3oin 7o*7'&e Rea1er Ai1&6 lo!a e1 "ro')"o' "e le&&on&6 ell & '1en & w"y "i& o3i! i& rele2an DT"e Bo om LineE6 an1 3ro2i1e & '1en & wi " "el3*'l "in & DTa.e %o eE( Rea1er Ai1& al&o 3ro2i1e a11i ional rele2an or ba!.)ro'n1 in*orma ion "a a11& 2al'e o "e le&&on( N Cer i*i!a ion Rea1y *ea 're& "ro')"o' "e e< &i)nal & '1en & w"ere a &3e!i*i! !er i*i!a ion obLe! i2e i& !o2ere1( T"ey 3ro2i1e & '1en & wi " a !"an!e o !"e!. "eir 'n1er& an1in) o* "a 3ar i!'lar MTA obLe! i2e an16 i* ne!e&&ary6 re2iew "e &e! ion o* "e le&&on w"ere i i& !o2ere1( MOAC o**er& !om3le e 3re3ara ion *or MTA !er i*i!a ion( N En17o*7Le&&on F'e& ion&4 T"e $nowle1)e A&&e&&men &e! ion 3ro2i1e& a 2arie y o* m'l i3le7!"oi!e6 r'e7*al&e6 ma !"in)6 an1 *ill7in7 "e7blan. B'e& ion&( N En17o*7Le&&on E<er!i&e&4 Com3e en!y A&&e&&men !a&e &!enario& an1 Pro*i!ien!y A&&e&&men !a&e &!enario& are 3roLe! & "a e& & '1en &H abili y o a33ly w"a "eyH2e learne1 in "e le&&on(
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
,.
www.it-ebooks.info
www.it-ebooks.info
2esso* Features
/$00O1
Ob9ecti.e Matri4
:3; T38M(
anisotropic filtering collision detection collision response filter fi%ed step game loop frames per second =fps> game loops gameflow graphics pipeline general-purpose computing on graphics processing unit =G+G+7> ?igh /e!el 0hading /anguage =?/0/> interpolation linear filtering mipmap nonplayer characters =1+C> per-pi%el lighting physics engine physics processing unit =++7> physics simulation pi%el shader point filtering pro:ection matri% pro:ection space scene hierarchy scripted-e!ents shader sprite animation te%els te%ture mapping !ariable step game loop !erte% shader !iew matri% !iew space world matri% world space
S e2e -a &on wor.& a Con o&o Gamin) In!(6 an1 lea1& "e 1e2elo3men eam( Hi& !om3any i& 1e2elo3in) a *ir& 73er&on &"oo er DFPSE )ame *or !on&ole an1 !om3' er &y& em&( T"e eam "a& 1e&i)ne1 "e )ameH& 2i&'al worl1( T"ey are now in "e 3ro!e&& o* 1e&i)nin) 2ario'& !om3onen & *or "eir )ame '&in) #%A ;(9( A& a *ir& & e36 S e2e an1 "i& eam 1e!i1e o 3ro2i1e a )oo1 )ame*low *or "eir )ame( For "i&6 "ey i1en i*y a well71e&i)ne1 &eB'en!e o* !"allen)e& an1 rewar1& *or "eir )ame in or1er o mo2e "e )ame & ory *orwar1( T"ey &eB'en!e "e !"allen)e& in &'!" a way "a i in!rea&e& "e )ameH& !om3le<i y a ea!" le2el &'!!e&&i2ely( T"ey al&o 1e!i1e o ' ili,e e2ery elemen o* "e )ame e**i!ien ly "ro')" o3 imi,in) "e & a e& o* "eir )ame( T"i& en&'re& "a "eir )ame r'n& &moo "ly a!ro&& 1i**eren 3la *orm&( T"e !en ral !om3onen o* any )ame 1e&i)n i& )ame loo3( S e2eH& eam im3lemen & "e main loo3 in #%A o "el3 "e )ame o r'n &moo "ly irre&3e! i2e o* "e 3layerH& in3' ( Player& in era! wi " a )ame "ro')" obLe! & an1 !"ara! er&( To ma.e "e&e obLe! & an1 !"ara! er& !ome ali2e on "e &!reen6 S e2eH& eam a11& "e min' e& 1e ail o "e&e )ame elemen &6 &'!" a& "e y3e& o* mo2emen "ey !an ma.e6 "e a&.& "ey !an 3er*orm6 an1 &o on( Moreo2er6 "e eam al&o 1e!i1e& o &im'la e ar i*i!ial in elli)en!e o "eir )ame !"ara! er& o "el3 re ain "e in ere& o* 3layer&(
!%
Creating Gameflow
Game*low i& "e 3ro)re&&ion o* "e )ame *rom one & a e o ano "er & a e( I !om3ri&e& o* a &eB'en!e o* !"allen)in) a&.& an1 3ro2i1e& rewar1& o 3layer& o mo i2a e !om3le ion( Game*low ma.e& 3layer& e<3erien!e "e )ame an1 )i2e& "em a &en&e o* a!!om3li&"men (
Vi1eo )ame& o* en "a2e a &erie& o* !"allen)in) a&.& or !om3le< &i 'a ion&( T"e )oal o* "e )ame i& *or "e 3layer& o !om3le e "e a&.& an1 &ol2e "e &i 'a ion& o re!ei2e rewar1&( T"e rewar1 !an be any "in)Kmo2in) o a "i)"er )ame le2el6 ano "er li*e6 &ome boo y6 new wea3on&6 a!!e&& o &3e!i*i! area& o* "e )ame6 &ome e< ra 3oin &6 an1 &o on( T"e&e rewar1&
public Vector2 position; /* defines the normal color of the menu item */ public Color normal @ Color.White; /* highlighted */ public Color highlight @ Color.Yellow; /* constructor that initializes the name and the position of the menuitem */ public !enu"tem#string name$Vector2 pos% menu&ame @ name; position @ pos; defines the color of the menu item when it is
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
Creati*g the >ame Out=ut <esig* , #1 "e 3er*orman!e o* yo'r )ame by '&in) "e "ar1ware a!!elera ion "ro')" !om3a ible )ra3"i!& !ar1&( Dire! 8D al&o "el3& yo' o 1i&3lay yo'r )ame in 1i**eren 1o & 3er in!" DDPIE &e in)& by allowin) a' oma i! GUI &!alin)( DPI i& a mea&'re o* re&ol' ion6 in 3ar i!'lar "e n'mber o* 1i&!re e 1o & "a !an a33ear in a line wi "in "e &3an o* one in!"( DPI mea&'remen 1e3en1& on 2ario'& 1i&3lay re&ol' ion& an1 &!reen &i,e&( N Dire! So'n14 Dire! So'n1 i& a &e o* API& "a 3ro2i1e !omm'ni!a ion be ween m'l ime1ia a33li!a ion&6 in!l'1in) yo'r )ame a33li!a ion& an1 "e &o'n1 !ar1 1ri2er( Dire! So'n1 "el3& in ren1erin) &o'n1& an1 3lay ba!. o* m'&i!( A11i ionally6 Dire! So'n1 al&o 3ro2i1e& re!or1in) an1 &o'n1 mi<in) o* m'l i3le a'1io & ream& an1 a11& e**e! & &'!" a& e!"o an1 re2erb o &o'n1( T"e la e& 2er&ion o* Dire! So'n1 !an 3lay m'l i!"annel &'rro'n1 &o'n1 a "i)" re&ol' ion( Dire! So'n1AD i& an e< en&ion o* Dire! So'n1 "a 3la!e& "e &o'n1 '&in) a "ree71imen&ional !oor1ina e &y& em in& ea1 o* a &im3le le* an1 ri)" 3an( Dire! So'n1AD en"an!e& "e reali& i! e**e! o* &o'n1 in a AD 2ir 'al worl1( To1ay6 Dire! So'n1 an1 Dire! So'n1AD are mer)e1 an1 !ommonly re*erre1 o a& Dire! So'n1( N Dire! Play4 Dire! Play 3ro2i1e& a &e o* API& "a 3ro2i1e& an in er*a!e be ween yo'r )ame a33li!a ion& an1 !omm'ni!a ion &er2i!e&6 &'!" a& "e In erne or lo!al ne wor.&( In &im3le erm&6 Dire! Play *orm& a layer abo2e ne wor. 3ro o!ol& &'!" a& TCP0IP( I allow& "e 3layer& o in era! wi " ea!" o "er re)ar1le&& o* "e 'n1erlyin) online &er2i!e or ne 7 wor. 3ro o!ol( I "el3& yo' o 3ro2i1e yo'r )ame 3layer& wi " )ame &e&&ion& an1 mana)e& "e *low o* in*orma ion be ween "o& & an1 3layer&( N Dire! In3' 4 Dire! In3' i& a &e o* API& "a "el3 yo'r )ame a33li!a ion o !olle! in3' *rom "e 3layer& "ro')" "e in3' 1e2i!e&( T"e in3' 1e2i!e& !an be o* any y3e6 &'!" a& a mo'&e6 .eyboar16 an1 o "er )ame !on roller&6 an1 e2en a *or!e *ee1ba!.( Moreo2er6 "i& API al&o "el3& yo' o a&&i)n )ame7&3e!i*i! a! ion& o "e b' on& an1 a<e& o* "e re&3e! i2e in3' 1e2i!e&( Dire! In3' '&e& a! ion ma33in)6 w"i!" allow& "e
)ame o re rie2e in3' 1a a wi "o' worryin) abo' "e &o'r!e in3' 1e2i!e( A! ion ma37 3in) allow& yo' o a&&o!ia e ea!" a! ion in yo'r )ame wi " one or more o* "e b'il 7in Dire! In3' 2ir 'al !on rol&( T"e Dire! In3' "en a.e& !are o* ma33in) "e&e a! ion& wi " "e !"oi!e o* "e a2ailable in3' 1e2i!e& in a &y& em( By "i& way6 i allow& "e 3layer o &ele! an1 !on*i)'re "e in3' 1e2i!e& o* "eir !"oi!e( -"en yo'r )ame r'n&6 Dire! In3' ma !"e& "e in3' re!ei2e1 *rom "e !"o&en 1e2i!e& an1 ma3& "em o "e 2ir 'al !on rol& "a are a&&o!ia e1 wi " "e re&3e! i2e )ame &3e!i*i! a! ion&(
A *or!e *ee1ba!. 1e2i!e al&o !alle1 a "a3 i! *ee1ba!. 1e2i!e wor.& in !onL'n! ion wi " on&!reen a! ion& wi "in a )ame( T"ere are many y3e& o* *or!e *ee1ba!. 1e2i!e& &'!" a& )ame 3a1&6 Loy& i!.&6 & eerin) w"eel&6 an1 &o on( T"e&e 1e2i!e& )i2e "e 3layer& *ee1ba!.& a& 2ibra ion& w"en "ey are &"oo in) a )'n or "i by an enemy( For e<am3le6 w"en a 3layer i& &"oo in) a ma!"ine )'n in an a! ion )ame6 a *or!e7*ee1ba!. Loy& i!. 1e2i!e 2ibra e& in "e 3layerH& "an1& !rea in) reali& i! *or!e&( Dire! # :: i& "e la e& 2er&ion o* Dire! #( Dire! # :: "a& im3ro2e1 *ea 're& "a "el3 yo' o 3ro2i1e & 'nnin) 2i&'al& in yo'r )ame an1 al&o im3ro2e )ame 3er*orman!e &i)ni*i!an ly( I "el3& yo' o 3ro2i1e im3ro2e1 !om3' in) an1 "i7&3ee16 "i)"ly reliable )amin)(
1$A , 2esso* @
TA2$ 1OT$
MO8$ -1"O8MAT-O1
"or more information on handling the different input de!ices in your game# refer to the C8esponding to 7ser -nputD section in the M0 1 /ibrary.
C$8T-"-CAT-O1 8$A A <hat are the different classes and structures a!ailable in 41A "ramework *.E to handle player inputs from different input de!icesB ;.) C$8T-"-CAT-O1 8$A A ?ow will you create 41A *.EBmenus for your game in ;.)
Creating Menus
Men'& are an in e)ral 3ar o* "e UI o* e2ery m'l ime1ia a33li!a ion6 in!l'1in) )ame&( A& yo' alrea1y learne1 in Le&&on A6 yo' !an '&e men'& o 3ro2i1e 3layer& wi " a li& o* o3 ion&( /o' !an '&e men'& a& 3ar o* "e )ame & ory or "e )ame &3a!e( For e<am3le6 yo' !an '&e men'& in "e )ame & ory o 3ro2i1e o3 ion& *or "e 3layer !"ara! er o &ele! a 3ar7 i!'lar wea3on or an in2en ory( /o' !an al&o '&e men'& a& a non1ie)e i! !om3onen on a wel!ome or o3enin) &!reen6 w"ere 3layer& !an &ele! "e a! i2i y "ey wan o 3er*orm( +8OG8AM M$170 /o' !an !rea e men'& *or yo'r )ame in 1i**eren way&( One way i& o !rea e "e men' a& a 1rawable )ame !om3onen an1 "en a11 "e !om3onen o yo'r )ameH& !on en &ol' ion o a!!e&& i in "e !o1e( A 1rawable )ame !om3onen 3ro2i1e& a mo1'lar a33roa!" o a11in) )ra3"i!& !on en o yo'r )ame( /o' !an re)i& er "e 1rawable )ame !om3onen wi " yo'r )ame !la&& by 3a&&in) "e !om3onen o "e Game.Components.1dd me "o1( On!e yo' re)i& er "e !om3onen 6 "e !om3onen H& ini iali,e6 1raw6 an1 '31a e me "o1& are !alle1 a' oma i!ally *rom "e Game."nitialize6 Game.,raw an1 Game.2pdate me "o1&(
Mi!ro&o* "a& no re2i&e1 Dire! In3' API &in!e Dire! # >( Mi!ro&o* "a& in ro7 1'!e1 #In3' in 3la!e o* Dire! In3' *or #bo< A@9 !on roller&(
7nderstanding
isplay -nitialiGation
Di&3lay ini iali,a ion i& a &e o* minim'm reB'iremen & "a &"o'l1 be a2ailable *or yo'r )ame o r'n &moo "ly on "e !"o&en 3la *orm(
MO8$ -1"O8MAT-O1
"or more information on the drawable game component class# refer to the C !icrosoft.)na.*ramewor+D section in the M0 1 /ibrary.
Crea e yo'r 3roLe! an1 name i C'& omMen'( To !rea e a 1rawable !om3onen 6 3er*orm "e *ollowin) & e3&4 :( In Sol' ion E<3lorer6 &ele! A11 an1 "en &ele! %ew I em( 8( In "e A11 %ew I em 1ialo) bo<6 &ele! "e GameComponent an1 name i !enuComponent D&ee Fi)'re C7;E( A( On!e "e !la&& i& )enera e16 !"an)e "e ba&e !la&& *rom !icrosoft.)na.*ramewor+. GameComponent o !icrosoft.)na.*ramewor+.,rawableGameComponent T"i& a' oma i!ally )enera e& "e 1e*a'l !on& r'! or *or "e !enuComponent !la&&6 an o2erri1e *or "e ini iali,e me "o16 an1 an o2erri1e *or "e '31a e an1 "e 1raw me "o1&( %ow6 yo' nee1 o a11 "e a33ro3ria e !o1e o !rea e "e reB'ire1 men' i em& an1 ma.e "em a33ear on "e &!reen( T"e *ollowin) & e3& !rea e a &im3le men' in er*a!e "a li& & 1i**eren o3 ion& *or "e 3layer6 &'!" a& o3 ion& o & ar "e )ame6 2iew "e "i)" &!ore&6 an1 en1 "e )ame( CO $ A M$17 >3T 83A<;. Crea e "e reB'ire1 men' i em an1 1raw "em on "e &!reen( ;. Crea e a !enu"tem !la&& o "ol1 ea!" men' i em6 a& &"own in "e *ollowin) !o1e4
namespace Custom!enu class !enu"tem public string menu&ame; C$8T-"-CAT-O1 8$A A ?ow will you mo!e your game ob:ectsB *.9 C$8T-"-CAT-O1 8$A A <hat is deformation of a game ob:ectB *.9
<esig*i*g (=ecific >ame Com=o*e*ts , 1&@ $"O8M-1G O.5$CT0 Some ime&6 yo' will nee1 o !"an)e "e &"a3e o* a )ame mo1el *rom i & ori)inal &"a3e a& a re&'l o* an e2en ( For e<am3le6 in a !ar ra!in) )ame6 a&&'me "a a 3layer !"ara! erH& !ar "a& !ra&"e1( In "i& !a&e6 yo' nee1 o &"ow "e im3a! o* "e !ra&" by 1e*ormin) "e area o* "e !ar a**e! e1 by "e !ra&"( For in& an!e6 yo' !an &"ow a 1en in "e *ron b'm3er( In "i& way6 yo' !an 3ro2i1e a loo. o* 1ama)e an1 !on2in!e "e )ame 3layer( De*orma ion )enerally *in1& '&e& in )ame&( /o' !an '&e 1e*orma ion6 *or e<am3le6 o ma.e a !"ara! er *a or "in6 o !rea e o!ean wa2e&6 or &im3ly o !"an)e "e a33earan!e o* an obLe! ( -"a e2er "e en1 re&'l 6 o 1e*orm "e obLe! 6 yo' "a2e o mani3'la e "e )eome ry an1 "e e< 're in*orma ion( To 1o "i&6 yo' !"an)e "e AD )eome ry in*orma ion o* "e obLe! an1 "en &en1 "e re2i&e1 in*orma ion *or ran&*orma ion in o 8D 3i<el&( De*ormin) obLe! & i& ma1e ea&y by "e '&e o* &"a1er&( MO6-1G O.5$CT0 All )ame& !on ain bo " & a i! obLe! & an1 mo2eable obLe! &( S a i! obLe! & in yo'r )ame !an be ree&6 & one&6 wall&6 an1 &o on( Howe2er6 mo2emen o* & a i! obLe! & !an al&o !"an)e in a!!or7 1an!e wi " "e )ame7&3e!i*i! reB'iremen &( For e<am3le6 in a ma,e )ame6 "e wall& !an mo2e6 or in a !ar7ra!in) )ame6 "e & one& !an mo2e a& a !ar ra!e& by( Mo2eable obLe! & in a )ame !an be "'man !"ara! er&6 animal&6 or 2e"i!le&( T"e mo2eable obLe! &6 a& "e name &'))e& &6 nee1 o be in mo ion 1e3en1in) on "e )ame & oryline( -"en yo' mo2e obLe! &6 yo' nee1 o e&&en ially 3ro2i1e "e #%A Framewor. wi " "e !"an)e1 3o&i ion 2er i!e& o* "e obLe! 6 an1 "e )ra3"i!& 3i3eline will "en ran&*orm "e mo ion on "e &!reen( Howe2er6 yo' &"o'l1 !on&i1er o "er elemen & w"en yo' mo2e "e obLe! ( For e<am3le6 yo' mi)" nee1 o !on&i1er w"e "er "e obLe! will !olli1e wi " ano "er obLe! on "e &!reen6 or w"e "er "e li)" e**e! on "e obLe! nee1& o be re2i&e1( T"e *ollowin) !o1e &am3le mo2e& an obLe! 4
protected o3erride 3oid 2pdate#Game4ime game4ime%
48$"
For more in*orma7 ion abo' &"a1er&6 re*er o "e &e! ion6 ICrea in) "e Feel o* "e C"ara! er6J in "i& le&&on(
O
//2pdate position in e3er0 frame 5.8f Vector5 position @ model"nitial6osition 7 *game4ime*an0,irection ; //Create translation matri/ from that position ' worldmatri/ @ !atri/.create4ranslation#position%;
protected o3erride 3oid ,raw#Game4ime game4ime% //"nitialize effect and draw model .asic9ffect effect @ new .asic9ffect#%; effect.World @ world!atri/ ; model.,raw#%; ' C$8T-"-CAT-O1 8$A A <hy do you need to calculate the point distance betweenob:ects B *.9
-10$8T-1G +O-1T -0TA1C$ .$T<$$1 O.5$CT0 -"en 1e&i)nin) "e obLe! & in a )ame6 i i& e&&en ial o !al!'la e "e !on& an mo2emen ran&i ion& o* "e in!l'1e1 obLe! &( An obLe! a.e& &ome ime o mo2e *rom one 3oin o ano "erM a mo2emen ne!e&&i a e& "a yo' m'& a!!o'n *or "e 1i& an!e !o2ere1( $ee3in)
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
!& , 2esso* ( 6- $O "O8MAT TA+$0 A n'mber o* 2i1eo *orma & are a2ailable( Some o* "e mo& 3o3'lar one& are "e *ollowin)4 N DVD Vi1eo Forma 4 DVD '&e& "e o3 i!al & ora)e e!"nolo)y( I !an be re!or1able6 &'!" a& DVD7R6 DVD7RAM6 an1 DVD7R-6 or a33li!a ion7ba&e16 &'!" a& DVD7Vi1eo6 DVD7 Vi1eo Re!or1in) DDVD7VRE6 an1 DVD7DVD A'1io Re!or1in) DDVD7ARE( T"ere are al&o !'& omi,e1 DVD *orma & *or )ame !on&ole&6 &'!" a& Sony PlayS a ion an1 Mi!ro&o* #bo<( N Fla&" Vi1eo Forma 4 T"e !'rren 2er&ion& o* Fla&"6 namely 2er&ion& @ an1 =6 &'33or *'ll mo ion 2i1eo an1 & reamin) 2i1eo re&3e! i2ely( Fla&" i& '&er7*rien1ly an1 a1a3 & o all en2ironmen &( U&er& !an !rea e "eir own in era! i2e me1ia !on en wi " )ra3"i!& an1 anima ion&6 an1 3er&onali,e1 me1ia 3layer& wi " !'& om !on rol&( N F'i!.Time Vi1eo Forma 4 F'i!.Time i& a m'l ime1ia e!"nolo)y "a e**i!ien ly man7 a)e& 2i1eo6 a'1io6 anima ion6 m'&i!6 an1 2ir 'al reali y en2ironmen &( N RealMe1ia Vi1eo Forma 4 RealMe1ia i& a m'l ime1ia e!"nolo)y an1 i& wi1ely '&e1 *or & reamin) !on en o2er "e In erne ( N -in1ow& Me1ia Vi1eo Forma 4 -in1ow& Me1ia i& one o* "e mo& 3o3'lar e!"nolo7 )ie& a2ailable *or & reamin) or 1ownloa1in) a'1io or 2i1eo( TOO/0 "O8 COM+8$00-O1 O" GAM$0 Com3re&&ion o* )ame& reB'ire& a 2arie y o* ool&( O* "e&e ool&6 "e mo& !ommon ool& are Pen!o1er an1 Ra1 Game Tool&( N Pen!o1er4 Pen!o1er i& an API7ba&e1 2i1eo en!o1in) &er2i!e "a i& a2ailable online( I !on2er & 2i1eo& *or a web&i e6 an a33li!a ion6 or a 2i1eo library in o *orma & "a are a1a3 7 able o "e mobile 3"one or o "er 1e&irable 1e2i!e( I &'33or & mo& ly all "e 2i1eo an1 a'1io !o1e!&( Pen!o1er mainly *o!'&e& on 2i1eo en!o1in) alon) wi " a'1io en!o1in)( N Bin. Vi1eo4 Bin. Vi1eo i& 1e2elo3e1 by RAD Game Tool&( I i& a 2i1eo !o1e! *or )ame&(
TA2$ 1OT$
T"e y3e o* !om3re&&ion e!"niB'e& *or a )ame 1e3en1& on "e )ame en)ine "a yo' '&e(
(:/22 ('MMA8;
-1 T?-0
/$00O1 # AO7 /$A81$
(1ill (ummary
I Graphics type means the medium of graphics that a game designer uses to create the game design elements. I There are two types of graphics# 9 and ( . I 9 graphics depict images in the two-dimensional model. I ( graphics depict images in a real-time three-dimensional model. I A graphical design element enhances the look and feel of images. I The !arious !isual design elements are bitmaps# sprites# !ector graphics# lighting# blending# te%t# te%tures# ( geometry# paralla% mapping# and sprite font. I The user interface =7-> layout constitutes all of the 7- elements. I 7- concept is the idea behind the making of 7- layout. I 7- components generally reside within the game story or within the game space. iegetic# spatial# meta# and nondiegetic are the !arious types of 7- components. I iegetic components e%ist within both the game story and the game space. I 0patial components e%ist in the game space. They pro!ide e%tra information on a game ob:ect or character to the player# which eliminates the necessity of the player :umping to menu screens to seek more information. I Metacomponents e%ist as part of the game story alone. Aou can use metacomponents to e%press effects such as a blood spatter or cracked glass. I 1ondiegetic components are not part of the game story or the game space. These components can ha!e their own !isual treatment and players can completely customiGe them.
Creati*g the >ame Out=ut <esig* , $? Player& e<3e! )ame& "a are &im3ler o '&e an1 ea&ier o 3lay( /o' m'& "ere*ore & ri.e a bal7 an!e be ween immer&ion an1 '&abili y( To !rea e a )ame "a i& en)a)in) an1 al&o 3ro2i1e& "e o3 imal )amin) e<3erien!e6 yo' m'& &ele! "e UI layo' a* er !are*'l !on&i1era ion o* "e 3ro& an1 !on& o* ea!" UI y3e( Table A7: 3re&en & a B'i!. !om3ari&on o* "e 1i**eren UI !om3onen &( T"e 1e!i&ion o !"oo&e "e ri)" !om3onen & ba&e1 on "e wo me "o1& i& B'i e ri!.y( Some )ame 1e&i)ner& ar)'e "a '&in) !om3onen & "a *orm 3ar o* bo "6 "e )ame & ory an1 "e )ame &3a!e DP'r3o&e : an1 P'r3o&e 8E6 "el3& in !rea in) )ame& "a are more en)a)in)( O "er )ame 1e&i)ner& !o'n er7ar)'e "a "e&e !om3onen & a mo& 3ro2i1e a 2i&'al a33eal6 b' 3re&en only limi e1 in*orma ion o "e 3layer( O* en6 "e in*orma ion 3re&en e1 "ro')" "e&e !om3onen & ma.e& "e 3layer mi&in er3re an1 ma.e error& 1'rin) "e )ame( T"i& re1'!e& "e 3layerH& )amin) e<3erien!e( For e<am3le6 in Dea1 Sea6 "e "olo)ra3"i! AD ma3 wa& no in era! i2e eno')" o na2i)a e "e 3layer( T"e ma3 1i1 no a! li.e a real7 ime GPS &y& emM ra "er6 i wa& L'& a nonin era! i2e elemen *or ma.in) "e )ame a ra! i2e( A non1i7 e)e i! !om3onen !o'l1 "a2e ea&ily re3la!e1 i (
7- COM+O1$1T iegetic
+8O0 N $nables the player to connect with the game world. N ?elps in wea!ing the storyline along with the game.
CO10 N 0eems contri!ed or forced if the 7- elements are not represented properly. N May not necessarily pro!ide proper information to the player. N 1ot suited for games in which there must be a break in the game to pro!ide critical information to the player. N oes not immerse the player into the gameplay# as the diegetic components do. N Can seem forced if the elements are not reJuired.
:*owle+ge Buestio*s
Assessme*t
1ondiegetic
N $nables 7- elements to ha!e their own !isual treatment. N ?elps in o!ercoming limitations imposed by other 7- components.
0patial
N ?elps to separate information to the player and information to the playerKs character. N +layer does not need to tab between screens to take in information.
I 0a!ing a game helps the player to pre!ent the loss of progress in the game when he needs to Juit the game due to an interruption or for taking a break when the game session is long. I Aou can capture and retrie!e the game data by using the #mlSeriali,er and the S ora)eCon ainer classes in 41A *.E. I efining game states helps you to track the flow in your game.
Meta
N $nsures replication of real-world N Can create confusion and can e%perience through blends with easily distract the player from diegetic layout. the actual game play. N +resents clear information to the player. N +layer may waste game time in searching for this kind of layout. This might lead to distraction from the actual gameplay. N 8eJuires a good storyline for the use of layout.
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.& 3ro2i1e1( :( a&&i& "e 1e2elo3men o* 2i1eo )ame&(
8( QQQQQQQQQQQQQ AI e!"niB'e in2ol2e& "e Crai) Reynol1& al)ori "m( A( QQQQQQQQQ an1 QQQQQ are "e ool& "a mi)" be relea&e1 wi " "e *inal )ame( ;( T"e QQQQQQQ "el3& o !on2er "e ar wor. in o *orma & reB'ire1 by "e )ame( C( QQQQQQQQ me "o1 "el3& o loa1 a e< 're *rom "e #%A Framewor. Con en Pi3eline( @( QQQQQQQQQ !la&& "el3& yo' o re rie2e "e 3"y&i!al & ora)e 1e2i!e o &a2e "e )ame 1a a( =( QQQQQQQQQQQQ !la&& "el3& yo' o &eriali,e an1 1e&eriali,e obLe! & o an1 *rom #ML 1o!'men ( >( QQQQQQQQ i& a lo)i!al !on!e3 "a "el3& yo' o ra!. "e *low o* a )ame( ?( /o' !an 3ro2i1e ill'&ion o* in elli)en!e in non3layer !"ara! er& by in!or3ora in) QQQQQQQQQQQQ e!"niB'e&( :9( QQQQQQQQQ an1 QQQQQQQ are 3o3'lar 3a " *in1in) AI e!"niB'e&(
3asy-to-8ea+ Tables
Multiple Choice
:( -"i!" o* "e *ollowin) obLe! & an1 me "o1& will yo' '&e w"en &a2in) a &a2e )ame *ileR DC"oo&e all "a a33ly(E a( S ora)eCon ainer obLe! b( S ream obLe! !( #mlSeriali,er(Seriali,e me "o1 1( #mlSeriali,er(De&eriali,e me "o1 8( -"i!" o* "e *ollowin) AI e!"niB'e& 3la!e& no1e& in "e )ame worl1 an1 '&e& "em in "e 3a " *in1in) al)ori "m&R a( -ay3oin na2i)a ion b( Brea1!r'mb 3a " *ollowin) !( E2a1in) AI 1( Terrain analy&i& A( -"i!" o* "e *ollowin) !la&&e& "el3 yo' o )e a & ora)e 1e2i!e o & ore "e )ame 1a aR a( S ora)eDe2i!e b( S ora)eCon ainer !( #mlSeriali,er 1( S ream
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
www.it-ebooks.info
1! , 2esso* ;
"igure ;-;( An e%ample of an ob:ect
-hotos
58@ISO0iS o!. P"o o)ra3"y
A "e !on!e3 'ali,a ion & a)e6 "e 1e&i)ner i1en i*ie& "e obLe! & *or ea!" &!ene in "e )ame an1 3a&& i on o "e !on!e3 ar i& 6 w"o will 1e&i)n "e&e obLe! & .ee3in) "e 2i&'al "eme in min1( Fi)'re :7:A &"ow& an e<am3le o* an obLe! ( C?A8ACT$80 In mo& o* "e )ame& o1ay6 a !"ara! er re3re&en & "e 3layer( T"ere*ore6 i i& im3or an o !on!e3 'ali,e a !"ara! er in "e mo& reali& i! manner &o "a "e 3layer !an re!o)ni,e "im&el* or "er&el* "ro')" "a !"ara! er( Con!e3 'ali,in) a !"ara! er in2ol2e& *le&"in) o' yo'r !"ara! erH& 3er&ona( T"i& broa1ly in!l'1e& !on!e3 'ali,in) "e !"ara! erH& loo.&6 ima)e6 a! ion&6 an1 1ialo)&( Fin1in) an&wer& o "e *ollowin) B'e& ion& will "el3 yo' !rea e yo'r !"ara! erH& 3er&ona4 N How will "e 3"y&iB'e o* "e !"ara! er beR N -"a 1oe& "e !"ara! er ea R N -"ere 1oe& "e !"ara! er li2eR N -"a i& "e !"ara! erH& ro' ineR N How 1oe& "e !"ara! er be"a2e w"en an)ry or &'r3ri&e1R N Doe& "e !"ara! er "a2e a 'niB'e !a !"3"ra&eR N How 1oe& "e !"ara! er *eel abo' "e )ame &i 'a ionR N -"o i& "e !"ara! er4 2illain6 "ero6 men or6 ally6 or &ome o "erR A lo o* e**or )oe& in o !on!e3 'ali,in) e2ery a! ion a !"ara! er nee1& o 3er*orm in a )ameK&'!" a& wal.in)6 r'nnin)6 L'm3in)6 an1 !limbin)Kin or1er o enable "e !"ara! er o 3er*orm 2ario'& a&.&( T"e in er3lay an1 !o"e&ion be ween "e !"ara! erH& a! ion& an1 1ialo)& re&'l in brin)in) abo' "e in en1e1 rea! ion *rom "e 3layer( T"e !"ara! erH& a! ion an1 wor1& !an ran&*orm "im or "er in o &omeone w"om "e 3layer li.e& or 1i&li.e&( I i& al&o im3or an "a 6 i* nee1 be6 "e !"ara! er e2ol2e& in a belie2able manner( For e<am3le6 HUL$ ran&*orm& in o a &'3er"ero be!a'&e o* )amma ra1ia ion6 S3i1erman be!a'&e o* a &3i1er bi e6 an1 Iron man be!a'&e o* "i& weal "( Fi)'re :7:; &"ow& an e<am3le o* a )ame !"ara! er6 *rom $ine! S3or &4 Sea&on 8(
(te=-by-(te= 34ercises
<e.elo=i*g the >ame Fu*ctio*ality , A&1 8$A ATA "8OM A 0A6$ GAM$ "-/$ obLe! o a!!e&& "e &3e!i*ie1 1e2i!e(
>3T 83A<;. Re& ore "e )ame 1a a *rom "e &a2e )ame *ile( ;. Crea e a :torageContainer
// ;pen a storage container. "1s0nc<esult as0nc<esult@ de3ice..egin;penContainer#=:a3ing6la0er6rofile>$ null$ null%; // Wait for the Wait?andle as0nc<esult.1s0ncWait?andle.Wait;ne#%; :torageContainer container @ de3ice.9nd;penContainer#as0nc<esult%; // Close the wait handle.as0nc<esult.1s0ncWait?andle.Close#%; to become signaled.
9. Call *ile9/ists o 1e ermine w"e "er "e &a2e1 )ame *ile e<i& &(
string // Chec+ filename to see @ whether =sa3edGame:tate.sa3>; the sa3e e/ists.
if #@container.*ile9/ists#filename%%
Com=ete*cy Assessme*t
'
(. O3en a :tream obLe! on "e *ile by '&in) "e ;pen*ile me "o16 a& &"own in "e *ollowin) !o1e(
// ;pen the file. :tream file:tream *ile!ode.;pen%;
container.;pen*ile#filename$
A$ , 2esso* ;
*. Crea e an )ml:erializer obLe! an1 3a&& "e y3e o* "e & r'! 're "a 1e*ine& yo'r &a2e )ame 1a a( >( -"i!" o* "e *ollowin) )ame me!"ani!& will lea1 o a rewar1 me!"ani! in w"i!" "e a( Ta&.&3layer i& awar1e1 &ome 3oin & *or bein) &'!!e&&*'lR b( F'e& & !( How o win 1( A! i2i ie& ?( IT"e 3layer nee1& o !ro&& a 1an)ero'& ri2er '&in) a boa an1 1eli2er "e &e!re me&&a)e o "e army(J -"i!" y3e o* B'e& i& "i&Ra( $ill b( Colle! ion !( Tar)e 1( Se!re
)ml:erializer serializer @ new )ml:erializer#t0peof#6la0er,ata%%;
@. Call "e ,eserialize me "o1 an1 3a&& "e :tream obLe! ( T"e ,eserialize me "o1 re 'rn& a !o3y o* "e &a2e )ame & r'! 're 3o3'la e1 wi " "e 1a a *rom "e &a2e )ame *ile( %o e "a yo' nee1 o !a& "e re 'rn 2al'e *rom ;bAect o "e re&3e! i2e y3e6 a& &"own in "e *ollowin) !o1e( DIn "i& !a&e6 "e y3e i& 6la0er,ata(E
6la0er,ata data @ ,eserialize#file:tream%; #6la0er,ata%serializer.
L. Clo&e
, Competency
Assessment
+ro:ect ;-;H efining the Target Audience
/o' 1e!i1e o !rea e a )ame in "e &3or & )enre( /o' '&e a mobile 1e2i!e a& yo'r )amin) 3la 7 *orm( De*ine "e ar)e a'1ien!e *or yo'r )ame wi " re&3e! o "e &ele! e1 )ame )enre an1 )ame 3la *orm(
Sa2in) an1 re& orin) )ame 1a a ra!.& "e 3layerH& 3ro)re&& in a )ame( Howe2er6 o ra!. "e )ame *low w"ile yo'r )ame i& r'nnin)6 yo' nee1 o 1e*ine "e 3o&&ible & a e& *or yo'r )ame an1 mana)e "e&e & a e&( T"e *ollowin) &e! ion 1i&!'&&e& "ow o mana)e "e )ame & a e& "a yo' 1e*ine *or yo'r )ame(
, +roficiency
Assessment
+ro:ect ;-(H Creating a Game 0toryline
/o' are 1e2elo3in) a *an a&y )ame( De2elo3 "e & oryline an1 )ame me!"ani!& *or yo'r )ame(
-roficie*cy Assessme*t
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
M$A1-1G
T"i& *ea 're 3ro2i1e& a brie* &'mmary o* "e ma erial o be !o2ere1 in "e &e! ion "a *ollow&( -or1& in all !a3i al le er& in1i!a e in& r'! ion& *or o3enin)6 &a2in)6 or !lo&in) *ile& or 3ro)ram&( T"ey al&o 3oin o' i em& yo' &"o'l1 !"e!. or a! ion& yo' &"o'l1 a.e( T"i& *ea 're &i)nal& "e 3oin in "e e< w"ere a &3e!i*i! !er i*i!a ion obLe! i2e i& !o2ere1( I 3ro2i1e& yo' wi " a !"an!e o !"e!. yo'r 'n1er& an1in) o* "a 3ar i!'lar MTA obLe! i2e an16 i* ne!e&&ary6 re2iew "e &e! ion o* "e le&&on w"ere i i& !o2ere1( Rea1er ai1& a33ear in &"a1e1 bo<e& *o'n1 in yo'r e< ( Ta.e %o e 3ro2i1e& "el3*'l "in & rela e1 o 3ar i!'lar a&.& or o3i!&( T"e&e no e& 3ro2i1e 3oin er& o in*orma ion 1i&!'&&e1 el&ew"ere in "e e< boo. or 1e&!ribe in ere& in) )amin) 1e2elo3men *ea 're& "a are no 1ire! ly a11re&&e1 in "e !'rren o3i! or e<er!i&e( A 3l'& &i)n DSE be ween wo .ey name& mean& "a yo' m'& 3re&& bo " .ey& a "e &ame ime( $ey& "a yo' are in& r'! e1 o 3re&& in an e<er!i&e will a33ear in "e *on &"own "ere( $ey erm& a33ear in bol1 i ali!(
C/O0$
C$8T-"-CAT-O1 8$A A
TA2$ 1OT$F
4
Alt
8$"
M Tab
34am=le
4,
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
www.it-ebooks.info
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
, 4i
To lo!a e "e -iley Hi)"er E1'!a ion Re3 in yo'r area6 )o o " 3400www(wiley(!om0 !olle)e an1 !li!. on "e I-"oH& My Re3R J lin. a "e o3 o* "e 3a)e6 or !all "e MOAC Toll Free %'mber4 : S D>>>E =@;7=99: DU(S( & Cana1a onlyE( To learn more abo' be!omin) !er i*ie1 an1 e<am a2ailabili y6 2i&i www(mi!ro&o* (!om0 learnin)0m!30m!3(
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
A++itio*al 8esources
MTA"
, 4iii
www.it-ebooks.info
& '1en & a !er i*i!a ion in ba&i! IT an1 1e2elo3men ( A& "e new re!ommen1e1 en ry 3oin *or Mi!ro&o* e!"nolo)y !er i*i!a ion&6 MTA i& 1e&i)ne1 e&3e!ially *or & '1en & new o IT an1 &o* ware 1e2elo3men ( I i& a2ailable e<!l'&i2ely in e1'!a ional &e in)& an1 ea&ily in e)ra e& in o "e !'rri!'la o* e<i& in) !om3' er !la&&e&(
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
/o'r 3'r!"a&e o* "i& boo. en i le& yo' o a *ree MTA 3ra! i!e e& *rom GMe ri< Da UA9 2al'eE( Plea&e )o o www()me ri<(!om0m a e& & an1 '&e "e *ollowin) 2ali1a ion !o1e o re1eem yo'r *ree e& 4 MTA?>7A=;7AF;;E:E:CE:=( T"e GMe ri< S.ill& Mana)emen Sy& em 3ro2i1e& e2ery "in) yo' nee1 o 3ra! i!e *or "e Mi!ro&o* Te!"nolo)y A&&o!ia e DMTAE Cer i*i!a ion( O2er2iew o* Te& *ea 're&4 N Pra! i!e e& & ma3 o "e Mi!ro&o* Te!"nolo)y A&&o!ia e DMTAE e<am obLe! i2e& N GMe ri< MTA 3ra! i!e e& & &im'la e "e a! 'al MTA e& in) en2ironmen N C9S B'e& ion& 3er e& !o2erin) all obLe! i2e& N Pro)re&& a own 3a!e6 &a2e e& o re&'me la er6 re 'rn o &.i33e1 B'e& ion& N De aile16 3rin able &!ore re3or "i)"li)" in) area& reB'irin) *'r "er re2iew To )e "e mo& *rom yo'r MTA 3re3ara ion6 a.e a12an a)e o* yo'r *ree GMe ri< MTA Pra! i!e Te& o1ayV For e!"ni!al &'33or i&&'e& on in& alla ion or !o1e a! i2a ion6 3lea&e email &'33or W)me ri<(!om(
www.it-ebooks.info
Acknowledgments
,
-eH1 li.e o "an. "e many re2iewer& w"o 3ore1 o2er "e man'&!ri3 an1 3ro2i1e1 in2al'able *ee1ba!. in "e &er2i!e o* B'ali y in& r'! ional ma erial&4 /'.e -an)6 Uni2er&i y o* Te<a& a Dalla& Palania33an Vaira2an6 Belle2'e Colle)e Harol1 IB',J Lam&on6 ITT Te!"ni!al In& i ' e Colin Ar!"ibal16 Valen!ia Comm'ni y Colle)e Ca "erine Bra1*iel16 DeVry Uni2er&i y Online Rober %el&on6 Blinn Colle)e $al3ana Vi&wana "an6 Belle2'e Colle)e Bob Be!.er6 Va ero Colle)e Carol Tor..o6 Belle2'e Colle)e B"ara $an1el6 Mi&&o'ri Te!" Lin1a Co"en6 For&y " Te!"ni!al Comm'ni y Colle)e Can1i!e Lamber 6 Me ro Te!"nolo)y Cen er& S'&an Ma"on6 Collin Colle)e Mar. Ar'1a6 Hill&boro')" Comm'ni y Colle)e Cla'1e R'&&o6 Bre2ar1 Comm'ni y Colle)e Hei " Hennel6 Valen!ia Colle)e A1rian Gene&ir6 -e& ern Go2ernor& Uni2er&i y Pe&"an Sa ar6 Peno& Do')la& Tabb' 6 Bla!."aw. Te!"ni!al Colle)e Da2i1 $o33y6 Ba.er Colle)e S"aron Moran6 Hill&boro')" Comm'ni y Colle)e $ei " Hoell6 Briar!li**e Colle)e an1 F'een& Colle)eK CU%/ Mar. H'*na)el6 Lee Co'n y S!"ool Di& ri! Ra!"elle Hall6 Glen1ale Comm'ni y Colle)e S!o Ellio 6 C"ri& ie Di)i al Sy& em&6 In!( Gralan Gilliam6 $a3lan S e2e S rom6 B' ler Comm'ni y Colle)e +o"n Crowley6 B'!.& Co'n y Comm'ni y Colle)e Mar)are Leary6 %or "ern Vir)inia Comm'ni y Colle)e S'e Miner6 Le"i)" Carbon Comm'ni y Colle)e Gary Rollin&on6 Cabrillo Colle)e Al $elly6 Uni2er&i y o* A12an!in) Te!"nolo)y $a "erine +ame&6 Sene!a Colle)e Da2i1 $i116 -e& ern Go2ernor& Uni2er&i y Bob Trei!"el6 La.e Ha2a&' Uni*ie1 S!"ool Di& ri! & Mo"a2e Comm'ni y Colle)e
4.i ,
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
.rief Contents
2esso* 1: -deating and ConceptualiGing a Game 2esso* @: Creating the Game Output esign 2esso* %: esigning 0pecific Game Components 2esso* ?: e!eloping the Game 7ser -nterface =7-> 2esso* $: e!eloping the Game "unctionality Appendi% 9E' -nde% 9E& ;') *) '* ;*L ; 9)
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
, 4.ii
www.it-ebooks.info
Contents
2esso* 1: -deating and ConceptualiGing a Game ;
34am Ob9ecti.e Matri4 ; :ey Terms ; /+eati*g a >ame 9
-dentifying the Moti!ation 9
Ouest 9 /earning ( Task Management ( Challenge ( Competition ( Thrill (
9'
(L
4.iii ,
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
Co*te*ts , 4i4
6ideo Compression Types )) Audio Compression Types )' 0treaming Audio and 6ideo )& 0electing esirable Audio "ormats )& Audio "ormat Types )& 6ideo "ormat Types 'E Tools for Compression of Games 'E
2esso* %:
*'
34am Ob9ecti.e Matri4 '* :ey Terms '* <esig*i*g >ame (tates a*+ 2oo=s
Creating Gameflow '@
Challenge 'L +ace 'L 0cripted $!ents ') -nstincti!e Training Areas Trial and $rror ') -nstincti!e +rompt ') +layer 6ocabulary ''
'@
')
7nderstanding 8esolution )(
isplay Modes )* 6ertical 0ynchroniGation )*
;E(
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
etection and
2esso* $:
Collision etection 7sing 8ectangular .o% ;() Collision etection 7sing +er-+i%el ;(& Collision 8esponse ;(&
esigning A- ;*E
7nderstanding A- ;*E A- $ngines ;*; Considerations for A- esign ;*;
34am Ob9ecti.e Matri4 ;') :ey Terms ;') -rogrammi*g the Com=o*e*ts
7nderstanding Tool Creation +rogramming the Game ;'&
Adding "unctionality ;'& A- TechniJues ;&@ $!ading A- ;&@ Chasing A- ;&L "locking or Grouping A+ath "inding A- ;&L
;''
;'' ;&@
2esso* ?:
;&L
34am Ob9ecti.e Matri4 ;*L :ey Terms ;*L Ma*agi*g the '/ Assets ;*L
/oading the 7- Assets ;*) Configuring Options ;*&
Configuring the Audio "ile ;@E Configuring the 6ideo "ile ;@; Configuring +layer -nputs ;@9 etecting the 0tate of 2eys ;@( etecting the 0tate of Mouse ;@@ etecting the 0tate of 4bo% (LE Controller ;@&
(1ill (ummary 9E* :*owle+ge Assessme*t 9E@ Case (ce*arios 9EL Appendi% -nde% 9E& 9E'
www.wiley.com/college/microsoft or call the MOAC Toll-Free Number: 1+ !!!" #$%-#&&1 '.(. ) Ca*a+a o*ly"
www.it-ebooks.info
/$00O1
:3; T38M(
arcade controllers game concept game mechanics gameplay game setting game type genre handheld game console massi!ely multiplayer online role-playing game =MMO8+G> mission statement mobile de!ice moti!ation multiplayer games offline games online games single player games storyline target audience user interface =7->
F'nGamin) In!(6 i& a )ame 1e2elo3men & ar 7'3 !om3any( T"e )oal o* "e !om3any i& o re&ear!" "e )amin) nee1& o* in1i2i1'al& a!ro&& "e worl1 an1 ma.e )amin) 3ro1'! & "a e<"ibi an inno2a i2e 1e&i)n6 a11i! i2e )ame3lay6 & 'nnin) )ra3"i!&6 an1 lea1in)7 e1)e e!"nolo)y( T"e or)ani,a ion i& !'rren ly in "e 3ro!e&& o* i1ea in) an1 !on!e3 'ali,in) one &'!" 3ro1'! ( D'rin) "i& 3"a&e6 "e 3roLe! eam i1en i*ie& "e )ameH& ar)e a'1i7 en!e an1 1e!i1e& "e )ame y3e an1 )enre a!!or1in)ly( T"e eam "en !rea e& "e )ame !on!e3 6 w"i!" in!l'1e& "e mi&&ion & a emen an1 & oryline o* "e )ame6 )ame3lay6 an1 )ame me!"ani!&(
1 www.it-ebooks.info
A , 2esso* 1
, -deating
a Game
I1en i*yin) "e i1ea o* a )ame i& "e *ir& & e3 in "e )ame 1e2elo3men 3ro!e&&( T"e i1ea
*or a )ame en!a3&'la e& 1e*inin) "e mo i2a ion *or "e &e o* 3layer& yo' are ar)e in) an1 1e!i1in) "e )enre an1 3la *orm "a i& mo& a33ro3ria e *or "o&e 3layer&( Game& are one o* "e mean& o* &o!ial in era! ion a!ro&& all "'man !'l 're&( Di)i al )ame& are a new *a!e o* "i& a)e7ol1 me "o1 o* &o!ial in era! ion( De2elo3in) an in ere& in) )ame i& a !"allen)in) a&.( I mi)" a33ear 1a'n in) a *ir& 6 e&3e!ially i* yo' wan o !rea e a )ame &imilar o "e one& a2ailable o**7 "e7&"el*6 !om3le e wi " !om3le< anima ion& an1 elabora e 3ro)rammin)( Howe2er6 i* yo' *ollow a &e 3ro!e1're an1 !on&i1er a *ew elemen & o* "e )ame !on!e3 6 "e !om3le<i y o* "e 3ro!e&& re1'!e& !on&i1erably( A )oo1 )ame be)in& wi " a & ron) i1ea6 w"i!" !ome& *rom 'n1er& an1in) w"a mo i2a e& 3eo3le *or 3layin) )ame&(
O7$0T One bene*i "a en!o'ra)e& 3eo3le o 3lay 2i1eo )ame& i& "a "ey !an )ain new .nowle1)e an1 &.ill&( For e<am3le6 no2i!e !ri!.e or ba&.e ball 3layer& mi)" wan o 3lay a 2i1eo )ame o e<3erimen wi " new & ra e)ie& on "e &!reen be*ore ryin) "em o' on "e *iel1( T"i& "el3& "em o im3ro2e "eir 3er*orman!e w"en "ey im3lemen "e & ra e)y on "e *iel1 an1 men ally 3re3are& "em o *a!e "eir o33onen & wi " !lear re&ol' ion&(
www.it-ebooks.info
/$A81-1G Goo1 2i1eo )ame& 3ro2i1e an e<!ellen learnin) en2ironmen by 3ro2i1in) 3er&onal !on rol an1 a' onomy o 3layer&( Player& !an e<3lore new o3i!& an1 learn o 1eal wi " "e !"allen)e& im3o&e1 by 2i1eo )ame& by e<3erimen in) wi " "eir a! ion& wi "o' worryin) abo' "e !on&eB'en!e&( T"e lo&&e& &'& aine1 in ma.in) a mi& a.e in a )ame worl1 are m'!" le&& &i)ni*i!an "an "o&e &'& aine1 in "e real worl1( T"i& in 'rn 3ro2i1e& &el*7!on*i1en!e6 w"i!" i& a .ey in)re1ien o* "e learnin) 3ro!e&&( TA02 MA1AG$M$1T Vi1eo )ame& in2ol2e re&o'r!e an1 a en ion mana)emen ( Player& 3lan an1 ra!. )oal& an1 &'b)oal&6 all in 3'r&'i o* winnin) "e )ame( I1en i*yin) an1 mana)in) "e )ame a&.& &'!!e&&*'lly 3ro2i1e "e 3layer& wi " a &en&e o* a!"ie2emen ( C?A//$1G$ C"allen)e& in "e )ame 3lay a .ey 3ar in mo i2a in) "e 3layer&( Howe2er o')" "e !"allen)e6 "ar17!ore 3layer& mi)" no be willin) o )i2e '3 'n il "ey a!"ie2e "e )ameH& )oal( Pro)re&&in) "ro')" "e 1i**eren )ame le2el& !an be annoyin)( -i " !on& an 3er&e2eran!e6 3layer& a!"ie2e "e 3re1e*ine1 )ame )oal an1 *eel 3ro'1 o* "eir a!"ie2emen ( COM+$T-T-O1 Vi1eo )ame& 3ro2i1e an o' le o "e 3layer& o !om3e e by o2er!omin) in ere& in) !"al7 len)e&( T"i& no only *'l*ill& "e ba&i! nee1 *or !om3e i ion b' al&o "el3& o 1e ermine an1 3ro!laim "ow !om3e en "e winner i& in "an1lin) a )i2en !"allen)e( A11i ionally6 "e )ame en!o'ra)e& 3layer& o !om3are "eir )amin) a!"ie2emen & wi " "eir 3eer& an1 1e!i1e "e be& 3layer amon) "em( T?8-// Vi1eo )ame& !an &im'la e &i 'a ion& "a 3layer& mi)" ne2er e<3erien!e in real li*e( In a 2ir7 'al worl16 e2eryone !an be a "ero an1 &a2e a 2i! im *rom "e 2illain by &"oo in) "e 2illain in "e "ea1( Or a 3layer may be able o a! a& a 1e e! i2e an1 &ol2e "e mo& 1i**i!'l !a&e be 7 er "an S"erlo!. Holme& "im&el*( Or an ear "B'a.e 2i! im !an e<3erien!e "e "rill o* *in17 in) a way o' o* a 1e2a& a e1 !i y( Or a Form'la : 1ri2er !an win a !lo&e ra!e( T"e&e e<3eri7 en!e& "rill "e 3layer& an1 &a i&*y "eir nee1 *or e<3lorin) "e 'nima)inable(
www.it-ebooks.info
% , 2esso* 1
?A8 -CO8$ +/AA$80 Har17!ore 3layer& are 3eo3le w"o 3'r&'e )ame& &erio'&ly( T"ey are 3eo3le w"o4
N Ha2e a 3a&&ion *or )ame& N Li.e o 3lay "i)"7le2el or !"allen)in) )ame& N Ten1 o 3lay more in2ol2e1 )ame& "a reB'ire more ime o !om3le e N Ten1 o !om3e e in o'rnamen & an1 lea)'e& Har17!ore 3layer& 1o no a em3 o 3'r!"a&e ea&y )ame& be!a'&e "ey are ri)i1 1'e o "eir "i)" e<3e! a ion&( -i " "eir "i)" 1eman16 "ey 3rom3 yo'r !rea i2i y an1 3ro)re&&ion by .in1lin) new i1ea& an1 !rea i2e &ol' ion&( Har17!ore )amer& 3lay )ame& &'!" a& Halo4 Comba E2ol2e1 Anni2er&ary6 For,a Hori,on6 an1 Me al Gear Soli1 ;(
-1T$8M$ -A8A +/AA$80 Bo " !a&'al 3layer& an1 "ar17!ore 3layer& are wo e< reme !'& omer& in "e )amin) in1'& ry( In !on ra& 6 in erme1iary 3layer& are in "e mi11le6 be ween "e !a&'al an1 "e "ar17!ore 3layer&( T"e in erme1iary 3layer& are 3eo3le w"o4
N Ha2e an in ere& in 1i2er&e )ame& N S3en1 le&& ime 3layin) )ame& !om3are1 o "ar17!ore 3layer& N Li.e o 3lay )ame& "a are nei "er oo ea&y nor oo 1i**i!'l N Do no in en1 o a.e 3ar in !om3e i ion& Player& in "e a)e )ro'3 o* :@ o 88 year& aro'n1 "e worl1 *i well in o "i& !a e)ory( De2elo3in) )ame& *or in erme1iary 3layer& in2ol2e& !rea in) balan!e1 )ame& "a are no oo &im3le or oo !om3le<( T"i& enable& main ainin) "e balan!e in erm& o* bo " !rea i2i y an1 3ro*i abili y( In erme1iary 3layer& 3lay )ame& &'!" a& F'an 'm Re1&"i* 6 $ine! A12en 're&6 an1 $ine! S3or &(
+8O"$00-O1A/ +/AA$80 Pro*e&&ional 3layer& are "ar17!ore 3layer& w"o 3lay )ame& o earn money( Many !om3anie& 3ay "e&e 3layer& *or e& in) "e )ame& 1e2elo3e1 by "em( Game e& in) i& now an im3or an line o* b'&ine&& in "e )ame& in1'& ry(
Vi1eo )ame& are !la&&i*ie1 in o 2ario'& )enre& ba&e1 on "e y3e o* 3layerH& in era! ion wi " "e )ame !alle1 )ame3lay( T"e wor1 )enre re*er& o a 3ar i!'lar !la&& or y3e o* an ar i& i! 2en 're( For in& an!e6 !inema "a& 1i**eren )enre&6 &'!" a& a! ion6 !ome1y6 an1 roman!e( Similarly6 yo' !an al&o !a e)ori,e )ame& in o 1i**eren )enre&(
www.it-ebooks.info
www.it-ebooks.info
/o' 1e!i1e "e )enre o* "e )ame ba&e1 on "e mo i2a ion an1 "e ar)e a'1ien!e i1en i*ie1 *or "e )ame( For e<am3le6 yo'n) !"il1ren 3lay )ame& *or *'n6 w"i!" enable& "em o learn !on!e3 & &'!" a& !o'n in) an1 &3ellin)( T"e&e )ame& belon) o "e e1'!a ional )ame& )enre( An e<am3le o* an e1'!a ional )ame i& T"e Ma)i! S!"ool B'& in "e Time o* "e Dino&a'r&( Be&i1e& "e e1'!a ional )ame& )enre6 o "er )enre& in!l'1e "e *ollowin)4 N A! ion N A12en 're N S3or & N Sim'la ion N Role73layin) )ame DRPGE N Fan a&y N Car1 N Boar1
ACT-O1 A! ion )ame&6 a& "e name &'))e& &6 *o!'& on war*are( In "i& )ame )enre6 3layer& ma.e ra3i1 mo2e& o !arry o' a a!.& on ar)e &( Player& nee1 &3on aneo'& an1 B'i!. rea! ion& o o2er!ome )ame !"allen)e&( Two &'b y3e& o* "i& )enre are "e &"oo er )ame an1 "e *i)" in) )ame(
A &"oo er )ame in2ol2e& 1e& royin) all o33onen & '&in) &ome &or o* wea3on6 '&'ally a )'n or &ome o "er &"oo in) wea3on( T"e aim o* "i& )ame i& "a "e &"oo er or "e 3layer !"ara! er remain& ali2e "ro')"o' "e mi&&ion( T"ere are wo 2iew3oin & "ro')" w"i!" "e 3layer !an 2iew "e e2en & in "i& )ame( Ba&e1 on "e&e 2iew3oin &6 "e &"oo er )ame )enre *'r "er 1i2i1e& in o "e *ollowin)4 N Fir& 73er&on &"oo er DFPSE )enre4 In FPS6 "e 3layer !an 2iew "e e2en & "ro')" "e &"oo er !"ara! erH& eye( Halo ;4 Forwar1 Un o Dawn i& an e<am3le o* "e FPS &'b)enre D&ee Fi)'re :7:E( T"o')" a & eal " a! ion )ame6 i !an be 3laye1 a many 3la!e& wi " a *ir& 73er&on !amera 2iew( N T"ir173er&on &"oo er DTPSE )enre4 In TPS6 "e 3layer 2iew& "e e2en & "ro')" a !amera "a *ollow& "e &"oo er !"ara! er *rom a *ew *ee be"in1( G'n& rin)er i& an e<am3le o* "e TPS &'b)enre D&ee Fi)'re :78E( A *i)" in) )ame in2ol2e& .no!.in) "e o33onen 'n!on&!io'& or 1ea1 "ro')" 1i**eren mo2e&( S ree Fi)" er i& an e<am3le o* a *i)" in) )ame(
"igure ;-; ?alo *H "orward 7nto awn# an e%ample of a first-person shooter game
www.it-ebooks.info
$ , 2esso* 1
"igure ;-9 Gunstringer is a third-person shooter game
A 6$1T78$ An a12en 're )ame 1oe& no in2ol2e &3on aneo'& !"allen)e& or a! ion( Ra "er6 "e 3layer &ol2e& 1i**eren 3',,le& by in era! in) wi " "e !"ara! er& or "e en2ironmen o* "e )ame( Some e<am3le& o* a12en 're )ame& are My& 6 %i!. Te "er&4 P',,le A)en 6 "e Harry Po er )ame &erie&6 "e Fable )ame &erie&6 $ine! A12en 're&6 an1 "e Maw( Fi)'re :7A an1 Fi)'re :7; &"ow &!reen& *rom $ine! A12en 're& an1 Fable II6 re&3e! i2ely( 0+O8T0 S3or &7ba&e1 )ame& &im'la e ra1i ional &3or &6 &'!" a& ba&eball an1 &noo.er( Some &3or &7ba&e1 )ame& *o!'& on "e a! 'al 3layin) o* a &3or 6 w"erea& !er ain )ame&6 &'!" a& "e C"am3ion&"i3 Mana)er6 & re&& "e & ra e)y be"in1 "e &3or ( In a11i ion6 )ame& &'!" a& Ar!" Ri2al& mo!. &3or & *or !ome1i! e**e! ( A *ew o* "e &3or & )ame& !"ara! eri,e real &3or & !"am3ion& o e<!i e "e 3layer& an1 '31a e 3erio1i!ally o re*le! real7worl1 !"an)e&( An e<am3le o* a &3or & )ame i& $ine! S3or &4 Sea&on 8 D&ee Fi)'re :7CE(
"igure ;-( The 2inect Ad!entures game
www.it-ebooks.info
0-M7/AT-O1 A &im'la ion )ame em'la e& real or *i! ional a! i2i ie&( T"i& )enre 3ro2i1e& "e 3layer wi " a reali& i! analy&i& o* "e obLe! in2ol2e1 in "e )ame( For e<am3le6 in a *li)" or 2e"i!le &im'la7 ion )ame6 "e 3layer )e & o *ly "e air!ra* or "e 2e"i!le a& reali& i!ally a& 3o&&ible( Some o*
"e )ame& in "i& )enre in!l'1e Sim Ci y an1 Comba Fli)" Sim'la or A D&ee Fi)'re :7@E(
8O/$-+/AA-1G GAM$ =8+G> T"i& )ame y3e ma.e& "e 3layer 3lay "e role o* one or more !"ara! er& in a 3re1e ermine1 & oryline( Ea!" !"ara! er "a& &3e!i*i! &.ill& an1 abili ie&( T"e 3layer e<3lore& an1 !om3le e& "e B'e& & o a!!e&& 'niB'e lo!a ion& &'!" a& 1'n)eon& an1 !a& le&6 an1 ama&& 3o&&e&&ion& &'!" a& )ol1 or wea3onry( E<am3le& in "i& )enre in!l'1e Lo& O1y&&ey an1 Fable Heroe& D&ee Fi)'re :7=E(
www.it-ebooks.info
! , 2esso* 1
"igure ;-L The Combat "light 0imulator ( game
"A1TA0A Fan a&y )ame& are ba&e1 on an ima)inary 2ir 'al worl1( E<am3le& in!l'1e Final Fan a&y an1 "e Bal1'rH& Ga e &erie&( CA8 T"i& )ame )enre '&e& 2ir 'al 3layin) !ar1& a& "e main 1e2i!e( Cer ain !ar1 )ame& '&e ra1i ional 1e!.& an1 a33ly & an1ar1i,e1 r'le&6 w"erea& o "er& are *ol. )ame& in w"i!" "e r'le& 2ary by lo!a ion an1 !'l 're( A 3o3'lar !ar1 )ame "a '&e& & an1ar1i,e1 r'le& i& Soli aire D&ee Fi)'re :7>E( Fren!" Taro 6 a !ar1 )ame "a i& 3o3'lar in Fran!e6 '&e& r'le& 3'bli&"e1 by FX1Xra ion FranYai&e 1e Taro (
www.it-ebooks.info
.OA8 T"i& )ame in2ol2e& !o'n er& or obLe! & mo2e1 or 3la!e1 by a !er ain &e o* r'le& on a 2ir 'al 3layin) boar1( I reB'ire& 3layer& o '&e & ra e)y6 !"an!e6 or a !ombina ion o* bo "6 'n il "ey
a!"ie2e "eir )oal( Ba!.)ammon i& an e<am3le o* a 2i1eo boar1 )ame D&ee Fi)'re :7?E(
"igure ;-& The .ackgammon game
1& , 2esso* 1
Game& !an be o* 2ario'& y3e&4 online or o**lineM &in)le 3layer or m'l i3layerM an1 !on&ole6 PC6 ar!a1e6 or mobile )ame&( T"e erm )ame y3e i& '&e1 in "e )amin) in1'& ry o mean 1i**eren "in)& in 1i**eren !on e< &( Some 3eo3le '&e "e erm o mean )ame )enre6 w"erea& o "er& '&e i o mean "e )amin) 3la *orm or "e ele! roni! 1e2i!e "a 6 in !onL'n! ion wi " &o* ware6 r'n& 1i)i al )ame&( S ill o "er& '&e i o mean "e & a '& o* "e )ame6 online or o**line6 or "e na 're o* "e )ame6 &in)le 3layer or m'l i3layer( -i "o' !"allen)in) any o* "e&e 1e*ini ion& o* )ame y3e&6 le '& loo. a "e 1i**eren y3e& o* )ame&(
GAM$ 0TAT70 Ba&e1 on "e & a '&6 )ame& !an be o* wo y3e&4 N Online )ame& are 2i1eo )ame& a2ailable on "e In erne ( Player& !an lo) on o "e In erne an1 3lay "e&e )ame& *or *ree or a a !er ain !o& ( Online )ame& in!l'1e Pone o* -ar( N O**line )ame& are 2i1eo )ame& "a !ome in "e *orm o* 1i&.& D&'!" a& a CD or DVDE6 in memory !ar1&6 or a& 1ownloa1& *rom "e In erne ( Player& !an 3lay o**line )ame& ei "er on a PC6 on a 2i1eo )ame !on&ole6 or on "eir mobile&( An e<am3le o* an o**line )ame i& Final Fan a&y( 17M.$8 O" +/AA$80 Game& !an be 1i2i1e1 in o wo y3e& ba&e1 on "e n'mber o* 3layer&4 &in)le 3layer )ame& an1 m'l i3layer )ame&(
A& "e name &'))e& &6 &in)le 3layer )ame& in2ol2e a &in)le 3layer( T"e 3layer 3lay& wi " "e 3re3ro)ramme1 !"allen)e& o rea!" "e )oal( T"e maLor &ellin) 3oin & o* &in)le 3layer )ame& are in ere& in) & oryline&6 im3re&&i2e )ra3"i!&6 an1 reali& i! non3layer !"ara! er& an1 o33o7 nen &( %o able e<am3le& in!l'1e a! ion7a12en 're )ame& &'!" a& T"e Le)en1 o* Pel1a6 3la 7 *orm )ame& &'!" a& Mario an1 Soni!6 an1 & eal " )ame& &'!" a& "e Me al Gear Soli1 &erie&( M'l i3layer )ame& in2ol2e more "an one 3layer( M'l i3le 3eo3le !an 3lay in "e &ame )ame en2ironmen &im'l aneo'&ly an1 in era! wi " "eir 3eer& by !oo3era in) or !om3e in) wi " ea!" o "er in or1er o rea!" a !ommon )oal( M'l i3layer )ame& are be!omin) in!rea&in)ly 3o3'lar wi " )amer&( T"e&e )ame& 3ro2i1e "e )amer& wi " a *orm o* &o!ial !omm'ni!a ion "a i& '&'ally mi&&in) in &in)le 3layer )ame&( In a 2arie y o* 1i**eren m'l i3layer )ame y3e&6 3layer& may in1i2i1'ally !om3e e a)ain& m'l i3le o33onen &6 wor. !oo3era i2ely wi " one or more 3ar ner& in or1er o a!"ie2e a !ommon )oal6 &'3er2i&e a! i2i ie& o* o "er 3layer&6 or en)a)e in a )ame y3e "a in!or3ora e& any 3o&&ible !ombina ion o* "e&e 2arie ie&( An e<am3le o* a m'l i3layer )ame i& Halo4 Comba E2ol2e1 Anni2er&ary( One o* "e 3o3'lar m'l i3layer )ame y3e& in!l'1e& ma&&i2ely m'l i3layer online role73layin) )ame DMMORPGE( Similar o any o "er RPG )ame6 MMORPG al&o enable& 3layer& o a&&'me "e role o* a !"ara! er an1 !on rol many o* i & a! ion&( Howe2er6 'nli.e mo& RPG )ame&6 MMORPG in2ol2e& "'n1re1& o* 3layer& in era! in) wi " ea!" o "er an1 &"arin) "e &ame )ame re&o'r!e& in a 3er&i& en 2ir 'al worl1( T"i& 2ir 'al worl1 3er&i& & e2en a* er "e )amer "a& lo))e1 o**( An e<am3le o* an MMORPG i& T"e Lor1 o* "e Rin)& Online4 S"a1ow& o* An)mar( An MMORPG '&e& !lien 7&er2er ar!"i e! 're( A &er2er r'n& "e in& an!e o* "e )ameH& 2ir 'al worl1 "a i& '&'ally "o& e1 by "e 3'bli&"er o* "e )ame( Player& !onne! o "i& 2ir 'al worl1 '&in) !lien &o* ware &a2e1 on a 1i&. or "ro')" a -eb brow&er( For e<am3le6 -orl1 o* -ar!ra* '&e& !lien &o* ware &a2e1 on a 1i&.6 w"erea& Ra)naro. a!!e&&e& "e 2ir 'al worl1 "ro')" a -eb brow&er &3e!i*i!ally 1e&i)ne1 *or "a )ame(
www.it-ebooks.info
www.it-ebooks.info
Cer ain MMORPG& '&e m'l i3le &er2er& o r'n in1e3en1en 2ir 'al worl1&( A 3layer '&in) "e 2ir 'al worl1 r'nnin) in one &er2er !anno a!!e&& ano "er 2ir 'al worl1 r'nnin) on ano "er &er2er(
GAM-1G +/AT"O8M
C$8T-"-CAT-O1 8$A A <hich game platform is ideal for a person who tra!els a lot and wants entertainment during transitB 9.@
In "e early 1ay&6 )ame& were & ore1 in !ar ri1)e&( T"e 3layer& loa1e1 "e !ar ri1)e& on in er7 a! i2e ele! roni! 1e2i!e& o r'n "e&e )ame&( T"ey '&e1 "e ele2i&ion a& "e 1i&3lay 1e2i!e( -i " "e a12an!emen o* e!"nolo)y an1 a12en o* "e In erne 6 new )amin) 3la *orm& "a2e emer)e1 an1 "e e<i& in) one& "a2e be!ome more &o3"i& i!a e1( To1ay )ame& !an be 3laye1 on 2arie ie& o* 3la *orm&6 online or o**line6 by &in)le or m'l i3le 3layer& &im'l aneo'&ly( Some o* "e !ommon )ame 3la *orm& "a yo' !an &ele! *rom are4 N Con&ole N PC N Ar!a1e N Mobile
C$8T-"-CAT-O1 8$A A <hat are the most common de!ices used with game consolesB 9.@
CO10O/$ A !on&ole i& an in era! i2e en er ainmen ma!"ine6 3rimarily '&e1 o r'n 2i1eo )ame&( T"i& 1e2i!e '&'ally !onne! & o a ele2i&ion o 1i&3lay "e 2i&'al o' 3' o* "e )ame( T"e 3layer '&'ally o3era e& an1 !on rol& "e )ame '&in) a !on roller( Con roller& are "an1"el1 1e2i!e&6 &'!" a& a remo e !on rol !onne! e1 o "e !on&ole( T"e 3layer in era! & wi " "e ima)e& on "e &!reen by o3era in) "e b' on& an1 1ire! ional !on rol& !on aine1 in "e !on roller&(
Con&ole )ame& !ome in "e *orm o* CD& an1 DVD& "a !an be in&er e1 1ire! ly in o "e !on&ole 1e2i!e( %owa1ay&6 3layer& !an al&o 1ownloa1 )ame& 1ire! ly o "e !on&ole "ro')" "e In erne ( Howe2er6 o 3lay a &3e!i*i! !on&ole )ame6 3layer& nee1 o "a2e "e re&3e! i2e !on&ole 1e2i!e *or w"i!" "e )ame wa& 1e&i)ne1( One !ommonly '&e1 !on&ole 1e2i!e i& #bo< A@9 D&ee Fi)'re :7:9E( #bo< A@9 i& Mi!ro&o* H& 2i1eo )ame !on&ole( I "a& b'il 7in "ar1 1i&. 1ri2e& o & ore )ame& an1 !on en 1ownloa1e1 *rom #bo< Li2e6 an online )amin) &er2i!e *rom Mi!ro&o* ( O "er !on&ole 1e2i!e& in!l'1e PlayS a ion A 3ro1'!e1 by Sony Com3' er En er ainer an1 "e -ii GameC'be 3ro1'!e1 by "e +a3ane&e !om3any %in en1o Co(6 L 1(
www.it-ebooks.info
1A , 2esso* 1
A "an1"el1 )ame !on&ole i& a li)" wei)" 3or able 1e2i!e6 w"i!" "e 3layer& !an !arry any7 w"ere an1 '&e o 3lay a !on&ole )ame any ime( In "i& 1e2i!e6 all "e 'ni & &'!" a& "e 1i&3lay 'ni 6 "e !on roller6 an1 "e a'1io 'ni are b'il in( Po3'lar "an1"el1 )ame 1e2i!e& in!l'1e %in en1o ADS *rom %in en1o an1 PlayS a ion Vi a an1 PlayS a ion Por able DPSPE *rom Sony( M'l i3layer !on&ole )ame& !an be 3laye1 o2er "e In erne a& 3re2io'&ly 1e&!ribe16 or m'l i3le !on roller& !an be !onne! e1 o "e 2i1eo )ame !on&ole( T"e o' 3' 1i&3lay i& 1i2i1e1 amon) "e m'l i3le lo!al 3layer&(
+C
C$8T-"-CAT-O1 8$A A <hich game types are best suited for the +C platformB 9.@
A )ame r'nnin) on a PC i& !alle1 a !om3' er )ame or a PC )ame( PC )ame& are 3'bli&"e1 in 2ario'& *orm&6 &'!" a& DVD&6 CD&6 or 1ownloa1able !on en ( De3en1in) on "e )ame6 PC )ame& &ome ime& reB'ire &3e!ial "ar1ware in "e 3layerH& !om3' er or an In erne !onne! ion o 3lay "e )ame online( PC )ame& "a2e in!rea&e1 3layabili y a& bo " newer an1 ol1er )ame& are 3laye1 on any 2er&ion o* "e &o* ware &y& em( PC )ame& !an be &in)le 3layer or m'l i3layer(
A8CA $ An ar!a1e i& a !oin7o3era e1 en er ainmen ma!"ine D&ee Fi)'re :7::E *o'n1 in 3'bli! 3la!e& &'!" a& "ea er& an1 re& a'ran &6 an1 e&3e!ially in am'&emen 3ar.&( Dan!e Dan!e Re2ol' ion an1 Dr'mMania are e<am3le& o* &ome 3o3'lar ar!a1e )ame&(
Ar!a1e )ame& o* en "a2e more !on rol a!!e&&orie& "an PC or !on&ole )ame&( In a11i ion6 a& ar!a1e )ame& are 3laye1 in 3'bli! 3la!e& an1 3ro2i1e a *orm o* &o!ial "an)o' 6 "e&e )ame& em3"a&i,e in1i2i1'al 3er*orman!e o2er "e !on en o* "e )ame( Ar!a1e )ame& !an be bo " &in)le 3layer an1 m'l i3layer )ame&( In m'l i3layer ar!a1e )ame&6 ea!" 3layer !an "a2e "i& or "er own )ame !on rol& !onne! e1 o "e ar!a1e(
-orl1wi1e6 "e re2en'e *rom "e ar!a1e )ame in1'& ry &"owe1 & ea1y )row " 'n il 8998( In re!en year& "owe2er6 an1 3ar i!'larly in -e& ern !o'n rie&6 "e '&e o* ar!a1e )ame& "a&
!on&i1erably 1e!line1( Ar!a1e )amin) remaine1 a *lo'ri&"in) in1'& ry in C"ina an1 +a3an 'n il "e re!en e!onomi! re!e&&ion !a'&e1 a mar.e1 1e!line in +a3ane&e ar!a1e )amin)(
MO.-/$
C$8T-"-CAT-O1 8$A A <hat are the types of mobile de!icesB 9.@ C$8T-"-CAT-O1 8$A A <hich game types are suitable for the different game de!icesB ;.;
A mobile 1e2i!e i& a "an1"el1 1e2i!e "a in!l'1e& !ell 3"one&6 &mar 3"one&6 able !om3' 7 er&6 an1 PDA&( Player& !an loa1 mobile )ame& in "eir !ell 3"one& 2ia Bl'e oo " *rom "e mobile o3era orH& ne wor. or 2ia memory !ar1& a "e ime o* 3'r!"a&e( A11i ionally6 "ey !an al&o 1ownloa1 )ame& by a!!e&&in) "e In erne ( T"e mobile )ame& r'n on "e e<i& in) 3la 7 *orm a2ailable on "e mobile 3"one&( Al "o')" many mobile )ame& are &in)le 3layer )ame&6 "ere are al&o m'l i3layer mobile )ame&( In a m'l i3layer mobile )ame6 3layer& !an !onne! "ro')" 2ario'& !omm'ni!a ion !"annel&6 &'!" a& In*rare16 Bl'e oo "6 -i7Fi6 -irele&& LA%6 or GPRS D)eneral 3a!.e ra1io &er2i!eM !ommonly re*erre1 o a& 8G6 AG or CDMA wirele&& ban1&E( Mobile 3"one& wi " GPRS !onne! ion &"are 1a a )lobally( /o' !an !onne! a lar)e n'mber o* mobile )ame& wi " a &in)le &er2er "a a! & a& a ro' er( Player& !an &"are 1a a by !onne! in) o "e &er2er( Al erna i2ely6 !ro&&73la *orm )ame& '&e GPRS6 in w"i!" "e )ame allow& "e mobile )amer o 3lay a)ain& a PC )amer(
, Creating
o yo'r i1ea& *or "e )ame( T"i& 3ro!e&& in2ol2e& !rea in) a mi&&ion & a emen 6 & oryline6 )ame3lay6 an1 me!"ani!& o* "e )ame( Genera in) an i1ea *or a )ame i& L'& "e be)innin) o* "e !rea i2e 3ro!e&&( Li& in) yo'r i1ea&6 *le&"in) "em o' 6 &e in) "e r'le& o* "e )ame6 *inali,in) "e !"ara! er&6 an1 many o "er a! i2i ie& )o in o "e ma.in) o* "e *inal 3ro1'! ( A )ame !on!e3 i& "e elabora ion o* "e )ame i1ea( I in!l'1e& Lo in) 1own "e *ollowin)4 N T"e *inal obLe! i2e o* "e )ame or "e mi&&ion & a emen N T"e 3lo or "e & oryline N Vario'& in era! i2e an1 nonin era! i2e elemen & o* "e )ame or "e )ame3lay N T"e *low o* "e )ame or )ame me!"ani!& To .now "ow !on!e3 'ali,a ion wor.&6 a&&'me "a yo' "a2e o !rea e "e !"ara! er o* a Lo.er6 w"i!" will be one o* "e in era! i2e elemen & in "e )ame( Be*ore yo' !an 1e&i)n "i& !"ara! er6 yo' nee1 o !on!e3 'ali,e i ( A Lo.er i& '&'ally a&&o!ia e1 wi " !"ara! eri& i!& &'!" a& *'nny6 !olor*'l6 &o!iable6 o' )oin)6 an1 o "er rai & a&&o!ia e1 wi " )oo1ne&&( Howe2er6 i* "e i1ea i& o* an e2il Lo.er6 "en yo' !an !on!e3 'ali,e "e &ame !"ara! er wi " !"ara! eri& i!& an1 loo.& "a are no a&&o!ia e1 wi " "e '&'al )oo1ne&& o* a Lo.er( E2en 'ally6 yo' will !rea e a !"ara! er &imilar o "e e2il Lo.er *rom Ba man( All elemen & o* "e )ame are !on!e3 'ali,e1 in "e &ame manner( In "e *ollowin) &e! ion&6 we learn "ow o !rea e "e )ame !on!e3 "ro')" &im3le & e3&( Fi)'re :7:8 1i&3lay& "e )ame !on!e3 !rea ion 3ro!e&& "a &"ow& "e 2ario'& & e3& an1 elemen &(
1% , 2esso* 1
"igure ;-;9 The game concept creation process
0tep ;H Generating the -dea 0tep 9H $laborating the -dea 0tep (H <riting the Mission 0tatement
T"e 3'r3o&e be"in1 wri in) a mi&&ion & a emen i& o !learly 3a&& on "e i1ea o* "e )ame o "e )ame 3ro1'! ion eam( -"ile wri in) "e mi&&ion & a emen 6 yo' m'& *o!'& on "e *ormal elemen & o* yo'r )ame6 w"i!" are "e 'n1erlyin) &y& em an1 me!"ani!& o* "e )ame( A ba&i! mi&&ion & a emen m'& an&wer "ree B'e& ion&4 N -"a i& "e obLe! i2e o* "e )ameR N -"a !"allen)e& 1oe& "e )ame 3re&en o "e 3layerR N How will "e 3layer a!"ie2e "e obLe! i2eR To wri e a )oo1 mi&&ion & a emen 6 yo' nee1 o a&. yo'r&el* "e *ollowin) B'e& ion&4 N How &"o'l1 "e 3layer a! an1 *eel in "e )ameR N -"a role &"o'l1 "e 3layer 3er*orm in "e )ameR N Doe& "e 3layer "a2e a well71e*ine1 obLe! i2eR N -"a are "e ob& a!le& in a!"ie2in) "e obLe! i2eR N -"a .in1 o* re&o'r!e& will "e 3layer "a2eR T"e 3re2io'& li& o* B'e& ion& i& no e<"a'& i2e( /o' nee1 o analy,e yo'r i1ea an1 arri2e a an&wer& "a will e2en 'ally lea1 o a re*ine1 mi&&ion & a emen ( A )oo1 mi&&ion & a emen i& "e ben!"mar. o e& all "e i1ea& "a yo' !on&i1er in "e )ame( T"e *inal 2er&ion o* "e )ame m'& no "a2e any elemen "a )oe& a)ain& "e mi&&ion & a emen ( /o' !an rely on "e *ollowin) i3& o wri e "e mi&&ion & a emen *or yo'r )ame4 N In2ol2e e2eryone !onne! e1 o "e )ame an1 brain& orm o)e "er( O "er& al&o !an 3ro2i1e '&e*'l in&i)" &( N Se a&i1e &e2eral "o'r& o wor. on yo'r & a emen ( N Ma.e e2ery wor1 o* "e mi&&ion & a emen !o'n ( N A2oi1 ma.in) a )eneri! mi&&ion & a emen ( Le '& loo. a an e<am3le o* a )oo1 mi&&ion & a emen ( S'33o&e yo' are 1e2elo3in) an a12en7 're )ame an1 yo' 1e!i1e o !rea e "e )ame &e o* a *ore& ( T"e mi&&ion & a emen *or yo'r )ame !an be4 ICrea in) a )ame "a will be &e wi " !"allen)e& no L'& *rom yo'r o33onen 6 b' al&o *rom na 're( T"e only way o win i& o &'r2i2e6 b' remember "a "e yran i& wa !"in)(J A& 3er "e mi&&ion & a emen 6 "e obLe! i2e i& o &'r2i2e a)ain& all o11&( T"e !"allen)e& in2ol2e1 in a!"ie2in) "a obLe! i2e are an o33onen 3layer an1 elemen & o* na 're 1e&i)ne1 *or "e )ame( T"e mi&&ion & a emen al&o 3re&en & "e me "o1 o a!"ie2e "e obLe! i2e6 w"i!" i& o li2e or en&'re "a "e 3layerH& !"ara! er remain& ali2e a "e en1 o* "e )ame( T"i& mi&&ion & a emen 1e&!ribe& "e in en1e1 )amer e<3erien!e an1 & a e& w"a "e )amer &"o'l1 *eel or "in.(
www.it-ebooks.info
Creating a 0toryline
T"e & oryline o* a )ame i& "e 'n1erlyin) 3lo "a 1e*ine& "e *low o* "e )ame *rom & ar o *ini&"( A )oo1 & oryline i& "e 3rimary in)re1ien *or !rea in) an en)a)in) )ame( +'& li.e mo2ie&6 )ame& al&o ell a & ory( T"e&e & orie& re2ol2e aro'n1 "'man in ere& &4 lo2e6 *amily6 "rea &6 a12en 're6 &'&3en&e6 an1 1ea "( Similar o all & orie&6 "e )ame narra i2e or & oryline i& an e<3re&&ion o* "'man ima)ina ion( Player& o* en 3re*er a !om3ellin) an1 in ere& in) & ory( I* yo' wan a )rea en)a)in) )ame6 yo' m'& "a2e a )oo1 & oryline be"in1 i ( Here are &ome e<am3le& o* a )ame & oryline4 N Co'n er S ri.e 4 Di**eren Co'n er Terrori& &B'a1& *i)" o re&!'e "e "o& a)e ali2e *rom "e !l' !"e& o* 1i**eren errori& or)ani,a ion&( N S'3er Mario Bro& 4 A 3layer !on rol& Mario or L'i)i6 a !"ara! er in "e )ame( T"e 3layer ma.e& "im wal.6 r'n6 or L'm36 w"ile a2oi1in) ra3&6 o2er!omin) ob& a!le&6 an1 !olle! in) rea&'re& in or1er o &a2e "e 3rin!e&& *rom "e 1ra)on( N Diablo 4 Player& ba le mon& er&6 &ee. rea&'re&6 an1 e<3lore 1'n)eon& in an a em3 o ama&& weal " an1 be!ome 3ower*'l( -ri in) a & oryline i& 1i**i!'l ( /o' m'& wri e a & ory "a i& well73a!e1 an1 "a& 1e*ine1 obLe! i2e&( T"ro')" yo'r & ory6 yo' m'& !rea e a worl1 "a i& a& belie2able a& "e real worl1 "a we li2e in( A belie2able worl1 "el3& "e 3layer *or)e "a "e or &"e i& 3layin) a )ame an1 boo& & "e )amin) e<3erien!e(
+A8T0 O" A 0TO8A/-1$ A & oryline i& ea&ier o wri e w"en yo' brea. i in o wo 3ar &4 3'r3o&e an1 !om3le<i y(
T"e *ir& "in) "a yo' m'& *o!'& on w"en wri in) "e & oryline i& "e 3'r3o&e o* "e & ory in "e )ame( Do yo' wan "e & oryline only o in ro1'!e "e 3lo or al&o a.e "e 3layer "ro')" "e 1i**eren le2el& o* "e )ameR To en)a)e "e 3layer "ro')" yo'r & o7 ryline6 "e 3'r3o&e "a& o ma3 o "e mo i2a ional nee1& o* "e 3layer&( Only w"en "e & oryline ma3& o "e 1ee3e& nee1& o* "e 3layer& will "e 3layer& be able o *eel !onne! e1 wi " "e )ame( T"e &e!on1 "in) o !on&i1er i& "e !om3le<i y o* "e & oryline( A & oryline m'& be nei "er oo !om3le< nor oo &im3le( De&i)ner& o* en i)nore "e & oryline w"ile *o!'&in) on )ra3"i!&( Howe2er6 3layer& a.e "e & oryline& &erio'&ly( T"ere*ore6 yo' m'& & ri.e a balan!e be ween "e narra i2e an1 "e )ra3"i!& o ma.e "e & oryline a ra! i2e( One way o a11 !om3le<i y in "e & oryline an1 ma.e i in ere& in) i& o '&e a wi& in "e & ory( T"e wi& .ee3& "e 3layer en)a)e1 an1 ea)er o !on in'e 3layin) o 'n!o2er w"a "a37 3en& ne< ( For e<am3le6 in Hi man6 "e main !"ara! er Hi man "a& &ome "in) in "i& 3a& "a 1ri2e& "im o be!ome a Hi man( Ano "er wi& i& "a 1'rin) "e !o'r&e o* "e )ame6 Hi man "im&el* be!ome& a ar)e an1 "e nee1& o *in1 o' "e 3er&on in "i& or)ani,a ion w"o "a& &e "im '3 a& "e ar)e ( Twi& & o* en ma.e a & oryline !om3le< an1 m'& 6 "ere*ore6 be "an1le1 wi " !are( Some ime&6 in "eir ,eal o ma.e "e & oryline &im3le6 1e&i)ner& o* en 3lay i &a*e an1 *all ba!. on ime7 e& e16 re3ea e1 & oryline&( S'!" a & oryline mi)" be!ome 'nin ere& in) *or "e 3lay7 er&( /o' m'& alway& !rea e & oryline& "a mirror "e !om3le<i y o* "e )ame( For e<am3le6 &im3le 3',,le or ar!a1e )ame& &'!" a& Te ri& 1o no "a2e any & oryline6 w"erea& Ala11in "a& a narra i2e "ro')"o' "e )ame(
TA2$ 1OT$
/o' m'& e<er!i&e !a'7 ion w"en '&in) "e wi& & ra e)y( T"e wi& m'& ma.e lo)i!al &en&e( I m'& no !on*'&e6 *r'&7 ra e6 or 1i&en)a)e "e 3layer *rom "e )ame(
www.it-ebooks.info
1$ , 2esso* 1
COMMO1 M-0TA2$0 Al "o')" i i& ea&y o 1e!i1e on "e 3'r3o&e o* "e & oryline6 1e&i)ner& o* en en1 o ma.e mi& a.e& on "e !om3le<i y( Ei "er "ey ma.e i oo !om3le< or oo &im3le( A & oryline "a i& oo !om3le< !an irri a e "e 3layer a& m'!" a& a &im3le & oryline mi)" bore "e 3layer( T"ere*ore6 o wri e a )oo1 & oryline6 yo' m'& a2oi1 ma.in) "e *ollowin) !ommon mi& a.e&4 N Too m'!" 1e3en1en!e on lo2able6 *rien1ly !"ara! er&4 Al "o')" i mi)" &eem a )oo1 way o a11 1e3 " an1 1rama o yo'r )ame6 yo' m'& '&e &'!" !"ara! er& !are*'lly( Vi1eo )ame& "a "a2e 2ir 'al 3e & *or 3layer& o a.e !are o* a& 3ar o* "e )ame& are !ommon in C"ina an1 +a3an( Al&o6 )ame& &'!" a& Final Fan a&y "a "a2e lo2able an1 *rien1ly !"ara! er& are B'i e 3o3'lar( Howe2er6 "ere mi)" be 3layer& w"o *eel "a in reali y6 we 1o "in)& wi " or *or o'r *rien1& be!a'&e we enLoy "eir !om3any( T"e&e 3layer& mi)" )e ire1 o* 3layin) )ame& wi " a robo ( A !are*'l analy&i& o* yo'r ar)e a'1ien!e will "el3 yo' 1e!i1e on "e '&e o*
*rien1ly !"ara! er&( N Fe !" B'e& &4 -"en yo' 1e&i)n a wi& in "e & ory by ma.in) "e 3layer 3er*orm a a&. o mo2e *orwar1 in "e )ame6 i i& !alle1 a *e !" B'e& 3loy( For e<am3le6 in a )ame6 "e !en ral !"ara! er rea!"e& a lo!.e1 1oor( To o3en i 6 "e 3layer nee1& o *in1 "e .ey( An ol1 man i& "e .ee3er o* "e .ey w"o will )i2e "e 3layer "e .ey only i* "e or &"e &'!!e&&*'lly !om3le e& "e a&. "a "e .ey .ee3er &e &( T"i& 3loy o* *e !" B'e& & i& o* en a ra! i2e o 1e&i)ner& w"o "in. "a be!a'&e "e 3layer i& "a2in) *'n6 )i2e "e 3layer& more *'n( Howe2er6 i irri a e& "e 3layer&6 e&3e!ially i* in ro7 1'!e1 w"en "e )ame i& abo' o en1( Ma.in) "e 3layer )o in !ir!le& L'& o ma.e "e )ame lon)er brin)& "e & ory o a "al ( I will e2en 'ally lea1 o *r'& ra ion *or "e 3layer( N T'rnaro'n1&4 T'rnaro'n1& ma.e "e 3layer& re 'rn "e &ame way "ey mi)" "a2e !ome &o *arK "a i&6 o ra!e "e 3a " ba!. o "e & ar in) 3oin ( An1 on "e way ba!.6 3layer& "a2e o &ol2e "e &ame 3',,le& an1 a2oi1 "e &ame enemie&( For &ome )ame&6 ea!" le2el o* "e )ame & ar & *rom "e &ame 3oin ( De&i)ner& mi)" wan o '&e "i& o ma.e "e 3layer a33re!ia e "e "i)"7le2el )ra3"i!& an1 "e e**or &3en o !rea e "a & a)e( B' 3layer&6 w"o were 3robably enLoyin) "e )ame 'n il now6 mi)" *eel !om3le ely lo& an1 *r'& ra e1( T'rnaro'n1& wor. well in "e !a&e o* a12en 're 3',,le )ame&( For e<am3le6 in Tomb Rai1er6 w"i!" i& an a! ion7a12en 're &erie&6 "e )ame !"ara! er Lara "a& o *in1 a 3ar i!'lar obLe! o 'nlo!. a &3e!i*i! 1oor( On!e &"e *in1& "e obLe! 6 &"e "a& o ra!e "e 3a " ba!. o "e 1oor "a "a& o be 'nlo!.e1( Howe2er6 'rnaro'n1& be!ome annoyin) *or mo& o* "e o "er )ame y3e& 'nle&& e<e!' e1 wi " a 3ro3er )ame3lay(
www.it-ebooks.info
+'& a& "e )ame &e in) in*l'en!e& "e )ame3lay elemen &6 "e & oryline o* "e )ame al&o "a& an im3a! on "e )ame3lay elemen &( T"e & oryline i& "e bir "3la!e o* )ame3lay be!a'&e "e & oryline &e & "e moo1 o* "e )ame( A & ron) & oryline !rea e& an e<!ellen )ame e<3erien!e wi " 2ario'& )ame3lay elemen & in "e )ame( T"ere are wo y3e& o* )ame3lay6 linear )ame3lay an1 nonlinear )ame3lay( In a linear )ame6 "e !"allen)e& are 3re1e ermine1 in a *i<e1 &eB'en!e( T"e )amer& "a2e o *ollow "e 3re1e ermine1 3lo in "i& )ame3lay y3e( Halo A an1 Call o* D' y ; are e<am3le& o* "e linear )ame3lay( In a nonlinear )ame6 "e !"allen)e& are 3o&e1 o "e 3layer in m'l i3le &eB'en!e&( T"e )amer& !an !"oo&e "eir !"oi!e o* 3a " o 2i! ory( Bor1erlan1& an1 Al3"a Pro o!ol are e<am3le& o* non7linear )ame3lay( -"ile !on!e3 'ali,in) a )ame6 yo' !on!e3 'ali,e "e *ollowin) )ame3lay elemen &4 N Vi&'al "eme an1 !inema i! N ObLe! & N C"ara! er& N U&er in er*a!e DUIE N A'1io "eme Le '& loo. a "e&e elemen & in more 1e ail(
6-07A/ T?$M$ A1 C-1$MAT-C T"e 2i&'al "eme "el3& &e "e & a)e *or "e )ame( Crea in) a 2i&'al "eme in2ol2e& 1e!i1in) a !ommon ba!.)ro'n16 !olor 3alle 6 an1 e**e! *or all "e 2i&'al elemen & o* "e )ame6 &o "a "ey all loo. li.e "ey belon) o "e &ame )ame(
T"e 2i&'al "eme "a& o )o "an17in7"an1 wi " "e i1ea o* "e )ame( T"i& mean& "a *or a reali y7ba&e1 )ame6 yo' nee1 o "oro')"ly re&ear!" "e ba!.)ro'n1 o !rea e a 2i&'al "eme( For e<am3le6 *or a )ame ba&e1 on "e "i& ory o* "e *ree1om & r'))le o* In1ia6 yo' nee1 o .now "e !orre! "i& ori!al 1e ail& o* "a era( In !on ra& 6 *or *an a&y7ba&e1 )ame& "a are &e in an ima)inary worl16 yo' !an 1e3en1 on yo'r !rea i2i y o *le&" o' "e 1e ail& o* "e ima)7 inary worl1( For e<am3le6 in "e Final Fan a&y )ame6 an en ire new worl1 wa& !on!e3 'ali,e1( A 3ar o* "e 2i&'al "eme i& !inema i! in na 're( Cinema i! or !' 7&!ene& re*er o "e &e! ion& in "e )ame w"ere "e 3layer 1oe& no "a2e any !on rolK "a i&6 "e non7in era! i2e &eB'en!e& o* "e )ame( S'!" &eB'en!e& are ali)ne1 wi " "e 2i&'al "eme an1 "el3 ma.e "e )ame & ory 3ro)re&&6 in ro1'!e !"ara! er&6 or 3ro2i1e in*orma ion o "e 3layer&( A!!or1in) o "e 3'r7 3o&e an1 "e "eme o* "e )ame6 !' 7&!ene& !an be en er ainin)6 in*orma i2e6 1rama i!6 or "rillin)( For e<am3le6 Pa!7Man6 a "i )ame *rom "e year :?>96 wa& "e *ir& )ame o '&e !' 7&!ene& in "e *orm o* anima e1 in erl'1e& be ween !er ain & a)e& o* "e )ame( Be*ore !rea in) a !inema i! &eB'en!e6 yo' m'& o' line "e )oal& by an&werin) "e *ollowin) B'e& ion&4 N -"y m'& "e 3layer wa !" "e !inema i! elemen &R N -"a .in1 o* rea! ion *rom "e 3layer i& "e !inema i! in en1e1 o eli!i R N -ill "e !inema i! in*orm "e 3layer abo' "e )ame an1 "e !"ara! er&R N Do yo' wan "e !inema i! o &"ow!a&e "e )ameH& )ra3"i!&R
O.5$CT0 ObLe! & are "e 2i&'al elemen & o* a )ame "a !om3le e a &!ene in "e )ame an1 ma.e i loo. real( For e<am3le6 in a !ar ra!in) )ame6 all "e elemen & "a !on& i ' e a )a& 3'm3 w"ere "e !ar & o3& o a.e *'el are obLe! &( T"e 3layer may or may no be able o in era! wi " all "e obLe! &( For e<am3le6 "e 3layer may be able o !li!. "e "o&e o *ill '3 "e !ar b' may no be able o &wi3e "e !re1i !ar1 ma!"ine 3la!e1 in "e &!ene(
www.it-ebooks.info
www.it-ebooks.info
1! , 2esso* 1
"igure ;-;( An e%ample of an ob:ect
A "e !on!e3 'ali,a ion & a)e6 "e 1e&i)ner i1en i*ie& "e obLe! & *or ea!" &!ene in "e )ame an1 3a&&e& i on o "e !on!e3 ar i& 6 w"o will 1e&i)n "e&e obLe! & .ee3in) "e 2i&'al "eme in min1( Fi)'re :7:A &"ow& an e<am3le o* an obLe! (
C?A8ACT$80 In mo& o* "e )ame& o1ay6 a !"ara! er re3re&en & "e 3layer( T"ere*ore6 i i& im3or an o !on!e3 'ali,e a !"ara! er in "e mo& reali& i! manner &o "a "e 3layer !an re!o)ni,e "im&el* or "er&el* "ro')" "a !"ara! er(
Con!e3 'ali,in) a !"ara! er in2ol2e& *le&"in) o' yo'r !"ara! erH& 3er&ona( T"i& broa1ly in!l'1e& !on!e3 'ali,in) "e !"ara! erH& loo.&6 ima)e6 a! ion&6 an1 1ialo)&( Fin1in) an&wer& o "e *ollowin) B'e& ion& will "el3 yo' !rea e yo'r !"ara! erH& 3er&ona4 N How will "e 3"y&iB'e o* "e !"ara! er beR N -"a 1oe& "e !"ara! er ea R N -"ere 1oe& "e !"ara! er li2eR N -"a i& "e !"ara! erH& ro' ineR N How 1oe& "e !"ara! er be"a2e w"en an)ry or &'r3ri&e1R N Doe& "e !"ara! er "a2e a 'niB'e !a !"3"ra&eR N How 1oe& "e !"ara! er *eel abo' "e )ame &i 'a ionR N -"o i& "e !"ara! er4 2illain6 "ero6 men or6 ally6 or &omeone el&eR A lo o* e**or )oe& in o !on!e3 'ali,in) e2ery a! ion a !"ara! er nee1& o 3er*orm in a )ameK&'!" a& wal.in)6 r'nnin)6 L'm3in)6 an1 !limbin)Kin or1er o enable "e !"ara! er o 3er*orm 2ario'& a&.&( T"e in er3lay an1 !o"e&ion be ween "e !"ara! erH& a! ion& an1 1ialo)& re&'l in brin)in) abo' "e in en1e1 rea! ion *rom "e 3layer( T"e !"ara! erH& a! ion& an1 wor1& !an ran&*orm "im or "er in o &omeone w"om "e 3layer li.e& or 1i&li.e&( I i& al&o im3or an "a 6 i* nee1 be6 "e !"ara! er e2ol2e& in a belie2able manner( For e<am3le6 H'l. ran&*orm& in o a &'3er"ero be!a'&e o* )amma ra1ia ion6 S3i1erman be!a'&e o* a &3i1er bi e6 an1 Iron Man be!a'&e o* "i& weal "( Fi)'re :7:; &"ow& an e<am3le o* a )ame !"ara! er6 *rom $ine! S3or &4 Sea&on 8(
www.it-ebooks.info
70$8 -1T$8"AC$ =7-> U&er in er*a!e DUIE i& a !olle! i2e erm re*errin) o "e on&!reen elemen & "ro')" w"i!" a 3layer in era! & wi " "e )ame( T"e UI "el3& "e 3layer a!!e&& in*orma ion abo' "e )ame worl1 an1 "e & a '& o* "i& or "er !"ara! er( T"e UI elemen & in a )ame in!l'1e4 N Men'& N UI !om3onen & D*or e<am3le6 1i**eren !"ara! er a2a ar&E N Te< N I!on& N Layo' N Color
A well71e&i)ne1 UI ma.e& "e )ame ea&ier o 3lay( T"e 3layer !an ea&ily a&&e&& "e &i 'a ion an1 re&3on1 a!!or1in)ly( A 3oorly 1e&i)ne1 UI ma.e& i "ar1er *or "e 3layer o i1en i*y w"a nee1& o be 1one or w"a re&o'r!e& are a2ailable6 ma.in) i *r'& ra in) *or "e 3layer an1 r'inin) a )oo1 )ame( T"e UI o* "e )ame Halo i& an e<am3le o* a well71e&i)ne1 UI D&ee Fi)'re :7:CE( T"e )ame 3ro2i1e& an in ere& in) a33roa!" o "e w"ole i1ea o* UI(
"igure ;-;@ The ?alo game interface =7->
A& , 2esso* 1
A well71e*ine1 UI 1e&i)n "a& "e *ollowin) !"ara! eri& i!&4 N In 'i i2e4 A )oo1 UI 1oe& no reB'ire "e '&er o "in. abo' "ow o a!!e&& or in er3re "e in*orma ion an1 *ea 're& o* yo'r )ame( U&er& &"o'l1 *in1 w"a "ey nee1 nea ly an1 lo)i!ally arran)e1 *or "em on &!reen( N Re&3on&i2e4 Player& &"o'l1 re!ei2e a33ro3ria e *ee1ba!. w"en "ey !li!. or a!!e&& UI elemen & &o "a "ey 1onH won1er w"e "er "e !li!. or .ey 3re&& wa& &'!!e&&*'l( N Rele2an 4 /o' m'& be !are*'l abo' "ow an1 w"en yo' '&e a 3ar i!'lar y3e o* UI elemen ( For e<am3le6 !l' erin) "e UI wi " i!on& *or 1i**eren y3e& o* wea3on& mi)" be '&e*'l in a )ame w"ere "e 3layer "a& o *reB'en ly !"an)e "e wea3on o .ill o33onen &( Howe2er6 "e &ame6 !l' ere1 UI will no &'i a Li)&aw 3',,le )ame6 in w"i!" "e i!on&6 al "o')" *or '&e*'l 3'r3o&e&6 mi)" blen1 wi " "e 3',,le 3ie!e& an1 irri a e "e 3layer( Similarly6 !olor 3lay& an im3or an 3ar in !rea in) "e !orre! )amin) e<3erien!e( Some !olor& are a 1i& ra! ion *or "e 3layer an1 m'& be a2oi1e1 on "e UI( N U&er *rien1ly4 T"e UI i& no '&er *rien1ly i* i a.e& "e 3layer oo many .ey& ro.e& or b' on 3re&&e& o 3lay "e )ame( Player& wan o &ee im3or an in*orma ion a a )lan!e6 )e "rea aler &6 an1 re!ei2e *ee1ba!. *or a! ion a.en "ro')" a UI "a remain& "e &ame "ro')"o' "e )ame( N C'& omi,able4 Gi2e "e ma<im'm 3o&&ible !on rol in "e "an1& o* 3layer&( For e<am3le6 le "em &wi !" on or &wi !" o** "e a'1io6 no ma er "ow im3or an yo' 3er!ei2e i o be a 3ar o* yo'r )ame( /o' !an )i2e '&er& "e o3 ion o* m' in) L'& "e ba!.)ro'n1 m'&i! or L'& "e &o'n1 e**e! &( I* yo' "a2e a oolbo<6 le "e 3layer& mo2e i aro'n1 an1 1o!. i w"ere "ey *in1 i mo& !om*or able( Le "em !"oo&e "e win1ow &i,e( T"e li& o* "in)& "a yo' !an le "e 3layer !'& omi,e i& en1le&&M "e e&&en!e i& o le "e 3layer& be "a33y an1 !om*or able( /o' m'& 1e2elo3 a 3ro o y3e o* "e UI an1 !are*'lly e2al'a e "e in1i2i1'al elemen & o* "e UI *or i & in en1e1 e**e! on 3layer&(
A7 -O T?$M$ Can yo' ima)ine a &!ary mo2ie or )ame wi " "e &o'n1 'rne1 1ownR I &im3ly 1oe& no "a2e "e in en1e1 e**e! ( For a )ame o "a2e a'1io "a en)a)e& "e 3layer6 yo' m'& wor. wi " "e &o'n1 1e&i)ner( T"e &o'n1 1e&i)ner a12i&e& on "e a'1io elemen & "a will wor. well wi " "e 3ro3o&e1 &e in)6 & ory6 an1 o "er )ame3lay elemen &(
Game a'1io al&o in!l'1e& "e &o'n1 "a a!!om3anie& "e non7in era! i2e 3ar & o* "e )ame D*or e<am3le6 "e in ro1'! ion mo2ie an1 !' 7&!ene&E( I !on!ern& elemen & o* in era! i2i y a& well a& a'1io o' &i1e "e !on e< o* "e )ame6 &'!" a& &o'n1 *or )ame railer&( Game a'1io "a& e2ol2e1 *rom &in)'lar bee3& o &o'n1 ra!.&( To "el3 yo' !"oo&e "e be& a'1io "eme6 yo' nee1 o !on&i1er "e *ollowin) B'e& ion&4 N -ill ea!" !"ara! er "a2e a 'niB'e 2oi!eR N How 1oe& "e !"ara! er&H &o'n1 or 1ialo) *'n! ion in "e )ame D*or e<am3le6 "el3 *or "e 3layer6 !omi! relie*6 an1 &o onER N -"a y3e& o* m'&i! wor. be& wi " "e )ameR N -"ere in "e )ame will "e m'&i! 3layR N -"a y3e& o* &o'n1 e**e! & wor. be& in "e )ameR T"e li& i& no e<"a'& i2e( /o' m'& remember "a 3layer& enLoy "e )amin) e<3erien!e i* "e )ame i& &'33or e1 by a )oo1 a'1io "eme( Remember "e *ollowin) i3& w"en !"oo&in) "e a'1io "eme4 N T"in. abo' all "e &i 'a ion& "a !an ari&e in "e )ame an1 "en !on&i1er "e &o'n1& yo' will reB'ire o )o wi " "e &i 'a ion&( N P'r!"a&e an1 '&e &o'n1 &o* ware "a will allow yo' o e<3lore 1i2er&e &o'n1 e**e! &(
www.it-ebooks.info
N Con&i1er "e y3e& o* &o'n1 e**e! & "e )ame will reB'ire( For e<am3le6 *or a &"oo in) )ame6 yo' will nee1 o !rea e &o'n1& "a re&emble )'n&"o &6 la&er &o'n1&6 an1 )eneral &o'n1&(
www.it-ebooks.info
AA , 2esso* 1
"igure ;-;L The game mechanics cycle
+layer Action Character :umps to reach apple
Game $ffect
1o
Aes
"eedback ;
O7$0T
C$8T-"-CAT-O1 8$A A Can you name three different JuestsB ;.(
I* yo' wan "e 3layer o !om3le e a &e o* 3re1e*ine1 a&.& in or1er o be &'!!e&&*'l in "e )ame6 yo' are e&&en ially 1e&i)nin) a B'e& me!"ani!( F'e& & !an be '&e1 in a12en 're6 *an a&y6 an1 role73layin) )ame&( In a B'e& 6 "e 3layer "a& o &ear!" a 3ar i!'lar en1 re&'l ( A B'e& !"ain i& a )ro'3 o* B'e& & "a are !om3le e1 in &eB'en!e( Com3le ion o* ea!" B'e& i& a 3re7 reB'i&i e o be)innin) "e ne< B'e& in "e !"ain( A B'e& '&'ally in!rea&e& in 1i**i!'l y a& "e 3layer 3ro)re&&e& "ro')" "e B'e& !"ain( An e<am3le o* a B'e& i& "e &e o* a&.& "a "e IDra)onbornJ 3er*orm o a!"ie2e mone ary rewar1& in "e )ame T"e El1er S!roll& V4 S.yrim( U&'ally6 B'e& & lea1 o a rewar1 me!"ani! in w"i!" "e 3layer i& awar1e1 &ome 3oin & *or bein) &'!!e&&*'l( Rewar1& "el3 in mo i2a in) "e 3layer o !on in'e "e )ame( I al&o en"an!e& "e 3layin) e<3erien!e( T"ere are 1i**eren .in1& o* B'e& &6 &'!" a&4 N $ill B'e& 4 S3e!i*i! !"ara! er& nee1 o be .ille1( N Colle! ion B'e& 4 T"e 3layer "a& o !olle! !er ain obLe! &( N Tar)e B'e& 4 T"e 3layer "a& o rea!" a 3ar i!'lar 1e& ina ion an1 1eli2er "e )oo1&(
C$8T-"-CAT-O1 8$A A <hat is a suitable task mechanic for an ad!enture gameB ;.(
/o' m'& remember no o o2er'&e "e B'e& me!"ani!( %e& in) a B'e& wi "in a B'e& may lea1 o "e 3layer )e in) irri a e1(
TA02 Ta&. me!"ani!& )i2e "e 3layer a o71o li& o !om3le e a B'e& ( Unli.e B'e& &6 a&.& mi)" or mi)" no en1 wi " rewar1&(
Here i& an e<am3le o* a&.& *rom Co'n er S ri.e4 N Ta&. :4 I* yo' are a errori& 6 .ill all "e o33onen & *rom "e Co'n er Terrori& &B'a1( N Ta&. 84 I* yo' are a member o* "e Co'n er Terrori& &B'a16 yo' nee1 o .ill "e error7 i& & an1 &a2e "e "o& a)e& wi "o' le in) anyone "arm "e "o& a)e& in any way( /o' m'& re*rain *rom loa1in) yo'r )ame wi " oo many a&.& be!a'&e "e 3layer will e2en '7
www.it-ebooks.info
ACT-6-T-$0 Ano "er )ame me!"ani! i& a! i2i ie&( A! i2i ie& are "e &'b&e o* a a&. an1 &'))e& "ow "e 3layer will 3er*orm "e 3ar i!'lar a&.(
For e<am3le6 i* "e a&. o* a &ol1ier i& o .ill a errori& on "e o33o&i e &i1e o* "e ri2er6 "e will nee1 o 3er*orm "e *ollowin) a! i2i ie& in "e )i2en or1er o !om3le e "a a&.4 :( T"e &ol1ier ri1e& on "i& "or&e( 8( T"e &ol1ier !ro&&e& "e ri2er '&in) an a33ro3ria e me!"ani&m( A( T"e &oli1er & ra e)i,e& an1 .ill& "e errori& (
?O< TO <-1
C$8T-"-CAT-O1 8$A A <hat are three commonly used Chow to winD mechanicsB ;.(
TA2$ 1OT$
A well7*o')" 2i! ory i& be er !"eri&"e1 "an an ea&y one( T"ere*ore6 1o no !rea e win me!"an7 i!& "a are oo ea&y o a!"ie2e(
C$8T-"-CAT-O1 8$A A <hat are suitable goals for a fantasy gameB ;.(
E2ery 3layer wan & o win( T"e win "a33en& w"en "e 3layer 3er*orm& an a! ion "a re&'l & in a &'!!e&&*'l o' !ome( -"ile !on!e3 'ali,in) a )ame6 yo' nee1 o 1e*ine "e !on1i ion& 'n1er w"i!" "e 3layerH& a! ion !an re&'l in a win( Some o* "e 3o3'lar "ow7 o7win me!"ani!& are4 N Lo&& a2oi1an!e4 For e<am3le6 in !"e&&6 "e winner o* "e )ame i& "e 3layer w"o !"e!.7 ma e& "e o "er 3layerH& .in)6 "ereby &e!'rin) "i& or "er own .in)( N Elimina in) o33onen &4 For e<am3le6 in Lor1 o* "e Rin)&4 T"e Two Tower&6 "e 3layer win& by .illin) all "e mon& er& or enemie&( N Lo)i!4 For e<am3le6 in Mi!ro&o* Tin.er6 "e 3layer win& w"en "e 3',,le i& !om3le e or "e ri11le i& re&ol2e1( N Ra!e&4 For e<am3le6 in Sna.e& an1 La11er& an1 L'1o6 "e *ir& 3layer o rea!" "e *ini&" line i& "e winner( N S!orin)4 For e<am3le6 in "e !a&e o* )ol* an1 billiar1&6 "e 3layer a!!'m'la e& &!ore 3oin & or o.en&( T"e winnin) !on1i ion !o'l1 be a &im3le ar)e &!ore or a !ombina ion o* 2ario'& &!ore 3oin & *or 1i**eren )ame a&.&( T"e "ow7 o7win me!"ani! i& an im3or an ool in a ra! in) "e 3layer( An ea&y "ow7 o7win me!"ani! !an r'in e2en "e be& 1e&i)ne1 )ame(
GAM$ GOA/0 A )ame )oal i& "e !olle! i2e &'!!e&& !ri eria *or "e a&.& in "e )ame( Le '& a&&'me "e *ol7 lowin) )ame me!"ani!& *or a )ame4 N F'e& 4 $ill "e o33onen ( N Ta&.4 S"oo a "e o33onen '&in) a &ni3er ri*le( N A! i2i ie&4 Aim a "e o33onen "ro')" "e &ni3er "ole an1 3re&& "e ri))er( N -in4 -in "a33en& w"en "e 3layer i& able o .ill "i& o33onen wi "o' )e in) any *a al inL'rie&(
For "i& )ame6 "e )ame )oal will be4 To &'!!e&&*'lly !om3le e all a&.& an1 .ill "e o33onen wi "o' )e in) any *a al inL'rie&(
(:/22 ('MMA8;
-1 T?-0 /$00O1# AO7 /$A81$ H I The idea for a game encapsulates defining the moti!ation for the set of players you are targeting. -t also encapsulates deciding the genre and platform that is most appropriate for those players. I +eople play games to satisfy their basic needs# which include Juest# learning# task management# determination# competence# and thrill.
www.it-ebooks.info
A% , 2esso* 1
I I I I
I I I I I I I I I I I I
The target audience for a game can be categoriGed as casual# hard-core# and intermediary players. .ased on the gameplay# digital games can be categoriGed into !arious genres. The genres include education# action# ad!enture# sports# simulation# role-playing# fantasy# card# and board games. Games can be distinguished based on their online or offline status# number of players# and gaming platforms. Gaming platforms include console# +C# arcade# and mobile. A mission statement describes the main ob:ecti!e of the game# challenges to the achie!ement of that ob:ecti!e# and the resources a!ailable to players to help achie!e that ob:ecti!e. The storyline of a game is the plot in the game and maps to the deepest needs of the players. A gameplay describes the !arious elements that bring about player interaction with the game. Game setting influences the look and feel of the game# such as the !isual theme or cinematic of the game# and the ob:ects# characters# user interface# audio theme# and any other element that is a part of the game. Cinematic means the seJuences in a game o!er which the player has no or only limited control. Ob:ects are the interacti!e or noninteracti!e !isual elements of the game that complete a scene and make the game look belie!able. Characters in a game are defined based on the actions they perform and the things they say. A well-designed 7- makes the game easier to play. To design effecti!e game mechanics# you must first understand how the game works. Ouests should lead to a reward mechanic in which the player is awarded some points for being successful. Task mechanics gi!e the player a to-do list# which in turn can be broken down into specific acti!ities. ?ow-to-win game mechanics specify the conditions under which a player can win the game. Game goal is the collecti!e success criteria for the tasks in the game.
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.& 3ro2i1e1( :( A!"ie2emen i& aDnE QQQQQQQQQQ nee1 o* 3layer& "a mo i2a e& "em o 3lay )ame&( T"e P&y!"olo)i!al )ame )enre '&e& more "an one 3layer o be 3ar o* "e )ame3lay( 8( QQQQQQQQQQQ )ame )enre in2ol2e& &3on aneo'& an1 B'i!. !"allen)e&( A( QQQQQQQQQQQQQQQ i& "e 3rimary 1e2i!e in !ar1 )ame&( ;( QQQQQQQQQQQQQ )ame )enre em'la e& real7worl1 a! i2i ie&( C( A B'e& me!"ani! "a reB'ire& 3layer& o .ill an o33onen i& !alle1 QQQQQQQQ( @( A )ameH& 2i&'al "eme6 '&er in er*a!e6 obLe! &6 !"ara! er&6 an1 a'1io "eme !on& i ' e "e QQQQQQQQQQQQQQQQQQQQ o* "e )ame( =( T"e QQQQQQQQQQQQQ o* a )ame 1e*ine "e in era! ion be ween "e )ame an1 "e 3layer&(
www.it-ebooks.info
>( A 3layer in era! & wi " a )ame "ro')" i & QQQQQQQQQQQ6 w"i!" i& an im3or an !om3o7 nen o* )ame3lay( ?( A n'mber o* B'e& & & r'n) o)e "er *orm aDnE QQQQQQQQQQ( :9( A! i2i ie& are a &'b&e o* QQQQQQQ me!"ani!&(
Multiple Choice
Cir!le "e le er or le er& "a !orre&3on1 o "e be& an&wer( :( /o' 1e!i1e o 1e2elo3 a )ame in w"i!" "e 3layer !an 3lay "e role o* "e !"ara! er& in "e )ame( -"i!" o* "e *ollowin) )ame )enre& 1oe& yo'r )ame belon) oR a( MMORPG b( RPG !( A12en 're 1( Sim'la ion 8( /o' 1e!i1e o 1e2elo3 a )ame in w"i!" "e 3layer& !an 3lay '&in) "eir PSP( -"i!" o* "e *ollowin) )ame 3la *orm& wo'l1 yo' !"oo&eR a( Vi1eo )ame !on&ole b( Han1"el1 )ame !on&ole !( PC )ame 1( Ar!a1e A( /o' wan o b'il1 a )ame on an o3en 3la *orm( -"i!" o* "e *ollowin) 3la *orm& wo'l1 yo' !"oo&eR a( Vi1eo )ame !on&ole b( Han1"el1 )ame !on&ole !( PC )ame 1( MMORPG ;( /o' 1e2elo3 an online role73layin) )ame *or a lar)e n'mber o* )amer& in w"i!" "e )amer& !an &"are "e )ame re&o'r!e&( -"i!" o* "e *ollowin) 3la *orm& wo'l1 yo' !"oo&e *or yo'r )ameR a( Vi1eo )ame !on&ole b( Ar!a1e !( Mobile 1( MMORPG C( -"i!" o* "e *ollowin) are )ame me!"ani!& elemen & o !on&i1er w"en !on!e3 'ali,in) a )ameR DC"oo&e all "a a33ly(E a( F'e& & b( Ta&.& !( Cinema i!& 1( Game )oal& @( -"i!" one o* "e *ollowin) &"o'l1 yo' !on&i1er w"ile wri in) a & orylineR a( Emo ional bon1 wi " lo2able6 *rien1ly !"ara! er& b( Fe !" B'e& & !( Tar)e 3layerH& mo i2a ional nee1 1( T'rnaro'n1& =( -"i!" o* "e *ollowin) B'ali ie& &"o'l1 "e UI o* a )ame 3o&&e&& o be !alle1 in 'i i2eR a( T"e 3layer !an ea&ily a!!e&& in*orma ion "ro')" "e UI( b( T"e UI 3ro2i1e& a33ro3ria e *ee1ba!. w"en "e 3layer a!!e&&e& 2ario'& UI elemen &( !( T"e UI allow& "e 3layer o *in1 "e reB'ire1 ool& o 3er*orm "e a&. a "an1( 1( T"e 3layer !an !'& omi,e "e UI a& 3er "i& or "er reB'iremen &(
www.it-ebooks.info
A$ , 2esso* 1
>( -"i!" o* "e *ollowin) )ame me!"ani!& will lea1 o a rewar1 me!"ani! in w"i!" "e 3layer i& awar1e1 &ome 3oin & *or bein) &'!!e&&*'lR a( Ta&.& b( F'e& & !( How o win 1( A! i2i ie& ?( IT"e 3layer nee1& o !ro&& a 1an)ero'& ri2er '&in) a boa an1 1eli2er "e &e!re me&&a)e o "e army(J -"i!" y3e o* B'e& i& "i&R a( $ill b( Colle! ion !( Tar)e 1( Se!re
, Competency
Assessment
+ro:ect ;-;H efining the Target Audience
/o' 1e!i1e o !rea e a )ame in "e &3or & )enre( /o' '&e a mobile 1e2i!e a& yo'r )amin) 3la *orm( De*ine "e ar)e a'1ien!e *or yo'r )ame wi " re&3e! o "e &ele! e1 )ame )enre an1 )ame 3la *orm(
, +roficiency
Assessment
+ro:ect ;-(H Creating a Game 0toryline
/o' are 1e2elo3in) a *an a&y )ame( De2elo3 "e & oryline an1 )ame me!"ani!& *or yo'r )ame(
www.it-ebooks.info
/$00O1
<ork with the network. Manage game performance. 7nderstand the different game platforms.
:3; T38M(
central processing unit =C+7> istributed 6irtual $n!ironment = 6$> game controller game performance graphics card graphics processing unit =G+7> latency load balancing output resolution profile screen Transmission Control +rotocol =TC+> 7ser atagram +rotocol =7 +> <eb ser!ice
T"e *ir& & e3 be*ore be)innin) "e 1e2elo3men o* any &o* ware a33li!a ion i& "e i1en7 i*i!a ion o* "e ba&i! reB'iremen & an1 "e me "o1& o mana)e "e&e reB'iremen &( T"i& im3lie& i1en i*yin) "e y3e o* "ar1ware an1 ne wor. "a "e &o* ware a33li!a ion mi)" '&e( T"e "ar1ware reB'iremen !an be & ora)e me1i'm6 in3' 0o' 3' 1e2i!e&6 an1 &o on( T"e ne wor. reB'iremen !an be "e y3e o* 3ro o!ol an1 "e 'n1erlyin) ne wor. ar!"i e! 're( I1en i*yin) "e&e reB'iremen & "el3& o &3ee1 '3 "e 1e2elo3men ime be!a'&e "e reB'iremen & are !lear an1 well 'n1er& oo1( T"i& & e3 a33lie& o "e 1e2elo37 men o* a )ame a33li!a ion a& well( Be*ore 1e2elo3in) a )ame6 "e 1e2elo3men eam "a& o in ro1'!e "em&el2e& o "e 1i**eren in3' 0o' 3' 1e2i!e&6 )ra3"i!& !ar1&6 an1 "e 3er*orman!e o* 2ario'& 3la *orm&( Moreo2er6 "ey al&o nee1 o .now "e 1i**eren ne 7 wor. 3ro o!ol& an1 ne wor. ar!"i e! 're& "a "eir )ame mi)" '&e(
A# www.it-ebooks.info
A! , 2esso* A
, -dentifying
e!ice
T"e in3' 1e2i!e& *or a )ame are a!!e&&orie& "a enable "e 3layer& o 3ro2i1e in3' o 2i1eo )ame&( T"e 3layer& '&e "e in3' 1e2i!e& o !on rol "e obLe! & or !"ara! er& in "e )ame( T"e !ommonly '&e1 in3' 1e2i!e& *or 2i1eo )ame& are )enerally !la&&i*ie1 a& )ame !on roller&( To1ay6 a wi1e 2arie y o* )ame !on roller& are a2ailable in "e mar.e ( Mo& o* "e )ame 1e2el7 o3men !om3anie& 1e2elo3 )ame& "a &'33or a wi1e 2arie y o* in3' 1e2i!e&( Some o* "e !ommonly '&e1 )ame !on roller& are4 N Con rol 3a16 +oy3a16 or Game3a1 Dwire1 or wirele&&E N Mo'&e N $eyboar1 N $ine! N Mobile 1e2i!e& N S eerin) w"eel N +oy& i!. N O "er in3' 1e2i!e&
CO1T8O/ +A # 5OA+A # O8 GAM$+A =<-8$ O8 <-8$/$00> A !on rol 3a1Kal&o .nown a& a Loy3a16 )ame3a16 or 1ire! ion 3a1 DD73a1EKi& a )ame !on7 roller6 w"i!" '&'ally !ome& alon) wi " 2i1eo )ame !on&ole&( An e<am3le o* a !on rol 3a1 i& an #bo< A@9 !on roller(
www.it-ebooks.info
www.it-ebooks.info
T"e 3layer& !an "ol1 "e !on rol 3a1 in "eir "an1&( T"ey !an '&e "eir *in)er&6 e&3e!ially "eir "'mb&6 o !on rol "e obLe! & or !"ara! er& in "e )ame( T"e 3a1 !ome& wi " a &e o* a! ion b' on& an1 a 1ire! ion !on roller D&ee Fi)'re 87:E( Player& '&'ally o3era e "e a! ion b' on& wi " "eir ri)" "'mb an1 "e 1ire! ion !on roller wi " "eir le* ( T"e a12an a)e o* "e !on rol 3a1 i& "a i allow& 3layer& in!rea&e1 !on rol o2er "e !"ara! er& in "e )ame( Moreo2er6 i allow& "e 3layer& o '&e *ewer *in)er& o 3lay "e )ame( Al "o')" "e !on rol 3a1 '&'ally &'33or & "e 2i1eo )ame !on&ole6 i i& al&o a2ailable *or PC&( /o' !an !onne! a !on rol 3a1 o any o* "e USB 3or & on "e 2i1eo )ame !on&ole or PC "ro')" a wire or a !or1( -irele&& !on rol 3a1& are al&o a2ailable6 w"i!" r'n on ba erie&( For e<am3le6 an #bo< A@9 !on roller i& a2ailable in bo " wire1 an1 wirele&& 2er&ion&(
"igure 9-; A game system control pad
MO70$ T"e mo'&e i& 'biB'i o'& on PC )ame&( T"e y3i!al '&e o* "e mo'&e i& *or aimin) an1 !on7 rollin) "e )ame( In o "er wor1&6 a mo'&e !an be '&e1 w"en "e )ame reB'ire& more 3re!i7 &ion6 &'!" a& in &"oo er )ame&( T"e )ame )enre w"ere "e mo'&e i& more &'i able in!l'1e& *ir& 73er&on &"oo er DFPSE )ame&6 !ar1 )ame&6 an1 boar1 )ame&(
T"e a12an a)e o* '&in) a mo'&e i& "a 3layer& !an "an1le "e mo'&e wi " ea&e an1 "a2e be er !on rol o2er "e obLe! in "e )ame( Howe2er6 "e main a! ion a !ommon mo'&e &'37 3or & i& a !li!.( In !om3le< )ame&6 a 3layer !an 3er*orm many a! ion&6 &'!" a& L'm3in)6 "i in)6 r'nnin)6 wal.in)6 'rnin)6 &3ee1in)6 an1 &o on( E2ery a! ion !anno be a&&o!ia e1 wi " "e !li!. o* a mo'&e( Gamin) mi!e a em3 o o2er!ome "i& limi a ion by b'il1in) in a11i ional b' on& "a are '&er73ro)rammable o 3er*orm a 2arie y o* )ame7&3e!i*i! a! ion&( An e<am3le o* )ame7&3e!i*i! mo'&e 3eri3"eral i& "e Mi!ro&o* Si1ewin1er Gamin) Mo'&e D&ee Fi)'re 878E(
www.it-ebooks.info
@& , 2esso* A
2$A.OA8 $eyboar1& are 'biB'i o'& on PC 3la *orm& an1 mo& '&er& are !om*or able '&in) "em( T"e lar)e n'mber o* 'niB'e .ey& an1 .ey &eB'en!e& )i2e& 3layer& a broa1 3ale e o* !omman1& *or *ine !on rol o2er )ame obLe! &(
Li.e mo'&e 3eri3"eral&6 "ere are al&o &e2eral .eyboar1 3eri3"eral& "a are &3e!i*i!ally 1e&i)ne1 *or 3layin) 2i1eo )ame&( T"e&e .eyboar1 3eri3"eral& are b'il wi " )ame7&3e!i*i! *'n! ion&( An e<am3le o* a )ame7&3e!i*i! .eyboar1 3eri3"eral i& "e Mi!ro&o* Si1ewin1er Gamin) $eyboar1 D&ee Fi)'re 87AE( Few )ame& are 1e&i)ne1 o reB'ire "e&e .eyboar1&(
2-1$CT $ine! i& "e la e& a11i ion o )ame !on roller 3eri3"eral& D&ee Fi)'re 87;E( $ine! wor.& wi " #bo< A@9 an1 i& a mo ion7&en&in) 1e2i!e "a &en&e& "e mo ion o* "e 3layer& '&in) a !amera an1 ran&la e& "em in o "e mo ion& o* "e !"ara! er in "e )ame( For e<am3le6 o 3lay a )ame o* enni&6 "e 3layer nee1& o mo2e "e "an1 a& i* "i in) "e ball wi " "e ra!.e 6 an1 "e !"ara! er 1oe& "e &ame a! ion(
Mo& ly &3or & )ame& &'!" a& &o!!er6 r')by6 &"oo in) )ame&6 an1 &im'la ion )ame& '&e $ine! a& "eir in3' 1e2i!e( /o' !an '&e $ine! w"en yo' wan "e 3layer& o )e 3"y&i!ally in2ol2e1 in one o* "e )ame !"ara! er& an1 '&e "eir *or!e an1 e**or on "e !"ara! er( Mi!ro&o* 1e&i)ne1 $ine! *or #bo< A@9 o wi1en i & normal )amer ba&e( A -in1ow& 2er&ion o* $ine! i& al&o a2ailable( T"e a12an a)e o* '&in) $ine! a& an in3' 1e2i!e in )ame& i& "a i "el3& "e 3layer o be in2ol2e1 3"y&i!ally wi " "e )ameH& !"ara! er( Howe2er6 "e 1i&a12an a)e i& "a $ine! wor.& only *or "e #bo< A@9 !on&ole an1 Mi!ro&o* 7ba&e1 !om3' er&(
www.it-ebooks.info
MO.-/$ $6-C$0 /o' alrea1y learne1 in Le&&on :6 II1ea in) an1 Con!e3 'ali,in) a Game6J "a yo' !an '&e mobile 1e2i!e& a& a )amin) 3la *orm( Al erna i2ely6 yo' !an al&o '&e "e mobile 1e2i!eK&'!"
a& "e -in1ow& P"oneKa& an in3' 1e2i!e *or "e #bo< A9 !on&ole D&ee Fi)'re 87CE( Player& !an '&e "e -in1ow& P"one o !on rol an1 in era! wi " an #bo< A@9 )ame( T"i& i& 3o&&ible by '&in) "e #bo< Com3anion a33 a2ailable in -in1ow& P"one( U&in) "e a336 3layer& !an !on rol 2i1eo )ame& on "e #bo< A@9 !on&ole( Moreo2er6 3layer& !an a!!e&& )ame& a2ailable on #bo< Li2e '&in) -in1ow& P"one( Re!en ly6 Mi!ro&o* anno'n!e1 "e #bo< Smar Gla&& a33 *or mobile 1e2i!e&( T"e #bo< Smar Gla&& a33 allow& mobile 1e2i!e&6 &'!" a& able & or 3"one&6 o !onne! wi " #bo< A@9( A& a re&'l 6 3layer& !an '&e "e mobile 1e2i!e a& ano "er !on roller *or "e )ame(
0T$$8-1G <?$$/ A & eerin) w"eel i& a )ame !on roller "a "a& a lar)e ro'n1 w"eel wi " one or more *ire b' 7 on& D&ee Fi)'re 87@E( T"e *ire b' on& are &im3le &wi !"e& "a "el3 "e )amer o ri))er &ome y3e o* a! ion( T"e 3layer !an !on rol "e mo2emen o* "e )ame !"ara! er or "e obLe! in "e )ame by & eerin) "e w"eel( Many w"eel& !an 'rn a ma<im'm o* 8=9 1e)ree& lo!. o lo!.( Some w"eel& *rom Lo)i e!" !an 'rn ?99 1e)ree& lo!. o lo!.( Mo& o* "e ra!in) ar!a1e )ame& an1 ra!in) &im'la or )ame&6 &'!" a& Ri!"ar1 B'rn& Rally6 &'33or & eerin) w"eel&( An a12an a)e o* a & eerin) w"eel )ame !on roller i& "a i !an be '&e1 in all y3e& o* ra!in) 2i1eo )ame&6 w"ere "e )amer a.e& 3ar in a ra!in) !om3e i ion wi " any y3e o* 2e"i!le( Moreo2er6 & eerin) w"eel& 3ro2i1e "e )amer wi " be er immer&ion w"en & eerin) a 2ir7 'al 2e"i!le( For e<am3le6 in a !ar ra!in) )ame6 yo' !an '&e "e & eerin) w"eel o a!!'ra ely mani3'la e "e & eerin) an)le o mana)e "e !ar( T"e 1i&a12an a)e i& "a a3ar *rom ra!in) 2i1eo )ame&6 o "er )ame )enre& 1o no &'33or & eerin) w"eel&(
www.it-ebooks.info
@A , 2esso* A
"igure 9-L A steering wheel game controller
5OA0T-C2
C$8T-"-CAT-O1 8$A A ?ow is a :oystick used in gamesB 9.;
A& "e name &'))e& &6 "e Loy& i!. i& li.e a & i!. "a "e 3layer& !an '&e o !on rol "e )ame D&ee Fi)'re 87=E( T"e 1e2i!e allow& *a& er mane'2erin) o* "e obLe! & in "e )ame( Player& !an il "e Loy& i!. wi "in a !one aro'n1 "e re& in) a<i& o* "e & i!.M "e !on roller re3or & "e 1ire! ion an1 1e*le! ion an)le o 3ermi "e '&er in er*a!e o re&3on1( Player& !an o3era e "e Loy& i!. wi " "eir 3rimary "an1 by "ol1in) "e ba&e in "e o33o&i e "an1 or 3la!in) i on a 1e&.( Fli)" &im'la or )ame& o* en '&e a Loy& i!.( T"e a12an a)e& o* a Loy& i!. are "a yo' !an '&e "i& )ame !on roller *or all "e !ommonly '&e1 )ame 3la *orm&6 &'!" a& 2i1eo )ame !on&ole&6 ar!a1e ma!"ine&6 an1 PC&( T"e 1i&a17 2an a)e i& "a i i& 1i**i!'l o '&e a Loy& i!. w"en 3re!i&ion i& reB'ire1 w"ile &ele! in) )ame obLe! & on "e &!reen(
OT?$8 -1+7T $6-C$0 A3ar *rom "e & an1ar1 in3' 1e2i!e&6 n'mero'& a11i ional in3' 1e2i!e& are a2ailable *or 1i**eren )ame&( T"e *ollowin) li& brie*ly 1e&!ribe& &ome o* "e&e in3' 1e2i!e&4 N Li)" )'n4 T"i& 1e2i!e "el3& o aim an1 &"oo a "e ar)e & on a )ame &!reen( T"i& 1e2i!e '&e& li)" o 1e e! "e ar)e e1 lo!a ion on "e )ame &!reen( N Dan!e 3a1 or 1an!e ma 4 T"i& 1e2i!e "el3& 3ro2i1e in3' o 1an!e )ame&( T"e 1e2i!e !on&i& & o* *la 3re&&'re7&en&i i2e )ame3a1 b' on& &e on a ma ( T"e 3layer& & e3 on "e ma an1 3re&& "e a! ion b' on& o !on rol "e )ame(
N -ii balan!e boar14 T"i& 1e2i!e i& '&e1 *or "e -ii an1 -ii U 2i1eo )ame !on&ole&( T"e 3layer& & an1 on "i& 'niB'e 3la *orm an1 3er*orm 2ario'& 3"y&i!al e<er!i&e a! i2i ie&( N M'&i!al )ame !on roller4 T"i& in3' 1e2i!e i& '&e1 in m'&i!7 "eme1 2i1eo )ame&( T"i& !on roller re&emble& m'&i!al in& r'men &6 &'!" a& )'i ar&6 1r'm&6 an1 .eyboar1&( N Mo ion &en&in) 1e2i!e4 Li.e $ine! 6 o "er mo ion &en&in) 1e2i!e& are a2ailable *or 1i**eren )ame !on&ole&( For e<am3le6 %in en1oH& -ii &y& em '&e& a -ii remo e( T"e -ii remo e allow& "e 3layer& o in era! wi " "e 2i1eo )ame "ro')" )e& 're& an1 3oin in)( T"e 1e2i!e "a& an a!!elerome er o re!o)ni,e "e )e& 're an1 an ima)e &en&or *or 3oin in)( Ano "er e<am3le o* a mo ion &en&in) in3' 1e2i!e i& PlayS a ion Mo2e *rom Sony(
e!ice
An o' 3' 1e2i!e *or a )ame i& an ele! roni! 1e2i!e6 &'!" a& a ele2i&ion or a moni or6 w"i!" 1i&3lay& "e 2i&'al o' 3' o* "e )ame(
O' 3' 1e2i!e& *all in o wo broa1 !a e)orie&6 namely6 1i&3lay 1e2i!e& an1 &o'n1 1e2i!e&( T"e 1i&3lay 1e2i!e&6 a& "e name &'))e& &6 1i&3lay "e 2i&'al elemen o* "e )ame6 an1 "e &o'n1 1e2i!e&6 &'!" a& &3ea.er& or "ea13"one&6 3ro2i1e "e a'1io o' 3' o* "e )ame(
-0+/AA $6-C$0
C$8T-"-CAT-O1 8$A A ?ow do display de!ices influence game outputB 9.9
A wi1e 2arie y o* 1i&3lay 1e2i!e& i& a2ailable o 1i&3lay "e 2i&'al o' 3' o* )ame&( T"e !"oi!e 1e3en1& on "e *ollowin) !ri eria4 N Genre o* )ame4 Game& o* 1i**eren )enre& reB'ire 1i**eren 2i&'al o' 3' 1e2i!e&( For in& an!e6 *or a &"oo in) )ame6 "e o' 3' 1e2i!e !an be a &im3le 1i&3lay 'ni o* any .in16 &'!" a& a moni or or ele2i&ion( For mobile )ame&6 "e 1i&3lay 1e2i!e i& "e &!reen o* "e "an1"el1 1e2i!e6 y3i!ally &maller "an a =7in!" 1ia)onal( N Game 3la *orm4 Di**eren )ame 3la *orm& reB'ire 1i**eren 1i&3lay 1e2i!e&( For in& an!e6 )ame& ma1e *or mobile 3la *orm& wi " a re&ol' ion ma !"in) o "e "an1"el1 1e2i!e& are y3i!ally no 1e&i)ne1 o be 3laye1 on a lar)er &!reen6 &'!" a& a 3roLe! or &!reen6 be!a'&e "e )ra3"i! en1& o 3i<ela e( Howe2er6 "e new )enera ion o* 1e2i!e&6 &'!" a& "e iPa1 an1 Sam&'n) Gala<y %o e6 1o &'33or a "i)" re&ol' ion o* 1i&3lay( N Game )ra3"i!&4 T"e )ra3"i!& o* "e )ame al&o 3lay a maLor role in !"oo&in) "e 1i&3lay 1e2i!e&( Game& "a '&e "ea2y )ra3"i!& !anno be 1i&3laye1 on 1e2i!e& wi " low7en1 "ar1ware "a 1oe& no &'33or en"an!e1 )ra3"i!&( Moreo2er6 )ame& wi " &mall !"ar7 a! er& !a'&e 2i&ibili y i&&'e& in !er ain 3la *orm& "in1erin) "e )ame3lay( For e<am3le6 "e A)e o* Em3ire& )ame i& a "i)"ly )ra3"i!al war & ra e)y )ame( I reB'ire& a 1e ail le2el o* )ame )ra3"i!& "a i& no well &'i e1 *or "e &mall &i,e o* mobile 1e2i!e 1i&3lay&( T"e &mall &i,e o* "e )ame !"ara! er& !a'&e& a lo o* "in1ran!e *or "e 3layer w"ile 3layin) "e )ame( N Tar)e a'1ien!e4 Ano "er !ri erion "a yo' nee1 o !on&i1er w"en &ele! in) "e 2i&'al o' 3' 1e2i!e i& "ow o* en "e ar)e a'1ien!e '&e& "o&e o' 3' 1e2i!e&( /o' nee1 o en&'re "a "e ar)e a'1ien!e i& !om*or able 3layin) "e )ame an1 "i& !an "a33en i* "ey !an '&e a *amiliar 2i&'al o' 3' 1e2i!e( T"ree !ommonly '&e1 1i&3lay 1e2i!e& are4 N Tele2i&ion& an1 moni or& N Han1"el1 1e2i!e& N To'!"&!reen 1e2i!e&
www.it-ebooks.info
www.it-ebooks.info
@% , 2esso* A
C$8T-"-CAT-O1 8$A A <hy are different games more appropriate for different display typesB 9.9
T$/$6-0-O1 A1 MO1-TO8 Almo& all "ome& "a2e a ele2i&ion( Player& !an !onne! "eir )amin) 1e2i!e6 &'!" a& "eir 2i1eo )ame !on&ole6 o "e ele2i&ion &e an1 2iew "e 2i&'al o' 3' on "e ele2i&ion 1i&3lay 'ni (
Similarly a moni or6 al&o re*erre1 o a& a &!reen6 i& an ele! roni! 1i&3lay 'ni *or !om3' er&( In )eneral6 )ame& 3laye1 on "e PC '&e "e moni or *or 1i&3lay( A 2arie y o* 1i&3lay 'ni & are a2ailable *or bo " ele2i&ion& an1 moni or&( Some o* "em in!l'1e4 N LiB'i1 !ry& al 1i&3lay DLCDE4 LCD &!reen& are "inner an1 li)" er "an "e & an1ar1 ele2i&ion( T"ey '&e LCD 1i&3lay e!"nolo)y an1 are a2ailable in lar)er &i,e&( N Pla&ma 1i&3lay 3anel DPDPE4 A 3la&ma 1i&3lay 3anel 1i&3lay& bri)" ima)e& an1 '&e& a wi1e !olor ran)e( T"e 3anel& are a2ailable in A9 in!"e& or lar)er &i,e&( N AD4 To1ay6 mo& o* "e "i)"7en1 ele2i&ion& an1 moni or& !ome wi " AD 1i&3lay an1 2iewin) 1e2i!e&6 &'!" a& AD )la&&e&6 o 2iew "e ima)e& in "ree71imen&ion&( To en"an!e "e )amin) e<3erien!e6 many )amin) !om3anie& are !rea in) )ame& &3e!i*i!ally *or AD o' 3' 1e2i!e&( A 3layer "a& o wear AD )o))le& o 3lay "e )ame( %ow 3eo3le are &"i* in) *rom "e & an1ar1 ele2i&ion o "i)"7en1 ele2i&ion&6 &'!" a& "e "i)" 1e*ini ion LCD0LED ele2i&ion D&ee Fi)'re 87>E( $ee3in) "i& in min16 1e2elo3er& !rea e &'i 7 able )ra3"i!& *or "eir )ame& o a1a3 o "e 3re&en 71ay 1eman1( Almo& all )ame& &'33or ele2i&ion or moni or &!reen a& "e o' 3' 1e2i!e6 e<!e3 mobile )ame&(
C$8T-"-CAT-O1 8$A A ?ow does the display Juality of a handheld de!ice differ from that of a +C or a consoleB 9.9
?A1 ?$/ $6-C$0 Han1"el1 1e2i!e& in!l'1e 2ario'& ele! roni! )a1)e &6 &'!" a& a mobile 3"one&6 &mar 3"one&6 able &6 PDA&6 an1 e2en "an1"el1 )ame !on&ole&( Unli.e !om3' er &y& em& wi " moni or& or !on&ole& on ele2i&ion&6 "e&e "an1"el1 1e2i!e& 3ro2i1e a rela i2ely &mall 1i&3lay &i,e( T"ey &'33or low7en1 )ra3"i!& !om3are1 o a PC or a !on&ole( Howe2er6 )oo1 B'ali y "an1"el1 !on&ole& !an 3ro2i1e an enri!"in) )amin) e<3erien!e(
Peo3le w"o ra2el a lo an1 wan en er ainmen 1'rin) ran&i 3re*er "an1"el1 1e2i!e&( Game& 1e&i)ne1 *or "e&e 1e2i!e& '&e &im3le )ra3"i!& 1'e o "eir &mall 1i&3lay &i,e an1 3ro7 !e&&in) 3ower a& !om3are1 o PC& an1 !on&ole&( T"e a12an a)e& o* '&in) "an1"el1 o' 3' 1e2i!e& are 3rimarily 3or abili y6 &im3li!i y6 an1 ea&e o* a2ailabili y( De&3i e i & )rowin) 3o3'lari y6 "an1"el1 1e2i!e&6 1'e o "eir &mall
www.it-ebooks.info
1i&3lay &i,e6 !an &'33or only r'1imen ary )ra3"i!&6 &e2erely limi in) "e 2arie y o* )ame& "a !an be ma1e a2ailable on "e&e 1e2i!e&( Howe2er6 "e n'mber o* "an1"el1 1e2i!e& "a& in!rea&e1 "e 1eman1 *or more )ame& in "i& 3la *orm6 w"i!" in 'rn i& 1ri2in) new e!"nolo)y a1o3 ion *or be er )ra3"i! &'33or ( T"e &!reen &i,e an1 1i&3lay B'ali y o* "an1"el1 1e2i!e& are in!rea&in) ra3i1ly6 an1 al "o')" "e 1e2i!e& are now !a3able o* 1i&3layin) "i)"er re&ol' ion )ra3"i!&6 "e &mall &!reen &i,e i& & ill an im3or an *a! or o !on&i1er w"en !"oo&in) yo'r &y& em an1 1e2i!e(
TO7C?0C8$$1 $6-C$0 To'!"&!reen 1e2i!e& allow '&er& o in era! wi " "e !om3' er or )ame '&in) "eir *in)er i3&( To'!"&!reen .io&.&6 &'!" a& "e 3a&&en)er in*orma ion &y& em& a rain or b'& erminal&6 are 1e&i)ne1 *or &el*7&er2i!e in& alla ion&( To1ay6 )ame ma.er& are "arne&&in) "e 3ower o* "e&e o'!"&!reen .io&.& o 3ro2i1e &im3le )ame& "a 3layer& !an 3lay '&in)
"eir *in)er&( T"e a12an a)e& o* !"oo&in) a o'!"&!reen .io&. a& an o' 3' 1e2i!e i& "e a2ailabili y o* "e )ame o a lar)er n'mber o* 3eo3le6 ea&e o* 3layin)6 an1 &im3le en er ainmen on "e )o( Howe2er6 no all )ame& &'33or o'!"&!reen .io&.&( To'!"&!reen e!"nolo)y i& al&o more !ommon in mobile 1e2i!e&6 &'!" a& &mar 3"one& an1 able !om3' er&( T"ere*ore6 a wi1e 2arie y o* o'!"&!reen )ame& i& a2ailable *or "e mobile 3la *orm( T"ere are al&o 2er&ion& o* 1e&. o3 an1 la3 o3 !om3' er& wi " o'!"&!reen 1i&3lay&( Fi)'re 87? &"ow& a 3i! 're o* a 1e2i!e wi " o'!"&!reen e!"nolo)y(
"igure 9-& A touchscreen de!ice
0O71
C$8T-"-CAT-O1 8$A A ?ow do sound de!ices influence gamesB 9.9
$6-C$0
So'n1 3lay& an e&&en ial 3ar in many )amin) e<3erien!e&( -i "o' &o'n16 "e *eel o* "e )amin) en2ironmen i& in!om3le e an1 3layer& wo'l1 no be able o immer&e "em&el2e& *'lly in o "e )amin) worl1( For in& an!e6 ima)ine yo' are 3layin) an a12en 're )ame( -"en "e )ame !"ara! er wal.& "ro')" "e *ore& 6 yo' !an "ear "e &o'n1 o* 1rie1 lea2e& !rin.lin) 'n1er*oo ( T"i& )i2e& yo' "e *eelin) "a "e !"ara! er i& a! 'ally wal.in) "ro')" a *ore& 6 an1 "i& e**e! en"an!e& yo'r )amin) e<3erien!e( Many )ame& reB'ire &o'n1 o 3ro2i1e a *eel o* "e )ame en2ironmen an1 o )e "e 3layer en)a)e1 in "e )ame( F'r "ermore6 &o'n1 !rea e& "e moo1 o* "e )ame( /o' !an !"oo&e o "a2e lo!al &3ea.er& or o3 *or a !om3le e &'rro'n1 &y& em *or a be er )amin) e<3erien!e D&ee Fi)'re 87:9E(
www.it-ebooks.info
@$ , 2esso* A
"igure 9-;E A complete surround sound system
Table 87: li& & &ome &o'n1 1e2i!e& an1 1e&!ribe& "eir a12an a)e& an1 1i&a12an a)e&(
Table 9-; Ad!antages and isad!antages of 0ound e!ices
0O71
$6-C$
6A1TAG$0
-0A 6A1TAG$0
?eadphones
N +ro!ide pri!acy N +re!ent disturbance to others N Can be used for games that support ( positional audio
@.; speakers
N +ro!ide optimum sound Juality I +ro!ide life-like reproduction of sound I +ro!ide better gaming e%perience
I $%pensi!e
9.; speakers
0tandard speakers
, -dentifying
C$8T-"-CAT-O1 8$A A <hat are the ways to manage the performance of the T+0 strategy gameB 9.*
i 1oe& on a mobile 1e2i!e be!a'&e o* "e a2ailabili y o* new a)e )ra3"i! !ar1& o boo& "e 3ro!e&&in) 3ower on PC&( So "e 1i**eren!e in 3la *orm& on w"i!" "e )ame i& 3laye1 i& an im3or an *a! or "a a**e! & "e 3er*orman!e o* "e )ame( T"e )ame 1e&i)ner m'& "ere*ore !"oo&e "e )ame 3la *orm !are*'lly( U&'ally6 i* yo' wan "e )ame o wor. on all 3la *orm& wi "o' any 3er*orman!e i&&'e&6 yo' wo'l1 nee1 o !om3romi&e on "e )ra3"i!& B'ali y( Howe2er6 ra3i1 1e2elo3men in e!"nol7
TA2$ 1OT$
o)y i& "el3in) o o2er!ome "e 1i**eren!e& in 3la *orm&( T"e )ame "a yo' !rea e 3er*orm& a i & be& w"en i r'n& wi " a )oo1 *rame 3er &e!on1 D*3&E Kabo2e ;C *3&Kon "e ar)e "ar1ware 3la *orm( I i& "ere*ore 2i al o e**e! i2ely man7 a)e "e 3er*orman!e reB'iremen & o* "e )ame( Mana)in) )ame reB'iremen & in!l'1e& 3er*ormin) &e2eral a&.&6 &'!" a& 'n1er& an1in) w"a e<a! ly i& mean by )ame 3er*orman!e an1 i1en i*yin) "e "ar1ware6 memory6 )ra3"i!&6 an1 ne wor.in) reB'iremen & *or "e )ame o r'n wi "o' "in1ran!e( I al&o in!l'1e& en&'rin) "a "e&e reB'iremen & are &a i&*ie1 by "e )ame( To e**e! i2ely mana)e "e )ame 3er*orman!e6 yo' m'& mana)e "ree !om3onen &4 N Pla *orm7&3e!i*i! memory reB'iremen & N Gra3"i!& 3er*orman!e reB'iremen & N %e wor.in) reB'iremen & U&'ally6 "e )ame !o1e a.e& '3 &ome memory &3a!e( T"e memory "a i& a2ailable *or "e )ame !o1e 1e3en1& on "e 3la *orm *or w"i!" yo' are 1e2elo3in) "e )ame( For e<am3le6 w"en yo' !rea e a )ame *or a !on&ole 3la *orm6 "e )ame !o1e !an r'n in o )i)aby e&( Howe2er6 a mobile 3la *orm "a& limi e1 memory &3a!e an1 will no be able o "an1le a )ame wi " &o m'!" )ame !o1e( T"ere*ore6 a )ame mean *or "e mobile 1e2i!e m'& "a2e le&& )ame !o1e "an "a *or a !on&ole )ame( Similarly6 i* yo' '&e "ea2y )ra3"i!& an1 len) "y !o1in) in yo'r )ame6 yo' r'n "e ri&. o* o2er7 loa1in) "e memory an1 !a'&in) "e )ame o la)( T"i& e2en 'ally lea1& o 3layer 1i&&a i&*a! ion(
T"ro')"o' "i& boo.6 we '&e I*3&J o re*er o *rame& 3er &e!on16 an1 IFPSJ o re*er o *ir& 7 3er&on &"oo er(
CO10O/$ Cer ain y3e& o* !on&ole&6 &'!" a& #bo< an1 PlayS a ion6 "a2e *ea 're& "a !an a!!ommo1a e a wi1e ran)e o* )ame&( Howe2er6 o "er y3e& o* !on&ole&6 &'!" a& %in en1o an1 A ari6 mi)" no "a2e !er ain *ea 're&6 w"i!" limi & "e y3e o* )ame& "a !an be 3laye1( For e<am3le6 #bo< an1 PlayS a ion "a2e bo " a b'il 7in "ar1 1ri2e an1 e< ernal memory( T"i& mean& "a yo' !an !o3y "e )ame o "e !on&ole or 1ire! ly 3lay "e )ame *rom an e< ernal &o'r!e6 &'!" a& CD&6 DVD&6 an1 Bl'7ray 1i&!&( Howe2er6 %in en1o -ii U 1oe& no "a2e a b'il 7in "ar1 1ri2e an1 !anno 3lay )ame& "a reB'ire b'il 7in & ora)e(
www.it-ebooks.info
@! , 2esso* A
MO.-/$
C$8T-"-CAT-O1 8$A A ?ow does the memory reJuirement of mobile de!ices affect game performanceB 9.@
Mobile )amin) i& be!omin) more 3o3'lar( Game& *or mobile 1e2i!e& "a2e lower7en1 )ra3"7 i!& "an )ame& *or PC& or !on&ole&( In )eneral6 mobile 1e2i!e& "a2e &mall 2ola ile memory( Howe2er6 "e new a)e &mar 3"one& an1 "e new "an1"el1 !on&ole 1e2i!e& are ra3i1ly o2er7 !omin) "e limi e17memory "'r1le( Mo& o* "e la e& mobile 1e2i!e& !an &'33or an e< er7 nal memory !ar16 w"i!" allow& "e '&er o 3lay )ra3"i!7in en&i2e )ame&( Game re&3on&e 1e3en1& o a )rea er e< en on RAM( Game a&&e & !an be & ore1 in 3er&i& en memory6 &'!" a& memory !ar1& or b'il 7in eB'i2alen &( T"e 3o&&ibili y o* '&in) e< ernal memory 3re&en & new o33or 'ni ie&( Game& 1e2elo3e1 *or &!"ool7a)e !"il1ren )enerally '&e ri!" !olor&6 )ra3"i!&6 an1 "ea2y !o1in)( In "e 3a& 6 mobile 3la *orm& 1i1 no "a2e "e "ar1ware reB'ire1 *or &'!" "i)"7memory7reB'iremen )ame&( Howe2er6 o1ay6 wi " "e im3ro2e1 "ar1ware e!"nolo)y6 yo' !an al&o !on&i1er mobile 3la 7 *orm&( A "an1"el1 !on&ole or a mobile 1e2i!e "a "a& *a!ili ie& o 3lay an e< ernal &o'r!eK&'!" a& a mini 1i&!6 mini !ar ri1)e D "o')" no 3o3'lar nowE6 an1 SD !ar1&K!an be a )oo1 3la *orm *or )ame& mean *or &!"ool7a)e !"il1ren( In a11i ion6 &!"ool7a)e !"il1ren !an ea&ily o3era e &mar 3"one&( T"e&e 1e2i!e& !an &'33or )ra3"i!& *ar be er "an normal mobile 3"one&( Howe2er6 e< ernal memory 1oe& no alway& 3ro2i1e "e 3er*e! &ol' ion( Unli.e &mar 3"one& an1 "e la e& "an1"el1 1e2i!e&6 mobile 1e2i!e& "a !an only rea1 *rom a memory !ar1 &e2erely limi "e .in1 o* )ame& "a !an be 3laye1 on "e 1e2i!e( T"i& i& be!a'&e "e !ar1 3ro2i1e& only & ora)e memory an1 no "e memory reB'ire1 *or r'nnin) or 3ro!e&&in) "e )ame( T"e memory reB'ire1 *or r'nnin) "e )ame !"an)e& 1e3en1in) on "e .in1 o* mobile 1e2i!e or &mar 3"one "a "e 3layer '&e&( T"ere*ore6 yo' nee1 o !are*'lly & '1y "e &'i abil7 i y o* "e &ele! e1 mobile 3la *orm *or yo'r )ame(
C$8T-"-CAT-O1 8$A A ?ow does the memory reJuirement of +Cs affect game performanceB 9.@
+$80O1A/ COM+7T$8 PC '&er& "a2e a wi1e 2arie y o* )ame& *rom w"i!" o !"oo&e( U&er& !an ea&ily '3)ra1e "e & ora)e an1 memory reB'ire1 o r'n an1 3ro!e&& "e )ame& on "i& 3la *orm( Some )ame& reB'ire "e in& alla ion o* a )ra3"i!& !o3ro!e&&or6 i* one i& no a2ailable in "e &3e!i*ie1 !om7 3' er( Howe2er6 new ma!"ine& "a2e an in e)ra e1 )ra3"i!& !o3ro!e&&or( To1ay6 "ere are )amin) !om3' er& a2ailable "a !an 3lay "i)" 3er*orman!e 2i1eo )ame&( A )amin) !om3' er i& a PC "a i& &3e!i*i!ally 1e&i)ne1 *or in en&e )amin)( Table 878 3re&en & "e "ree main 3la *orm& an1 "eir a12an a)e& an1 1i&a12an a)e& in erm& o* )ame 3er*orman!e(
A 6A1TAG$0 -1 GAM$ +$8"O8MA1C$ N -t is the most preferred platform. N -t is the most suited with adeJuate memory.
+$8"O8MA1C$
-0A 6A1TAG$0
-1
GAM$
The built-in storage memory is not easy to upgrade. The kind of games that can be played on this platform is limited because of limited memory. An upgrade is not possible for memory reJuired to run and process the games. -t reJuires a hea!y in!estment for the reJuired high-end memory and graphics card.
Mobile
N -t is rapidly gaining popularity. N Games with low graphics can be played easily. N /atest handheld de!ices pro!ide facilities to store games on e%ternal sources.
+Cs
www.it-ebooks.info
-"ile 3layin) )ame&6 a 3layer mi)" o* en e<3erien!e a &low1own o* "e 2i&'al o' 3' o* "e )ame on "e &!reen( T"i& mi)" be a &i)n "a "e 3layerH& )ra3"i!& !ar1 i& ine**i!ien or 1oe& no &'33or "e )ra3"i!& o* "e )ame( T"i&6 in 'rn6 mi)" a**e! "e 3layerH& o2erall )amin) e<3erien!e( To en&'re "a &'!" &i 'a ion& 1o no ari&e6 a& a )ame 1e2elo3er6 yo' &"o'l1 'n1er& an1 "e im3a! o* "e "ar1ware "a yo'r )ame mi)" r'n on an1 mana)e yo'r )ameH& )ra3"i!& 3er*orman!e a!!or1in)ly( /o' &"o'l1 al&o !on&i1er "e im3a! o* "e ne wor. on yo'r )ameH& 3er*orman!e6 i* yo'r )ame r'n& on a ne wor.( T"e *ollowin) li& o* elemen & !an in*l'en!e "e 3er*orman!e o* "e )ra3"i!& '&e1 in yo'r )ame4 N Cen ral 3ro!e&&in) 'ni DCPUE N Gra3"i!& 3ro!e&&in) 'ni DGPUE N Rea!" N HiDe* N %e wor. im3a!
A !en ral 3ro!e&&in) 'ni DCPUE i& a "ar1ware !om3onen in&i1e "e PC "a 3er*orm& all "e 3ro!e&&in) a! i2i ie& o* "e &y& em( T"e 3rimary *'n! ion o* "e CPU i& o !arry o' in& r'! ion& o* a &o* ware 3ro)ram( T"i& *'n! ion !an in!l'1e 2ario'& a&.&6 &'!" a& "an1lin) 1a a6 brow&in) "e In erne 6 an1 3layin) m'&i!( In "e early !om3' in) year&6 !om3' er )ame& '&e1 mil1 )ra3"i!& an1 "e CPU 1i1 "e )ra3"i!& 3ro!e&&in) by i &el*( To1ay6 be!a'&e o* "e a12an!emen in 2i1eo )ame&6 CPU& '&e a 2i1eo !ar16 al&o .nown a& a )ra3"i!& !ar16 o en"an!e "e )ra3"i!& 3ro!e&&in)( A 2i1eo !ar1 en"an!e& "e ri!"ne&& an1 "e 1i&3lay o* )ra3"i!& on a &!reen( I !on ain& i & own 3ro!e&&or .nown a& "e )ra3"i!& 3ro!e&&in) 'ni DGPUE( A GPU i& a &3e!iali,e1 3ro!e&&or "a 3er*orm& )ra3"i!& 3ro!e&&in) ra3i1ly( I i& e<!l'&i2ely 1e&i)ne1 *or 1e3i! in) AD )ra3"i!& an1 1rawin) 8D ima)e&( GPU& are a2ailable in wo *orm&4 1e1i!a e1 )ra3"i!& !ar1& an1 in e7 )ra e1 )ra3"i!& &ol' ion&( In "e in e)ra e1 )ra3"i!& &ol' ion&6 "e GPU i& in e)ra e1 in o "e !om3' erH& mo "erboar16 an1 i '&e& 3or ion& o* "e CPUH& main memory *or )ra3"i!& !al!'la ion&( T"i& "el3& re1'!e "e !a3abili y o* "e GPU a& i &"are& "e CPU memory( Howe2er6 "e in e)ra e1 )ra3"i!& &ol' ion i& !"ea3er an16 "ere*ore6 mo& !om3' er&6 &'!" a& "e In el HD6 !ome wi " an in e7 )ra e1 )ra3"i!& &ol' ion( In !on ra& o "e in e)ra e1 )ra3"i!& &ol' ion6 in a 1e1i!a e1 )ra3"i!& !ar1 "e GPU !ome& wi " "e !ar1 an1 "a& i & own memory6 w"i!" "el3& "e GPU o 3er*orm "e )ra3"i!& !al!'la7 ion& *a& er( Al "o')" many )ame& !an be 3laye1 '&in) in e)ra e1 )ra3"i!& &ol' ion&6 )ame& "a reB'ire "ea2y )ra3"i!& 3ro!e&&in) 3ro2i1e be er 3er*orman!e w"en 3laye1 '&in) a 1e1i!a e1 )ra3"i! !ar1(
TA2$ 1OT$
A3ar *rom PC&6 GPU& are !ommonly '&e1 in mobile 3"one& an1 2i1eo )ame !on&ole&(
C$8T-"-CAT-O1 8$A A <hat are 8each and ?i efB 9.*
8$AC? 60. ?i ef A )ra3"i! 1i&3laye1 on "e &!reen i& ma1e '3 o* 3i<el& or 1o &( T"e n'mber o* &'!" 3i<el& or 1o & "a ma.e '3 an ima)e i& !alle1 "e o' 3' re&ol' ion( T"e lar)er "e re&ol' ion6
www.it-ebooks.info
%& , 2esso* A
"e &"ar3er "e 3i! 're will be( T"e 1i&3lay re&ol' ion 3lay& a .ey role in "e )ameH& 3er*orman!e( I* "e !orre! re&ol' ion i& no '&e16 "e )ra3"i!& mi)" no be 1i&3laye1 3ro3erly6 w"i!" will a**e! "e )ameH& 3er*orman!e( Un il &ome ime a)o6 o' 3' re&ol' ion wa& 1e3en1en on "e 3la *orm !"o&en( To mana)e "e o' 3' re&ol' ion an16 in 'rn6 en&'re "e be& B'ali y o* )ra3"i!al 3er*orman!e6 )ame
TA2$ 1OT$
Dire! # i& *rom Mi!ro&o* an1 i& a &e o* API& "a "an1le& "i)" 3er*orman!e m'l ime1ia a33li!a ion& in!l'1in) )ame&( Dire! # ? i& "e a12an!e1 2er&ion o* Dire! #( Dire! # ? GPU !ar1 i& a 2i1eo !ar1 "a i& !om3a ible wi " Dire! # ? *ea 're&(
TA2$ 1OT$
1e2elo3er& "a1 o !rea e "e reB'ire1 3la *orm71e3en1en !o1e an1 e& "e !o1e *or ea!" 3la *orm( To ea&e "i& a&. *or 1e2elo3er&6 Mi!ro&o* #%A S '1io ;(9 Framewor. '&e& Pro*ile( A 3ro*ile i& a &e o* *ea 're& em3loye1 in "e "ar1ware an1 i& 3la *orm7in1e3en1en ( T"i& allow& "e )ame !o1e wri en *or one 3la *orm6 &'!" a& a PC6 o r'n on a 1i**eren 3la *orm6 &'!" a& "e #bo< A@9 !on&ole6 wi " li le or no !"an)e in "e !o1e( T"i& i& 3o&&ible be!a'&e "e a33li!a ion 3ro)rammin) in er*a!e& DAPI&E "a a!!e&& "e 3ro*ile in "e "ar1ware are !on&i& en a!ro&& 3la *orm&( /o' !an &e "e 3ro*ile 1'rin) "e 1e&i)n ime or a r'n ime( Pro*ile& are o* wo y3e&6 namely Rea!" 3ro*ile an1 HiDe* 3ro*ile(
8$AC? +8O"-/$ T"e Rea!" 3ro*ile !ome& wi " a limi e1 &e o* )ra3"i!& *ea 're& an1 !a3abili ie&( I i& in e7 )ra e1 in "e "ar1ware o* almo& all 3la *orm&( /o' !an &3e!i*i!ally '&e "e Rea!" 3ro*ile i*
yo' are !rea in) )ame& *or -in1ow&7ba&e1 PC& "a '&e "e Dire! # ? GPU !ar16 #BO# A@9 !on&ole&6 an1 -in1ow& P"one( T"e main a12an a)e o* '&in) Rea!" i& "a yo' !an !rea e )ame& *or 2ario'& 3la *orm& m'!" *a& er(
Game& wi " HiDe* 3ro*ile !an al&o r'n on -in1ow&7 ba&e1 !om3' er& "a "a2e Dire! # ? GPU !ar16 i* "e Dire! # ? !ar1 im3le7 men & name1 Dire! # :9 *ea 're&(
?i ef +8O"-/$ HiDe* 3ro*ile "a& "e "i)"e& le2el o* )ra3"i!& *ea 're& an1 i& &'i able *or 3la *orm& wi " "i73owere1 "ar1ware an1 en"an!e1 )ra3"i!& !a3abili ie&( /o' !an '&e HiDe* 3ro*ile i* yo'r )ame& "a2e ri!" )ra3"i!& an1 yo' wan yo'r )ame& o r'n on #bo< A@9 !on&ole& an1 -in1ow&7ba&e1 PC& "a "a2e Dire! # :9 GPU !ar1(
-1"O8MAT-O1MO8$ To know more about the specific features supported by 8each and ?i ef# refer to the Microsoft e!eloper 1etwork =M0 1> site.
1$T<O82 -M+ACT T"e ne wor. al&o in*l'en!e& "e )ra3"i!& 3er*orman!e o* )ame&( T"ere are wo y3e& o* ne wor.6 online an1 o**line(
A )ame !rea e1 *or an online ne wor. '&e& "e In erne ( I i& "e ri!.ie& *orm o* )ame 1i&7 rib' ion( Di**eren !o'n rie& &'33or 1i**eren In erne ban1wi1 "& an1 1i**eren 3eo3le '&e In erne !onne! ion& wi " 1i**eren ban1wi1 "&( T"ere*ore6 !rea in) a )ame "a !an ea&ily wor. on "e lowe& ban1wi1 " i& a "')e a&.6 an1 "e 3roblem i& !om3li!a e1 w"en "e n'mber o* '&er& w"o Loin "e )ame i& al&o lar)e( T"'& 'n1er& an1in) "e ma<im'm limi a7 ion o* "e '&er w"o Loin& a le2el 3lay& an im3or an role in online )ame&( To !rea e a )ame *or a lar)e )ro'3 o* 3eo3le6 yo' nee1 o !rea e "e )ame !o1e an1 )ra3"i!& in &'!" a manner "a i i& li)" an1 ea&y o r'n on "e &er2er &o "a "e *low o* "e )ame i& no in err'3 e1( Game& !rea e1 *or o**line ne wor.& '&e in ernal ne wor.&6 &'!" a& an or)ani,a ionH& LA% or ar!a1e( T"e n'mber o* 3eo3le 3layin) o**line )ame& i& no lar)e Di !an e2en be one 3layerE an1 "e ban1wi1 " o* "e ne wor. remain& !on&i& en ( T"ere*ore6 yo' !an '&e ri!" )ra3"i!& *or o**line )ame&( De3en1in) on "e 3la *orm an1 "e 1i& rib' ion o* "e )ame6 w"e "er online or o**line6 a )ame !om3any m'& !on&i1er 1i**eren reB'iremen &( Table 87A li& & "e reB'iremen & *or online an1 o**line )ame&(
www.it-ebooks.info
O1/-1$ GAM$0 N 7se light graphics and code N 7se a dedicated ser!er N $nsure that the game is able to perform well on low bandwidth N $nsure that the game is able to handle a large number of users
O""/-1$ GAM$0 N Can use high-end graphics and game code N o not reJuire a dedicated ser!er N $nsure that the game is able to perform well on low bandwidth N $nsure that the game is able to handle a large number of users
To1ay6 online )ame& are 2ery 3o3'lar( T"e&e )ame& !an be 3laye1 on "e In erne wi " 3layer& *rom all aro'n1 "e worl1( To en&'re "a "e online )ame& wor. &moo "ly6 yo' m'& &ele! "e ri)" !o1e6 )ra3"i!&6 an1 &er2er( I* "e &ele! e1 !o1e6 )ra3"i!&6 or &er2er i& no 3ro3er6 "e )ame mi)" no )e "e reB'ire1 re&o'r!e& o r'n &moo "ly( T"i& !an lea1 o 1e eriora ion o* 3er*orman!e6 an1 "e )ameKan1 "e &er2er on w"i!" i i& "o& e1Kmi)" e2en 'ally & o3 re&3on1in)(
71 $8/A-1G 1$T<O82 A8C?-T$CT78$ -"en i !ome& o online )ame&6 o1ay "e Di& rib' e1 Vir 'al En2ironmen DDVEE "a& be!ome a 3o3'lar ne wor. a33li!a ion( A Vir 'al En2ironmen DVEE i& a !om3' er7)enera e1 &im'la ion in w"i!" "e &y& em &im'la e& a AD 2ir 'al worl1( -"en a VE &'33or & m'l i3le in era! in) '&er& an1 i& 1i& rib' e1 a!ro&& &e2eral !om3' er& !onne! e1 by a ne wor.6 i i& !alle1 a& a DVE(
To1ay6 m'l i3layer online )ame& '&e DVE6 w"ere )amer& &"are "e VE( In1e3en1en '&er& &"are "e VE "ro')" "eir a2a ar&( T"e '&er !an !on rol "e & a e o* "e a2a ar "ro')" "e !lien ma!"ine( A lar)e n'mber o* 3layer& !an !onne! o "e DVE &y& em '&in) "eir !lien !om3' er& "ro')" 1i**eren ne wor.&6 &'!" a& a LA%6 a ne wor. o* !om3' er& in a "ome or an or)ani,a ion6 or a -i1e Area %e wor. D-A%E li.e "e In erne ( T"e *ollowin) are "e 1i**eren 'n1erlyin) ar!"i e! 're& "a &'33or m'l i3layer online )ame&4 N Cen rali,e17&er2er ar!"i e! 're4 DVE& ba&e1 on "i& ar!"i e! 're !on ain a &in)le &er2er an1 m'l i3le !lien & are !onne! e1 o "e &er2er( In "i& !a&e6 "e &er2er mana)e& "e en ire 2ir 'al worl1( A& a re&'l 6 i* "e n'mber o* a2a ar& or !lien !om3' er& in!rea&e&6 "e &er2er be!ome& a 3o en ial bo lene!.( T"ere*ore6 DVE& ba&e1 on "i& ar!"i e! 're &'33or a *ewer n'mber o* !lien & or a2a ar&( N %e wor.e17&er2er ar!"i e! 're4 DVE& ba&e1 on "i& ar!"i e! 're !on ain m'l i3le &er2er& an1 ea!" a2a ar or !lien !om3' er !onne! & e<!l'&i2ely o one o* "e&e &er27 er&( Be!a'&e "i& ar!"i e! 're i& 1i& rib' e1 o2er &e2eral &er2er&6 i i& rob'& 6 &!alable or e<3an1able6 an1 *le<ible( Howe2er6 i reB'ire& e**i!ien loa1 balan!in)6 w"i!" mean& 1i& rib' in) "e wor.loa1 a!ro&& &e2eral !om3' er& o a2oi1 o2erloa1 an1 o )ain "e be& re&o'r!e ' ili,a ion( Loa1 balan!in) en&'re& "a all !lien !om3' er& )e an eB'al &"are o* re&o'r!e& a "e &er2er&( N Peer7 o73eer ar!"i e! 're4 DVE& ba&e1 on "i& ar!"i e! 're "a2e "e !lien !om3' er 3layin) "e role o* "e &er2er( T"i& "el3& "e "i)"e& le2el o* loa1 1i& rib' ion(
www.it-ebooks.info
%A , 2esso* A
Al "o')" DVE& ba&e1 on ne wor.e1 &er2er ar!"i e! 're are &!alable6 "ey en1 o in!rea&e "e ne wor. ra**i!( T"i& in 'rn a**e! & "e n'mber o* a2a ar& &'33or e1( A 3eer7 o73eer ar!"i e! 're i& "e be& &'i e1 *or online )ame& "a &'33or a lar)e n'mber o* 3layer& be!a'&e "ere i& a "')e amo'n o* in era! i2i y( Moreo2er6 a& DVE& are ne wor.7ba&e1 a33li!a ion&6 ba&i! ne wor. mana)emen al&o be!ome& an e&&en ial 3ar (
1$T<O82 MA1AG$M$1T
C$8T-"-CAT-O1 8$A A <hat is the basic network management in!ol!ed in gamingB 9.(
Ba&i! ne wor. mana)emen wi " re&3e! o online )ame& in2ol2e& "e *ollowin)4 N Mana)in) "e ne wor. o3era ion&4 /o' nee1 o en&'re "a "e ne wor.6 ne wor. 1e2i!e&6 an1 "e ne wor. &er2i!e& are a2ailable an1 are 3er*ormin) &moo "ly( /o' al&o nee1 o moni or "e ne wor. !on& an ly o i1en i*y any ne wor. i&&'e& a& &oon a& "ey !ro3 '36 &o "a "e i&&'e& !an be re! i*ie1 imme1ia ely an1 "e '&er& are no a**e! e1( N A1mini& erin) "e ne wor.4 /o' nee1 o .ee3 ra!. o* all "e ne wor. re&o'r!e&( /o' nee1 o en&'re "a "e re&o'r!e& are !orre! ly !on*i)'re1 an1 a&&i)ne16 an1 "a "e re&o'r!e& are &e!'re1 a)ain& mal*'n! ionin) or "a!.in)( N Main ainin) "e ne wor.4 /o' nee1 o 3er*orm main enan!e a&.&6 &'!" a& re3airin) *aile1 or mal*'n! ionin) ne wor. re&o'r!e&6 '3)ra1in) "e ne wor. re&o'r!e& a!!or1in) o "e reB'iremen & o* "e ne wor. an1 "e '&a)e o* "e ne wor.6 an1 a.in) 3re2en i2e an1 !orre! i2e mea&'re& o en&'re "a "e ne wor. 3ro2i1e& o3 im'm 3er*orman!e( N Pro2i&ionin) "e ne wor.4 /o' nee1 o en&'re "a "e ne wor. re&o'r!e&6 in!l'1in) "e ne wor. 1e2i!e& an1 &er2i!e&6 are !on*i)'re1 !orre! ly &o "a "ey 3ro2i1e "e e<3e! e1 le2el o* *ea 're& an1 3er*orman!e( N %e wor. ra**i!4 /o' &"o'l1 mea&'re "e ne wor. ra**i! reB'iremen & in erm& o* ban17 wi1 " or "e ra e o* 1a a ran&*er reB'ire1 by bo " &er2er& an1 !lien & o !omm'ni!a e wi " ea!" o "er wi "in a &3e!i*i! 3erio1( De erminin) "e ban1wi1 " a!!'ra ely in erm& o* bi & Do* 1a aE 3er &e!on1 or b3& "el3& "e ne wor. 1e&i)ner& o 1e&i)n a &!alable &y& em "a e**e! i2ely &'33or & m'l i3layer online )ame&( N La en!y4 T"e erm la en!y re*er& o "e ime reB'ire1 *or 1a a o ra2el *rom one !om7 3' er o ano "er !om3' er( Se2eral elemen & !an !a'&e "i)" la en!y6 in!l'1in) ne wor. !on)e& ion6 in er*eren!e on line&6 an1 im3ro3erly !on*i)'re1 )ame&( La en!y al&o 1e3en1& on "e y3e o* ne wor. !arrier6 &'!" a& !able6 DSL !onne! ion6 or &a elli e !onne! ion( A3ar *rom "e 3re2io'& a&.&6 yo' &"o'l1 al&o 1e!i1e on "e y3e o* "e !omm'ni!a ion 3ro7 o!ol6 &'!" a& "e TCP an1 UDP6 w"i!" yo'r ne wor. mi)" '&e *or !omm'ni!a ion be ween "e ne wor.e1 !om3' er&(
TC+ A1 7 + Le '& be)in wi " 'n1er& an1in) w"a "e In erne Pro o!ol DIPE i&( I i& a 3ro o!ol "a &en1& 3a!.e & o* 1a a6 !alle1 1a a)ram& or ne wor. 3a!.e &6 *rom one !om3' er o ano "er( To &en1 1a a *rom "e &o'r!e !om3' er o "e 1e& ina ion !om3' er6 "e IP 3a&&e& "e 1a a *rom one !om3' er o ano "er 'n il i rea!"e& "e 1e& ina ion !om3' er( I i& &imilar o 3a&&in) on a "an1wri en no e *rom one 3er&on o ano "er o )e a!ro&& o ano "er 3er&on & an1in) a "e o "er en1 o* a !row1e1 "all( /o' 3a&& on "e no e o "e neare& 3er&on6 w"o in 'rn 3a&&e& i o ano "er 3er&on an1 &o on 'n il i rea!"e& "e in en1e1 3er&on( D'rin) "i& 3a&&in)6 "e no e !o'l1 *all 1own an1 )e lo& ( In a11i ion6 "e no e mi)" no rea!" "e in en1e1 3er&onM on "e way6 ano "er 3er&on !o'l1 L'& a.e "e no e wi "o' 3a&&in) i on o "e ne< 3er&on( T"i& i& al&o "e !a&e wi " IP( T"ere i& no )'aran ee "a "e &en 1a a will rea!" "e !orre! 1e& ina ion( %ow le '& loo. a ano "er !ore 3ro o!ol o* "e IP *amily6 Tran&mi&&ion Con rol Pro o!ol DTCPE( T"e TCP i& b'il on o3 o* IP an1 i& !ommonly re*erre1 o a& TCP0IP( I a11& a lo o* *ea 're& an1 !om3le<i y o IP( A& "e name &'))e& &6 TCP0IP 1e*ine& or !on rol& "ow 1a a i& ran&mi e1 *rom one !om3' er o ano "er( A "e &o'r!e6 i )ro'3& "e 1a a o be ran&mi e1
www.it-ebooks.info
in o !on in'o'& & ream& o* by e& an1 3a&&e& i on o IP *or ran&mi&&ion o "e 1e& ina ion( Moreo2er6 TCP en&'re& "a "e 3a!.e & rea!" "e 1e& ina ion by a11in) &eB'en!e n'mber& an1 imeo' & o ea!" by e "a i& ran&mi e1( I "en e<3e! & a 3o&i i2e a!.nowle1)men *rom "e 1e& ina ion wi "in "e imeo' in er2al( I* i 1oe& no re!ei2e an a!.nowle1)men 6 TCP re&en1& "e 1a a( A "e 1e& ina ion6 "e re!ei2in) TCP '&e& "e &eB'en!e n'mber o rearran)e "e 3a!.e &6 an1 i remo2e& "e 1'3li!a e 3a!.e &( In "i& way6 TCP0IP )'aran ee& "a ea!" 3a!.e rea!"e& "e 1e& ina ion an1 i& no lo& in ran&i ( T"ere*ore6 TCP0IP i& !on&i1ere1 a reliable 3ro o!ol( I i& no &'r3ri&in) "a TCP0IP !on rol& mo& o* "e a! i2i ie& "a yo' 3er7 *orm online6 &'!" a& brow&in) "e -eb6 &en1in) an1 re!ei2in) e7mail6 !"a in) '&in) in& an me&&a)in)6 ran&*errin) *ile&6 an1 3er*ormin) remo e !om3' er0ne wor. a1mini& ra ion( Ano "er 3ro o!ol o* "e IP *amily i& U&er Da a)ram Pro o!ol DUDPE( UDP 1oe& no a11 a lo o* *ea 're& o IP li.e TCP 1oe&Ki L'& *orm& a "in layer o2er IP( So6 a& wi " IP6 1a a i& &en *rom "e &o'r!e o "e neare& !om3' er an1 3a&&e1 be ween n'mero'& 1e2i!e& be*ore i rea!"e& "e 1e& ina ion( T"ere i& no )'aran ee "a "e 1a a will rea!" "e in en1e1 1e& ina7 ion( T"ere i& al&o no )'aran ee "a "e 1a a will rea!" "e 1e& ina ion in "e &ame or1er "a i wa& &en ( T"e only )'aran ee "a UDP 3ro2i1e& i& "a "e 1a a 3a!.e &en *rom "e &o'r!e will ei "er rea!" "e 1e& ina ion a& a w"ole or will no rea!" "e 1e& ina ion a all( UDP will no 1eli2er bro.en 3a!.e &( Al&o6 UDP i& *a& er "an TCP be!a'&e "ere are no a11i ional !"e!.& or *ea 're&( De3en1in) on "e )ame6 a 1e2elo3er !an !"oo&e "e y3e o* 3ro o!ol( A wi !" )ame mi)" in2ol2e UDP6 w"erea& &"are1 & a e &im'la ion& mi)" be be er "an1le1 wi " TCP(
0$TT-1G 7+ <$. 0$86-C$0 To1ay6 online )ame& are &lowly mo2in) o an e7b'&ine&& en2ironmen in or1er o 1e2elo3 a &'& ainable b'&ine&& mo1el( Howe2er6 "e e7b'&ine&& en2ironmen &"o'l1 3ro2i1e a rob'& an1 e**i!ien b'&ine&& mo1el o "e )ame 3'bli&"er&6 )ame 1e2elo3er&6 3layer&6 an1 "e &er2i!e 3ro2i1e&( To !a er o "i& nee16 many online )ame& are in e)ra in) "eir )ame a33li!a ion wi " -eb &er2i!e& e!"nolo)y( For e<am3le6 Mi!ro&o* #bo< Li2e '&e& a !olle! ion o* -eb &er2i!e& *or )ame 3'bli&"er& an1 )ame 1e2elo3er& o a!!e&& )ame 1a a( T"e -eb &er2i!e& in!l'1e man7 a)in) a!!o'n &6 !rea in) !om3e i ion6 an1 m'!" more( T"i& enable& "e )ame 3'bli&"er& o e< en1 "e rea!" o* "eir )ame& o "e -eb !omm'ni y( Moreo2er6 -eb &er2i!e& are al&o '&e1 o mana)e 3er&i& en online )ame&6 &'!" a& MMORPG )ame&(
A -eb &er2i!e i& a &o* ware a33li!a ion "a e<!"an)e& in*orma ion '&in) & an1ar1 3ro o7 !ol&( I "el3& !om3' er& on any 3la *orm o e<!"an)e in*orma ion o2er in rane & Da ne wor. o* !om3' er& wi "in an or)ani,a ion '&in) IP *or ran&mi&&ion o* 1a aE6 e< rane & D3ri2a e ne wor.& "a are e< en&ion& o* an in rane *or "e 3'r3o&e o* &"arin) in*orma ion o &3e!i*i! '&er&E6 an1 a!ro&& "e In erne by 3ro2i1in) &e!'re1 an1 reliable me&&a)in)( A -eb &er2i!e '&e& #ML *or re3re&en in) 1a a6 Sim3le ObLe! A!!e&& Pro o!ol DSOAPE *or 1a a e<!"an)e6 an1 -eb Ser2i!e& De&!ri3 ion Lan)'a)e D-SDLE *or 1e&!ribin) "e &er2i!eH& *'n! ionali y( /o' !an !rea e an1 &e '3 -eb &er2i!e& *or yo'r )ame '&in) Mi!ro&o* Vi&'al S '1io(
(:/22 ('MMA8;
-1 T?-0 /$00O1# AO7 /$A81$ H I Game controllers help the players to interact and control the gameplay. I Commonly used game controllers include mouse# keyboard# 2inect# control pad# and mobile de!ices. I isplay de!ices and sound de!ices help the gamer e%perience the !isual output and audio output of the game.
www.it-ebooks.info
%% , 2esso* A
I I I I I I I I I I I I I I I I I I
Game performance is a measure of how well the game can run on a chosen de!ice with specific graphics and how well the game can adapt to the network setup when players want to play the game online. A game performs at its best when the game runs without any interruptions on the lowest of the configuration setup. Managing game performance reJuirements essentially refers to choosing a configuration for the game that will allow the game to perform properly without causing any interruption to the player during the game. The memory a!ailable for playing games depends on the platform selected for the games. A !ideo card enables the output of images on the screen and it uses G+7 for processing the graphics. A dedicated graphics card has a G+7 embedded in the !ideo card and has its own memory. -n the integrated graphics solutions# the G+7 is embedded in the C+7 and it shares the C+7 memory. A profile describes a set of features integrated in the hardware# which permits game de!elopers to create platform-independent code. 8each and ?i ef are the two types of profiles. The 8each profile supports limited graphics features and is implemented in almost all platforms. The ?i ef profile supports the highest le!el of graphics features and is implemented only on platforms with high-end hardware. A 6irtual $n!ironment =6$> is a computer-generated simulation in which the system simulates a ( !irtual world. A istributed 6irtual $n!ironment = 6$> supports multiple interacting users and is distributed across se!eral computers connected by a network. Multiplayer online games use 6$. The underlying network architecture of 6$ includes centraliGed-ser!er architecture# networked-ser!er architecture# and peer-to-peer architecture. TC+3-+ is a reliable protocol that controls the transmission of data o!er the network. 7 + is faster than TC+3-+ because 7 + does not pro!ide additional checks or features to the data packets. A <eb ser!ice is a software application that e%changes information using standard protocols and pro!ides interoperability. Many online games integrate their game application with <eb ser!ices technology. Microsoft 4bo% /i!e uses a collection of <eb ser!ices for game publishers and game de!elopers to access game data.
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.& 3ro2i1e1( :( QQQQQQQQQQQQQ 3eri3"eral& "el3 "e 3layer& o in era! an1 !on rol "e )ame 3lay( 8( QQQQQQQQQQQQQQQQ o' 3' 1e2i!e& "a2e &mall &!reen 1i&3lay&( A( QQQQQQQQQQQQQ )ame "el3& "e 3layer& o !on rol "e 3layer !"ara! er wi "o' o'!"in) "e )ame !on roller( ;( $ine! wor.& on "e QQQQQQQQQQQ !on&ole( C( QQQQQQQQQQQQQ in3' 1e2i!e& &'33or low )ra3"i!& "ar1ware( @( QQQQQQQQQQQQQ an1 QQQQQQQQQ are "e wo y3e& o* 3ro*ile&(
www.it-ebooks.info
=( QQQQQQQQQQQQQ Pro o!ol 1oe& no 3er*orm !"e!.& on 1a a 3a!.e &( >( QQQQQQQQQQQ GPU "a& i & own memory( ?( QQQQQQQQQQQ in!l'1e& an error !orre! ion me!"ani&m in "e 3a!.e & o en&'re "a "e 1a a i& no 1i& or e1 w"en i rea!"e& "e 1e& ina ion( :9( A *li)" &im'la or )ame o* en '&e& aDnE QQQQQQQ a& an in3' 1e2i!e(
Multiple Choices
Cir!le "e le er or le er& "a !orre&3on1 o "e be& an&wer( :( /o' 1e!i1e o 1e2elo3 a )ame *or 3eo3le w"o ra2el a lo ( -"i!" o* "e *ollowin) o' 3' 1e2i!e& &"o'l1 yo' !"oo&eR a( Han1"el1 b( TV !( Moni or 1( Pla&ma 1i&3lay 3anel 8( /o' are 1e2elo3in) a &"oo in) )ame( /o' wo'l1 li.e o 3ro2i1e 3layer& wi " a ri!" )amin) e<3erien!e by 3"y&i!ally in2ol2in) "em in "e main 3layer !"ara! er o* "e )ame( -"i!" o* "e *ollowin) in3' 1e2i!e& &"o'l1 yo' !"oo&eR a( Con&ole b( +oy& i!. !( $ine! 1( +oy3a1 A( /o' !rea e a HiDe* )ame wi " ri!" )ra3"i!&( -"i!" o* "e *ollowin) "ar1ware &e in)& wo'l1 yo' re!ommen1 *or yo'r a'1ien!eR a( Dire! # ? GPU b( Dire! # !( Dire! # :9 GPU 1( All o* "e abo2e ;( /o' are !rea in) an online )ame( T"e 'n1erlyin) ne wor. ar!"i e! 're "a& one 1e1i!a e1 &er2er an1 m'l i3le !lien & !onne! e1 o "e &er2er( -"i!" o* "e *ollowin) ar!"i e! 're& 1oe& yo'r ne wor. '&eR a( Cen rali,e17&er2er ar!"i e! 're b( %e wor.e17&er2er ar!"i e! 're !( Peer7 o73eer ar!"i e! 're 1( Clien 7&er2er ar!"i e! 're C( /o'r )ame r'n& on a 2arie y o* 3la *orm&( -"i!" o* "e *ollowin) &"o'l1 yo' !"oo&e o ma.e yo'r )ame in ero3erableR a( Rea!" 3ro*ile b( HiDe* 3ro*ile !( Bo " Rea!" an1 HiDe* 3ro*ile& 1( -ri e 3la *orm7&3e!i*i! !o1e an1 !"e!. "e !o1e *or ea!" 3la *orm @( /o' are 1e2elo3in) an online )ame( -"i!" o* "e *ollowin) a33li!a ion& &"o'l1 yo' re!ommen1 o 3ro2i1e a &'& ainable b'&ine&& mo1elR a( -eb &er2i!e b( SOAP !( #ML 1( -SDL
www.it-ebooks.info
%$ , 2esso* A
=( /o' are !"oo&in) "an1"el1 1e2i!e& a& "e o' 3' 1e2i!e *or yo'r )ame( -"i!" o* "e *ol7 lowin) *all 'n1er "e "an1"el1 1e2i!e& !a e)oryR a( Table b( Tele2i&ion !( Vi1eo )ame !on&ole 1( Moni or >( /o' 1e2elo3 a *li)" &im'la or )ame *or 3la *orm& "a in!l'1e a 2i1eo )ame !on&ole6 a PC6 an1 ar!a1e ma!"ine&( -"i!" o* "e *ollowin) in3' 1e2i!e& be& &'i & yo'r )ame an1 )ame 3la *ormR a( S eerin) w"eel b( +oy& i!. !( Game7&3e!i*i! mo'&e 1( $ine! ?( /o'r )ame !"ara! er& are &mall6 b' "e 1e ailin) o* )ra3"i!& i& elabora e in yo'r )ame( -"i!" o* "e *ollowin) o' 3' 1e2i!e& wo'l1 yo' no re!ommen1 *or yo'r )ameR a( Mobile 3"one b( Tele2i&ion !( HD LED0LCD TV 1( HD LED0LCD moni or :9( /o' are !rea in) a ra!in) &im'la ion )ame( -"i!" o* "e *ollowin) in3' 1e2i!e& i& be& &'i e1 *or yo'r )ameR a( S eerin) w"eel b( +oy3a1 !( Game7&3e!i*i! .eyboar1 1( HD LED0LCD moni or
, Competency
Assessment
+ro:ect 9-;H 7sing 0creen
/o' are 1e2elo3in) a "ir173er&on &"oo er DTPSE )ame li.e Binary Domain( E<3lain "e 1i*7 *eren y3e& o* &!reen&6 "eir a12an a)e& an1 1i&a12an a)e&6 wi " re&3e! o yo'r )ame(
, +roficiency
Assessment
+ro:ect 9-(H 7sing 2inect and ( Monitors
/o' 1e!i1e o '&e $ine! an1 AD moni or& a& "e in3' an1 o' 3' 1e2i!e& *or yo'r )ame( Con!e3 'ali,e a 2ir 'al &im'la ion )ame "a be& &'i & "e !"o&en 1e2i!e&(
www.it-ebooks.info
/$00O1
(.;
:3; T38M(
bitmap codec compression irect4 display initialiGation display mode graphics type lossless compression lossy compression paralla% mapping rendering engine resolution 7- components 7- concept 7- layout 6ertical 0ynchroniGation =60ync> !isual design !isual design elements
+o"n Smi " wor.& a Con o&o Game S '1io a& a 1e&i)ner( A a re!en 3ro1'! la'n!" mee 7 in)6 "i& 1e2elo3men eam in*orme1 "im o* a new 3ro1'! "ey are wor.in) on( T"e 1e2el7 o3men eam "a& !rea e1 a new *ir& 73er&on &"oo er DFPSE )ame *or !on&ole an1 !om3' er &y& em&( I i& now "e Lob o* +o"n an1 "e 1e&i)n eam o 1e&i)n "e )ameH& 2i&'al worl1( In "e 1e&i)n 3"a&e6 +o"n an1 "i& eam "in. abo' wo main i em&K "e 2i&'al 1e&i)n o* "e )ame an1 "e o' 3' 3arame er&( T"e&e wo i em& !on& i ' e "e )ame o' 3' 1e&i)n6 w"i!" !on rol& "ow "e )ame will loo.6 *eel6 an1 r'n( A )oo1 )ame o' 3' 1e&i)n ma.e& "e )ame r'n &eamle&&ly an1 !rea e& a 2ir 'al worl1 *or "e 3layer( T"i& 3"a&e o* "e )ame !rea ion im3a! & "e )ame *'n! ionali y on many le2el&( In "i& !a&e6 o !rea e "e 2i&'al 1e&i)n6 "e eam m'& *ir& &ele! "e a33ro3ria e y3e o* )ra3"i!&K wo7 1imen&ional D8DE or "ree71imen&ional DADE( Ba&e1 on "e )ra3"i!& y3e6 "e eam !rea e&
%# www.it-ebooks.info
%! , 2esso* @
"e 2i&'al 1e&i)n elemen & an1 "e U&er In er*a!e DUIE 1e&i)n( C"oo&in) "e o' 3' 3arame er& be*ore"an1 "el3& en&'re "a "e 1e&i)n elemen & in e)ra e &eamle&&ly in o "e )ame( I al&o "el3& en&'re "a "e )ame r'n& &moo "ly in "e reB'ire1 re&ol' ion an1 a& 3er "e ba&i! 3er*orman!e reB'iremen & i1en i*ie1 *or "e )ame(
, Creating
www.it-ebooks.info
www.it-ebooks.info
T"e AD me1i'm allow& yo' o !rea e a !"ara! er or en2ironmen *or "e )ame wi " 1i**eren le2el& o* 1e ail( T"e more 1e ail yo' a116 "e more real "e !"ara! er or en2ironmen will loo.( Almo& all 3la *orm& wi " )oo1 GPU &'33or AD )ra3"i!&( Game& &'!" a& Halo6 Co'n er S ri.e6 an1 Final Fan a&y '&e AD )ra3"i!&( Fi)'re A7: &"ow& "e AD ima)e& o* )ame !"ara! er& in "e Halo )ame wi " low6 me1i'm6 an1 "i)" 1e ail& *rom le* o ri)" 6 re&3e! i2ely(
"igure (-; ( game characters from ?alo with !arying details
TA2$ 1OT$
To1ay6 in "e 2i1eo )ame in1'& ry6 8(CD i& "e mo& 3o3'lar an1 !ommonly '&e1 )ra3"i!& e!"niB'e( 8(CD i& a "ybri1 be ween 8D an1 AD6 in w"i!" ima)e& *a.e "ree71imen&ional obLe! &6 "owe2er "e a! 'al me1i'm i& wo71imen&ional( Con&i1er "e *ollowin) *a! or& w"ile !"oo&in) "e 8D or AD )ra3"i!& y3e *or yo'r )ame4 N Tar)e a'1ien!e N Game o' 3' 1e2i!e N Game 3la *orm To be er 'n1er& an1 "ow "e&e *a! or& in*l'en!e "e !"oi!e o* "e )ra3"i!& y3e6 le '& !on7 &i1er wo 1i**eren !a&e&( N Ca&e :4 A&&'me "a yo'r ar)e a'1ien!e& are 3eo3le in "e a)e )ro'3 o* :@ o 88 year& o* a)e( Al&o6 a&&'me "a yo'r a'1ien!e '&e &mar 3"one& a& "e )ame 3la *orm wi " a &!reen 1i&3lay o* ?@9 by @;9 3i<el&( In "i& !a&e6 "e )ra3"i!& o* "e )ame &"o'l1 be &'!" "a "e 2i&ibili y i& no "am3ere1 by oo many '&er in er*a!e elemen & o!!'3yin) oo m'!" &!reen &3a!e( Al&o6 "e '&er in er*a!e elemen & &"o'l1 be lar)e eno')" *or "e 3layer o in era! wi " "e )ame "ro')" "e &mall &i,e 1i&3lay &!reen( In a11i ion6 "e 3er&onH& mobile 1e2i!e mi)" or mi)" no be a3 o "an1le "e la e& AD )ra3"i!&( Con&i1erin) "e&e *a! or&6 in )eneral6 8D )ra3"i!& y3e be!ome& a !"oi!e o* 3re*eren!e *or "e )i2en )ame 3la *orm( Howe2er6 i i& no a man1a ory !"oi!e( N Ca&e 84 A&&'me "a yo'r ar)e a'1ien!e !on&i& & o* 3eo3le w"o are a2i1 ra2eler&( A&&'me "a "e ar)e 3la *orm i& a able 6 w"i!" "a& a *airly lar)er 1i&3lay "an a &mar 3"one( For "a rea&on6 "e )ra3"i! 1e&i)ner o* "e )ame "a& "e liber y o in ro7 1'!e !om3ara i2ely more '&er in er*a!e elemen & in "e )ame( T"e 3layer& al&o "a2e eno')" &!reen &3a!e o *o!'& on( E2en "e '&er in er*a!e elemen & !an be !om3ara i2ely &maller in 3ro3or ion o "e one& *or a &mar 3"one( In "i& !a&e6 AD )ra3"i!& may be "e be er !"oi!e(
C$8T-"-CAT-O1 8$A A <hich graphics type is better for creating a game for mobile de!icesP9 or ( B (.(
www.it-ebooks.info
?& , 2esso* @
.-TMA+0 A bi ma3 i& a *ile *orma "a i& '&e1 o & ore ima)e&( A bi ma3 ima)eKal&o .nown a& a ra& er ima)eKi& ma1e '3 o* 3i<el& or 1o & "a !on ain row& an1 !ol'mn& o* li le &B'are&( Ea!" 3i<el i& a 1i**eren !olor( /o' !an e1i "e in1i2i1'al 3i<el& o* a bi ma3 ima)e( T"e *ile &i,e o* a bi ma3 ima)e i& lar)e be!a'&e "e *ile & ore& in*orma ion abo' in1i2i1'al 3i<el&( -"en yo' re&i,e a bi ma3 ima)e6 yo' !an 2iew in1i2i1'al 3i<el& o* "e ima)e a& "e ima)e ,oom& in( T"i& ma.e& "e ima)e lo&e i & B'ali y( Fi)'re A78 &"ow& a bi ma3 ima)e an1 i & &!ale1 '3 2er&ion(
Bi ma3& are ei "er 1e2i!e71e3en1en or 1e2i!e7in1e3en1en ( De2i!e71e3en1en bi ma3& "a2e a (DDB *ile e< en&ion an16 a& "e name &'))e& &6 are & ore1 in a *orma &3e!i*i! o "e 1e2i!e( T"a i&6 1e2i!e71e3en1en bi ma3& are & ore1 in a *orma !lo&e o "e *orm in w"i!" "e 1e2i!e 1ri2er 1i&3lay& "e bi ma3( For "i& rea&on6 1e2i!e71e3en1en bi ma3& !an ren1er *a& er on "e 1i&3lay 1e2i!e(
www.it-ebooks.info
In !on ra& 6 1e2i!e7in1e3en1en bi ma3&6 w"i!" "a2e a (DIB or (BMP *ile e< en&ion6 are & ore1 in a *orma "a any 1e2i!e !an in er3re ( Howe2er6 "e&e bi ma3& are &lower in ren1erin) on "e 1i&3lay 1e2i!e(
TA2$ 1OT$
T"e DDS *ile *orma wa& 1e2elo3e1 by Mi!ro&o* an1 i& )ener7 ally '&e1 in AD )ame&( T"i& *orma &a2e& memory on "e 2i1eo !ar1(
Bi ma3 *ile& are a2ailable in bo " !om3re&&e1 an1 'n!om3re&&e1 *orma &( Some o* "e *ile *orma & "a &'33or !om3re&&e1 bi ma3& are GIF6 P%G6 TIFF6 an1 +PEG( Un!om3re&&e1 bi ma3 *ile *orma in!l'1e BMP( /o' !an '&e bi ma3& o re3re&en ima)e& in yo'r )ame6 b' "i& *ile *orma '&e& more memory o & ore ima)e&( Be!a'&e o* "i&6 yo' &"o'l1 '&e "e +PEG or Dire! Draw S'r*a!e DDDSE )ra3"i!& *ile *orma o re3re&en ima)e& in yo'r )ame( Fi)'re A7A &"ow& a bi ma3 '&e1 o !rea e a bloo1 &3la er "a 3ro2i1e& an in1i!a ion o "e 3layer "a a )ame !"ara! er i& 1ea1(
6$CTO8 G8A+?-C0 Unli.e bi ma3& "a '&e 3i<el&6 2e! or )ra3"i!& '&e )eome ri!al &"a3e&K&'!" a& 3oin &6 line&6 an1 !'r2e& 1e*ine1 by ma "ema i!al !al!'la ion&K o !rea e ima)e&( A 2e! or ima)e !on ain& many obLe! &( Ea!" obLe! "a& in1i2i1'al 3ro3er ie&6 &'!" a& !olor6 &"a3e6 "i!.ne&&6 an1 *ill( Ve! or )ra3"i!& & ore in*orma ion abo' "e in1i2i1'al obLe! & in a & r'! 're( T"i& "el3& in 3ro2i1in) &maller *ile &i,e& *or ima)e& & ore1 in 2e! or *orma &( Some o* "e !ommonly '&e1 2e! or *ile *orma & in!l'1e S!alable Ve! or Gra3"i!& DSVGE6 -in1ow& Me a*ile D-MFE6 an1 A1obe Ill'& ra or DAIE(
One 3rimary bene*i o* 2e! or ima)e& i& "a "ey are &!alable( T"i& im3lie& "a w"ene2er yo' ,oom in on a 2e! or ima)e6 "e !lari y or B'ali y o* "e ima)e i& no lo& ( In a11i ion6 2e! or ima)e& are ba&e1 on ma "ema i!al !al!'la ion&M "ere*ore6 yo' !an mani3'la e "e in1i2i1'al elemen & o* "e 3i! 're( Howe2er6 "i& !an "in1er "e &!reen 3er*orman!e( T"ere !an be a 1elay in "e 1i&3lay be!a'&e re3e i i2e !al!'la ion& are 1one w"ene2er an ima)e or *rame i& mo2e1( In "e early 2i1eo )ame&6 '&e o* 2e! or )ra3"i!& wa& rare6 e<!e3 in ar!a1e )ame&( Howe2er6 in re!en year&6 wi " "e in!rea&e in "e ren1erin) 3ower o* "e o' 3' 1e2i!e& o* "e 1i**er7 en 3la *orm&6 2i1eo )ame 3ro1'! ion eam& !ommonly '&e 2e! or )ra3"i!& *or "eir ima)e&( Al&o6 )amer& '&e 1i**eren o' 3' 1e2i!e& wi " 2aryin) &!reen re&ol' ion&( T"ere*ore6 be!a'&e "e 2e! or ima)e& !an &!ale6 1e2elo3er& !an 3ro2i1e 3lea&in) re&'l & w"ene2er "e ima)e& are
TA2$ 1OT$
Fla&" &'33or & 2e! or )ra3"i!&( In online )ame&6 "e !lien ma!"ine or "e brow&er 1oe& "e 3ro!e&&in) o* "e 2e! or ima)e&(
www.it-ebooks.info
?A , 2esso* @
1i&3laye1 in 1i**eren &!reen re&ol' ion&( Fi)'re A7; &"ow& a 2e! or ima)e an1 i & &!ale1 '3 2er&ion(
"igure (-* 8esiGing a !ector image
0+8-T$0 A &3ri e i& a wo71imen&ional 3lane on w"i!" an ima)e i& a33lie1( T"e ima)e !an be any "in)Ka lea*6 & one6 ree6 mo'n ain6 or e2en a !"ara! er( -"en in!l'1e1 in a lar)er &!ene6 "e&e obLe! & a33ear o be 3ar o* "e &!ene( In 2i1eo )ame&6 yo' !an '&e &3ri e& o !ombine &mall 'nrela e1 bi ma3& in o a &in)le bi ma3 on "e &!reen( For e<am3le6 !on&i1er an a! ion )ame in w"i!" "e "ero &"oo & "e 2illain in "e !"e& '&in) a )'n( In a real7worl1 &!enario6 "e b'lle !rea e& a "ole in "e 3er&onH& !"e& ( To mimi! "i& in "e )ame6 yo' !an !rea e an ima)e o* a !"e& wi " a "ole in i by '&in) a &3ri e D&ee Fi)'re A7CE( /o' !an "en !onne! "e &3ri e o "e 2illainH& !"e& o )i2e "e 3layer a *eel o* "e real7worl1 e<3erien!e(
"igure (-@ A sprite mimicking bullet holes in the chest
/o' !an '&e ano "er &3ri e o &"ow bloo1 on "e !"ara! erH& bo1y D&ee Fi)'re A7@E( T"e en!ir!le1 3ar in "e ima)e &"ow& "e &3ri e e**e! *or bloo1( S3ri e& "el3 .ee3 "e )ame li)" ( To 'n1er& an1 "ow6 !on&i1er an a12en 're )ame in w"i!" yo' !rea e a 1en&e *ore& ( A 1en&e *ore& !an be !rea e1 by !ombinin) &ome !lo&e7'3 ree mo1el& DADE
www.it-ebooks.info
wi " &3ri e& D8D 3i! 're& o* ree&E( T"e ren1erin) o* a &3ri e i& *a& er !om3are1 o "e ren1erin) o* all "e *a!e & o* a AD mo1el a a !o& o* 1e ail( I* "e ree Dor o "er obLe! in "e &3ri eE i& &mall eno')" on "e &!reen6 "e lo&& o* 1e ail 1oe& no re&'l in a lo&& o* reali&m( A &3ri e i& one o* "e mo& im3or an 1e&i)n !om3onen & "a "el3 in "e &moo " *low o* "e )ame( Howe2er6 &3ri e& are wo71imen&ional( T"ere*ore6 w"en "ey are '&e1 in a "ree1imen&ional 2ir 'al worl16 "ey a33ear o *loa wi "o' blen1in) in o "e &!ene6 e&3e!ially w"en "e 3layer 2iew& "e &!ene *rom an an)le( To o2er!ome "i& limi a ion6 "e &3ri eH& ro a ion i& !onne! e1 o "e mo2emen o* "e !amera or "e 3layer in "e reB'ire1 &!ene( -"ere2er "e !amera or "e 3layer mo2e&6 "e &3ri e en1& o ro a e o "e !ameraH& an)le or "e 3layerH& an)le6 &o i blen1& in wi " "e AD 2ir 'al worl1( Many )ame& '&e billboar1in) o ma.e &3ri e& D8D obLe! &E a33ear o be AD( Billboar1 i& a e!"niB'e in w"i!" 8D obLe! & are a33lie1 o a re! an)'lar 3rimi i2e or a 3oly)on "a i& .e3 3er3en1i!'lar o "e line o* &i)" o* "e 3layer or "e !amera(
TA2$ 1OT$
T$4T Early !om3' er )ame& '&e1 e< !"ara! er& be!a'&e !om3' er& 1i1 no "a2e )ra3"i!& !a3abili ie&( A12en 're6 al&o !alle1 Colo&&al Ca2e A12en 're6 an1 Geno!i1e are e<am3le& o* e< 7ba&e1 2i1eo )ame&6 w"i!" 1e3en1 on wri en wor1& or e< !"ara! er&( T"ey "a2e li le or no )ra3"i!&( Some e< 7ba&e1 )ame&6 &'!" a& m'l i7'&er 1'n)eon& DMUD&E6 are m'l i3layer online )ame&( In "e&e )ame&6 )amer& !an rea1 or 2iew e< 'al 1e&!ri3 ion& o* "e obLe! & or !"ara! er& o* "e )ame( T"ey !an al&o rea1 1e&!ri3 ion& abo' o "er )amer& an1 a! ion& !arrie1 o' in "e 2ir 'al worl1( T"e )amer& in era! wi " ea!" o "er an1 wi " "e 2ir 'al worl1 by y3in) e< !omman1&(
Te< 7ba&e1 )ame& "a2e "e ban1wi1 " o "an1le any n'mber o* '&er& a a ime( T"eir "ar17 ware reB'iremen & are ba&i! !om3are1 o )ra3"i!&7ba&e1 2i1eo )ame&( T"ere*ore6 3layer& !an 3lay e< 7ba&e1 2i1eo )ame& '&in) any !om3' er !onne! e1 o "e In erne ( Moreo2er6 e2en i* a 3layer "a& a &lower ne wor. !onne! ion6 i 1oe& no "in1er "e )ame3lay( De&3i e "e&e a12an a)e&6 o1ay6 wi " "e a12an!emen o* !om3' er& an1 )amin) e!"nolo)y6 e< 7ba&e1 )ame& are be!omin) ob&ole e( T"e '&e o* e< in )ame& "a& re1'!e1 o 3ro2i1in) in& r'! ion&6 )ame7le2el in*orma ion6 me&&a)e&6 warnin)&6 an1 o "er im3or an in*orma ion o "e 3layer( Mo& en)ine& allow -in1ow&7ba&e1 *on & o 1raw e< elemen & in )ame&(
www.it-ebooks.info
?% , 2esso* @
0+8-T$ "O1T In )eneral6 *on & are 1i&3laye1 on !om3' er &y& em& '&in) 2e! or )ra3"i!&( T"i& im3lie& "a *on & are 1e*ine1 by ma "ema i!al !al!'la ion&( Howe2er6 w"en yo' '&e *on & in yo'r )ame6 i
in!rea&e& "e 3ro!e&&in) ime be!a'&e enormo'& ime i& &3en in !om3' a ion !y!le& w"ene2er ea!" *on i& 1i&3laye1( To a2oi1 "i&6 "e #%A Framewor. 3ro2i1e& yo' wi " &3ri e *on &( T"e &3ri e *on & wor. by !on2er in) a normal 2e! or7ba&e1 *on in o a bi ma33e1 *on ( T"e bi 7 ma33e1 *on !an be ren1ere1 B'i!.ly wi "o' in2ol2in) !om3le< !om3' a ion&( Fi)'re A7= &"ow& a !ar ra!in) )ame( T"e )ame '&e& &3ri e *on & o 1i&3lay "e 3o&i ion o* "e !ar&6 "e ime6 an1 &3ee1 o* "e re&3e! i2e &3ee1in) !ar a r'n ime(
"igure (-) A car racing game displaying sprite fonts
S3ri e *on & !an al&o be '&e1 o 1i&3lay "e winnin) or "e lo&in) & a '& o* "e 3layer a r'n ime( Fi)'re A7> & a e& "a "e 3layer "a& no won "e )ame by 1i&3layin) "e e< 6 I/o' Lo&e(J
"igure (-' A sprite font indicating losing status
www.it-ebooks.info
TA2$ 1OT$
/o' &"o'l1 be !are*'l o a2oi1 !o3yri)" i&&'e& w"ile '&in) *on & in yo'r )ame( Mi!ro&o* an1 o "er online &i e& 3ro2i1e *ree *on &(
T$4T78$0 Te< 're i& a 8D ima)e "a i& a33lie1 o a )ame obLe! or !"ara! er o 1e*ine i & &'r*a!e( /o' !an '&e e< 're& o !rea e "e loo. o* "e obLe! ( For e<am3le6 &'33o&e yo'r )ame "a& a wall obLe! ( To &"ow a bri!. wall6 yo' !an !rea e "e reB'ire1 e< 're an1 a33ly i o "e wall( In ano "er &!enario6 le '& a&&'me a !"ara! er in yo'r )ame 1e3i! & an o**i!e wor.er( /o' !an '&e e< 're an1 a33ly i o "e 3lain "ree71imen&ional ima)e o* "e !"ara! er o !rea e "e loo. an1 *eel o* a real o**i!e wor.er( Fi)'re A7? &"ow& "e "ree71imen&ional ima)e o* an o**i!e wor.er !"ara! er wi " 3lain &'r*a!e( Fi)'re A7:9 &"ow& "e &ame o**i!e wor.er !"ara! er wi " e< 're a33lie1 o "e AD &'r*a!e(
Te< 're& "el3 o en"an!e no only !"ara! er&6 b' )ame obLe! & a& well( Fi)'re A7:: an1 Fi)'re A7:8 &"ow "e e< 're& "a !an be '&e1 o en"an!e & one obLe! & an1 ree obLe! & in a )ame(
www.it-ebooks.info
?$ , 2esso* @
"igure (-;; The stone te%ture
/-G?T-1G Li)" in) "el3& o en"an!e "e ae& "e i!& o* yo'r )ame( By 1e&i)nin)6 *o!'&in)6 an1 3lo in) "e li)" in) !om3onen o* yo'r )ame6 yo' !an en"an!e "e )ame 2i&'al& an1 ma.e yo'r )ame obLe! & re&emble real7worl1 obLe! &(
www.it-ebooks.info
/o' !an '&e li)" in) o &e "e ime an1 "e &!enario o* "e )ame( Fi)'re A7:A &"ow& a &!reen &"o *rom "e )ame Halo4 Rea!"( In "e )i2en &!reen &"o 6 yo' !an &ee "a "e &"a1ow o* "e !"ara! er *all& on "e )ro'n1 in1i!a in) "a "e &!ene i& a.in) 3la!e in a broa1 1ayli)" ( /o' !an &'33lemen "e AD *eel o* yo'r )ame obLe! & by 3ro2i1in) li)" e**e! & wi " 3ro3er !om3o&i ion( T"a i&6 obLe! & near "e li)" &o'r!e &"o'l1 "a2e more li)" in) an1 obLe! & *ar "er away *rom "e li)" &o'r!e &"o'l1 "a2e re1'!e1 li)" in)( For e<am3le6 Fi)'re A7:; &"ow& "e !om3o&i ion o* li)" on 1i**eren ball&( T"e ball near "e li)" &o'r!e "a& more li)" in) an16 a& "e li)" ra2el& *ar "er6 "e li)" in) 1imini&"e& an1 "e &e!on1 ball a33ear& o "a2e le&& li)" in)( In "i& *i)'re6 "ere i& )ra1in) in li)" ( On "e o "er "an16 in Fi)'re A7:C6 "e !om3o&i ion o* li)" on "e ball& 1oe& no "a2e any 1imini&"in) e**e! ( Bo " o* "e ball& loo. bri)" no ma er "ow *ar "ey are *rom "e li)" &o'r!e( A "i& 3oin 6 "in. o* "ow a mo2ie !a3 're& "e li)" in) e**e! "a e<i& & in reali y( Howe2er6 be!a'&e )ame& in2ol2e ima)inary anima e1 !"ara! er& or obLe! & an1 no real7li*e !"ara! er& or
"igure (-;* $ffect of light with decay
www.it-ebooks.info
?! , 2esso* @
"igure (-;@ $ffect of light without decay
obLe! & a& in mo2ie&6 3ro2i1in) 3ro3er li)" in) in )ame& be!ome& a 1i**i!'l a&.( I in2ol2e& !al!'la in) "e re&'l in) !olor o* "e &'rro'n1in) obLe! & or !"ara! er& w"en li)" *all& on "em( T"e le2el o* 1e ail will6 in 'rn6 in!rea&e "e &i,e an1 !om3le<i y o* "e )ame( For e<am3le6 &'33o&e a !"ara! er in a )ame & an1& below a li)" ( De3en1in) on "e !om3le<i y o* "e )ame6 "e )ame mi)" or mi)" no be 3ro)ramme1 *or mo2in) "e &"a1ow o* "e !"ar7 a! er on "e *loor wi " re&3e! o "e 3o&i ion o* "e li)" ( T"i& !al!'la ion reB'ire& !om3le< !om3' a ion& "a "e )ame en)ine an1 "e GPU mi)" no be able o "an1le( To ma.e "i& a&. &im3ler6 nowa1ay& )ame en)ine& 3ro2i1e 3re1e*ine1 3ro3er ie& an1 *'n! ion& o !rea e !ommonly '&e1 li)" in !om3' er )ra3"i!&( E<am3le& in!l'1e li)" 3oin 6 &3o 6 1ire! ional6 an1 ambien li)" ( Cer ain )ame en)ine& al&o 3ro2i1e li)" in) &y& em& "a !an mimi! "e na 'ral 1ay an1 ni)" li)" in)(
./$1 -1G Blen1in) i& "e mi<in) o* a new !olor wi " an alrea1y e<i& in) !olor o !rea e a 1i**eren re&'l in) !olor( Blen1in) "el3& o !rea e many &3e!ial e**e! & in yo'r )ame 2i&'al&( Ea!" !olor "a i& mi<e1 !on ain& a blen1 *a! or( T"e blen1 *a! or 1e*ine& "ow m'!" o* ea!" !olor i& mi<e1 in "e *inal !olor( /o' !an &3e!i*y "e blen1 *a! or *or ea!" o* "e !olor& an1 '&e "e re&3e! i2e blen1 *'n! ion o )e "e reB'ire1 e**e! (
Mi!ro&o* #%A Game S '1io ;(9 3ro2i1e& 3re1e*ine1 3ro3er ie& an1 *'n! ion& "a yo' !an '&e *or blen1in)( Di**eren blen1 mo1e& are a2ailable D&ee Fi)'re A7:@E( Fi)'re A7:@ ill'& ra e& *o'r !ommon blen1 mo1e&6 namely al3"a blen1in)6 a11i i2e blen1in)6 m'l i3li!a i2e blen1in)6 an1 8# m'l i3li!a i2e blen1in) *rom le* o ri)" 6 re&3e! i2ely( T"e ima)e& a "e o3 row in "e *i)'re are &o'r!e ima)e& an1 "e ima)e& a "e bo om row &"ow "e e**e! o* blen1in) w"en a11e1 o "e 1e& ina ion( T"e mo& !ommonly '&e1 blen1 mo1e i& a11i i2e al3"a blen1in)( Be*ore 1i&!'&&in) a11i i2e al3"a blen1in)6 le '& 1e*ine al3"a blen1in)( Al3"a blen1in) i& "e 3ro!e&& o* !ombinin) a *ore)ro'n1 ran&l'!en !olor wi " a ba!.)ro'n1 !olor o !rea e a ran&3aren!y e**e! in or1er "a "e 1e& ina ion !olor a33ear& "ro')" "e &o'r!e !olor( In !om3' er )ra3"i!&6 al3"a mean& ran&3aren or &emi7 ran&3aren 3i<el&( A11i i2e al3"a ben1in) i& a 3ro!e&& in w"i!" "e &o'r!e an1 "e 1e& ina ion !olor i& a11e1 o )e "e re&'l an !olor( For e<am3le6 i* yo'r &o'r!e !olor i&
www.it-ebooks.info
bl'e an1 "e 1e& ina ion !olor i& re16 "e re&'l an !olor "a yo' )e i& 3'r3le( /o' !an '&e a11i7 i2e al3"a blen1in) o !rea e AD a mo&3"eri! an1 en2ironmen al e**e! &( For e<am3le6 in yo'r a! ion )ame6 &'33o&e "ere i& a &!ene o* a bomb bla& in a "o'&e( T"e "o'&e "a& re1 li)" in)( /o' '&e a &3ri e elemen *or "e &mo.e "a ari&e& 1'e o "e bla& ( To )i2e a reali& i! e**e! an1 o ma.e "e &3ri e elemen 3ar o* "e &!ene6 yo' '&e a11i i2e al3"a blen1in)( A* er blen1in) "e &mo.e6 w"i!" i& w"i e in !olor6 wi " "e re1 li)" &o'r!e in "e room6 "e &mo.e will loo. re1(
MO8$
-1"O8MAT-O1
/o' !an re*er o "e &e! ion I-"a I& Color Blen1in)J in "e MSD% Library o learn more abo' "e blen1 &e in)& in #%A ;(9 *or 1i**eren blen1 mo1e&(
( G$OM$T8A A AD )eome ry i& an obLe! "a "a& "ree 1imen&ion&4 len) "6 wi1 "6 an1 "ei)" ( In !om3' er )ra3"i!&6 yo' !an '&e AD )ra3"i!& o re3re&en AD obLe! &( To en"an!e "e )amerH& e<3erien!e6 mo& 2i1eo )ame& o1ay '&e AD )ra3"i!&(
AD )ra3"i!& nee1 a lo o* GPU 3ro!e&&in)( T"ere*ore6 "ea2y )ra3"i!& mi)" ma.e yo'r )ame r'n &lowly6 or mi)" e2en &"' i 1own( T"ere*ore6 w"ile '&in) "i& 1e&i)n elemen in yo'r )ame6 yo' &"o'l1 !on&i1er "e *ollowin) 3oin &4 N Ma.e &'re "a yo'r )ame mo1el a1a3 & o 1i**eren )ra3"i!& le2el& an1 o' 3' 1e2i!e&( A )ame !on ain& 1i**eren )ra3"i!& le2el&( In )eneral6 a )ame en)ine i& 1e&i)ne1 in &'!" a way "a i !an i era e a mo1el 1e3en1in) on "e &e in) "e 3layer !"oo&e& an1 al&o 1e3en1in) on "e 1i& an!e o* "e )ame obLe! & *rom "e !amera( T"a i&6 i* "e obLe! i& *ar away *rom "e !amera6 "e )ame en)ine loa1& "e low B'ali y 1a a o* "e obLe! an1 i* "e obLe! i& near "e !amera6 i loa1& "e "i)" B'ali y 1a a o* "e obLe! ( Fi)'re A7:= &"ow& a )ame mo1el *rom low o "i)" )ra3"i!& le2el( N /o'r )ame )ra3"i!& be!ome "ea2ier on!e yo' a33ly e< 're o i ( T"ere*ore6 .ee3 "e ba&e )eome ry &im3le an1 li)" ( A& alrea1y 1i&!'&&e16 a&&'me yo'r )ame "a& a !"ara! er "a 1e3i! & "e ima)e o* an o**i!e wor.er( To 3or ray "i& ima)e6 yo' !an a33ly a33ro3ria e e< 're o "e ba&e )eome ry o* "e
"igure (-;) A game model in different graphic le!els
www.it-ebooks.info
$& , 2esso* @
mo1el( /o' !an re2i&i Fi)'re A7?6 w"i!" &"ow& "e 3lain AD mo1el o* a )ame !"ara! er6 an1 Fi)'re A7:96 w"i!" &"ow& "e AD mo1el wi " "e e< 're a33lie1(
+A8A//A4 MA++-1G In 2i1eo )ame&6 3aralla< ma33in) i& a AD e!"niB'e "a i& an en"an!emen o* "e Inormal ma33in)J e!"niB'e a33lie1 o e< 're&( To 'n1er& an1 3aralla< ma33in) be er6 *ir& le '& 1e*ine normal ma33in)( In !om3' er )ra3"i!&6 normal ma33in) i& a e!"niB'e o *a.e "e li)" in) o* b'm3& an1 1en & on )ame obLe! & an1 !"ara! er&( T"i& e!"niB'e "el3& o )i2e 1e3 " o a )ame obLe! by a33lyin) a normal ma3 on "e )ame obLe! ( A normal ma3 i& )en7 era e1 *rom a "i)" 3oly)on mo1el( I i& an RGB Dre16 )reen6 an1 bl'eE ima)e6 in w"i!" "e RGB !om3onen & !orre&3on1& o "e #6 /6 an1 P !oor1ina e& o* "e &'r*a!e normal6 w"i!" i& a 2e! or "a i& 3er3en1i!'lar o "e &'r*a!e a "a &3o ( Paralla< ma33in) i& an en"an!emen o* normal ma33in)( U&in) 3aralla< ma33in) e!"niB'e&6 yo' !an ma.e a )ame obLe! 6 &'!" a& a & one wall6 loo. li.e a "ree71imen&ional obLe! 6 wi " more a33aren 1e3 " an1 wi " minimal e**e! on "e 3er*orman!e o* "e &im'la ion( Paralla< ma33in) 1i&3la!e& "e in1i2i1'al 3i<el "ei)" o* a &'r*a!e6 ma.in) "e "i)" !oor1ina e& "i1e "e low !oor1ina e& be"in1 "em( T"i& )i2e& "e ill'&ion o* 1e3 " on "e &'r*a!e w"en loo.e1 a an an)le(
/o' !an '&e 3aralla< ma33in) o en"an!e "e loo. o* "e *la e< 're& 3ain e1 on a 8D &'r*a!e( For e<am3le6 !on&i1er "e ro!. &"own in Fi)'re A7:>( Al "o')" "e ro!. "a& "e reB'ire1 e< 're6 i loo.& 'nreali& i!( By a33lyin) 3aralla< ma33in) o "i& ima)e6 yo' !an a11 1e3 " o "e ro!. an1 ma.e i loo. real D&ee Fi)'re A7:?E(
CO10- $8AT-O10 "O8 GOO 6-07A/ $0-G1 All "e )ame 1e&i)n !om3onen & !o2ere1 &o *ar !an "el3 yo' 1e&i)n a )ame "a loo.& more reali& i! an1 en)ro&&e& i & a'1ien!e( Howe2er6 "a will "a33en i* yo' !rea e "e )ame 1e&i)n !om3onen & !on&i1erin) "e&e 3oin &4
N Sim3li!i y4 /o' &"o'l1 alway& .ee3 "e 2i&'al 1e&i)n o* yo'r )ame &im3le an1 !lear &o "a 3layer& !an ea&ily '&e an1 *ollow "e )ame 3lay( N Com3a ibili y4 T"e 2i&'al 1e&i)n o* a )ameH& !"ara! er& or obLe! & &"o'l1 be !om3a ible wi " "e )ame "eme an1 )ame !on!e3 ( For e<am3le6 !on&i1er a war &!ene in an a! ion
"igure (-;' A rock without paralla% mapping
www.it-ebooks.info
)ame( T"e 2i&'al 1e&i)n o* "e !"ara! er& in "i& )ame &"o'l1 1e3i! real7worl1 &ol1ier&6 wi " bloo1& ain& an1 m'1 on "eir !lo "in)( T"e !"ara! er& &"o'l1 no loo. nea an1 i1y( N Clari y4 E2ery !"ara! er in a )ame &"o'l1 be !learly 1i& in)'i&"e1 *rom o "er !"ara! er& wi " re&3e! o 3"y&i!al *ea 're&( For in& an!e6 le '& a.e "e e<am3le o* an a! ion )ame in w"i!" a "ero *i)" & wi " "e 2illain o &a2e a 2i! im( In "i& !a&e6 i* "e 2i! imH& 2i&'al 3"y&i!al *ea 're& an1 "e "eroH& 2i&'al 3"y&i!al *ea 're& are no 1i& in)'i&"e1 3ro3erly an1 1o no 1e3i! "e re&3e! i2e !"ara! er y3e6 "en "e )amer mi)" )e !on*'&e1 an1 lo&e
C$8T-"-CAT-O1 8$A A <hat are all the design elements that you can use for an "+0 gameB (.(
ra!. o* w"o i& w"o( N U&e o* !olor&4 U&e 3ro3er !olor& *or "e !"ara! er& an1 obLe! &( For e<am3le6 &'33o&e "e )ame "a& a "i)"7a! ion &!ene6 &'!" a& a bi) eam *i)" ( I* yo' '&e &im3le !olor& an1 no 2al'e !on ra& in "e )ame6 "en all "e !"ara! er& in "e *i)" will blen1 in o ea!" o "er( T"i& !an ma.e "e 3layer& lo&e ra!. o* "e !"ara! er&(
www.it-ebooks.info
$A , 2esso* @
/o'r )ame UI a! & a& an in er*a!e "a bin1& "e 3layerH& in3' wi " "e a! ion& in "e )ame( T"e UI al&o "el3& "e 3layer o )e me&&a)e& !on2eyin) "e 1e ail& o* a! & or o!!'rren!e& o* e2en & *rom "e )ame( For an en)a)in) )amin) e<3erien!e6 "e UI o* yo'r )ame m'& be !on&i& en 6 ea&y o '&e6 in*orma ional6 an1 a ra! i2e( A )ame wi " a )oo1 UI ma.e& "e 3layer enLoy "e )ame( On "e o "er "an16 a )ame wi " a 3oor in er*a!e *r'& ra e& "e 3layer e2en "o')" i "a& a )oo1 )ame !on!e3 ( T"ere*ore6 !rea in) "e 2i&'al 1e&i)n *or yo'r )ame i& one o* "e mo& !"allen)in) a! i2i ie& in !rea in) "e UI o* "e )ame( I i& !"allen)in) be!a'&e6 one6 yo' nee1 o !on2ey all "e ne!e&&ary in*orma ion o "e 3layer wi "in "e li le &!reen &3a!e a2ailable6 an1 wo6 yo' nee1 o 1o "a e**e! i2ely an1 wi "o' !l' erin) "e &!reen( T"e in era! i2e an1 nonin era! i2e UI elemen & o* a )ame !an be !a e)ori,e1 in o *o'r y3e& o* UI !om3onen &( T"e&e UI !om3onen y3e& mi)" be 3ar o* "e )ame & ory or )ame &3a!e6 or !om3le ely *all o' &i1e "e )ame &3a!e or )ame & ory( T"e UI !om3onen & "a *orm 3ar o* "e )ame narra ion or )ame & ory6 a! a& an in er*a!e be ween "e )ame a2a ar an1 "e 3layer( T"e )ame a2a ar an1 o "er )ame !"ara! er& are aware o* "e&e UI !om3onen &( T"e UI !om3onen & "a *orm 3ar o* "e )ame &3a!e 3ro2i1e an in er*a!e be ween "e )ame worl1 an1 "e 3layer( Player& "a2e o '&e "e UI !om3onen & o 3ar i!i3a e in "e )ame worl1( T"e )ame a2a ar an1 )ame !"ara! er& are no aware o* "e UI elemen &( Le '& now loo. a "e *o'r UI !om3onen y3e& in 1e ail(
7- COM+O1$1T TA+$0 T"e *o'r 3rimary UI !om3onen & in!l'1e 1ie)e i! !om3onen &6 non1ie)e i! !om3onen &6 &3a ial !om3onen &6 an1 me a !om3onen &( Le '& loo. a ea!" o* "e&e !om3onen & in 1e ail(
iegetic Components
Die)e i! !om3onen & !an e<i& wi "in "e )ame & ory an1 "e )ame &3a!e( T"ey a&&i& "e 3layer by 3ro2i1in) in1i!a ion an1 in*orma ion abo' "e )ame worl16 in w"i!" "e )ame a2a ar an1 o "er )ame !"ara! er& are aware( A ma3 i& an e<am3le o* a 1ie)e i! !om3onen "a "e 3layer !an '&e o in1i!a e w"ere "e or &"e i& lo!a e1 D&ee Fi)'re A789E( /o' !an '&e 1ie)e i! !om3onen & o en"an!e "e narra i2e e<3erien!e o* yo'r )ame6 an1 al&o "e 3layerH& in2ol2emen in "e )ame( For e<am3le6 in Co'n er S ri.e6 "e i!.in) &o'n1 o* "e bomb
"igure (-9E A map indicating the current location
www.it-ebooks.info
an1 "e imer are 1ie)e i! !om3onen &( In "i& )ame6 "e errori& 3lan & "e bomb in one 3la!e( T"e 3layer !"ara! er !an "ear "e i!.in) &o'n1 o* "e bomb *rom a *ar !orner an16 a& "e !"ar7 a! er a33roa!"e& "e 3la!e6 "e &o'n1 be!ome& lo'1er( -"en "e bomb i& abo' o e<3lo1e6 "e !"ara! er !an "ear "e i!.in) &o'n1 *a& er6 an1 "e bomb e2en 'ally e<3lo1e&( T"e imer !om3o7 nen in "e )ame in1i!a e& o "e 3layer !"ara! er "e ime remainin) be*ore "e bomb e<3lo1e&(
1ondiegetic Components
In !on ra& o "e 1ie)e i! !om3onen &6 non1ie)e i! !om3onen & are no 3ar o* "e )ame & ory or "e )ame &3a!e( /o' !an '&e "e&e !om3onen & o enable "e 3layer o !"oo&e "e )ame &e in)( For e<am3le6 yo' !an '&e non1ie)e i! !om3onen & o allow 3layer& o !'& omi,e "e y3e o* wea3on& "ey wan o '&e in "e )ame D&ee Fi)'re A78:E( T"e&e !om3onen & !an "a2e "eir own 2i&'al rea men an1 3layer& !an !om3le ely !'& omi,e "em( Fi)'re A788 &"ow& an o3enin) &!reen o* a &am3le )ame "a '&e& a men' a& a non1ie)e i! !om3onen ( %o e "a "e i le6 IUl ima e Carna)e6J 1i&3laye1 on "e &!reen i& a *i! ional name an1 no "e i le o* any real 2i1eo )ame(
"igure (-9; CustomiGing the weapon using nondiegetic components
www.it-ebooks.info
S3a ial !om3onen & are 3ar o* "e )ame &3a!e b' no 3ar o* "e )ame & ory( T"ey 3ro2i1e e< ra in*orma ion on a )ame obLe! or !"ara! er o "e 3layer6 elimina in) "e nee1 *or "e 3layer o L'm3 o men' &!reen& o &ee. more in*orma ion( In "i& way6 "i& !om3onen main ain& "e )amin) e<3erien!e o* "e 3layer&( For e<am3le6 yo' !an '&e &3a ial !om3onen & in a )ame o ell "e 3layer w"i!" wea3on& "ey !an )a "er on "eir way o a mi&&ion D&ee Fi)'re A78AE(
"igure (-9( 7se of a spatial component to indicate weapons in store
Meta Components
A me a !om3onen e<i& & a& 3ar o* "e )ame & ory alone( Me a !om3onen & are '&'ally '&e1 wi " 1ie)e i! !om3onen & o re!rea e a real7worl1 e<3erien!e( Howe2er6 me a !om3onen & are 1i**i!'l o 1e*ine in a )ame "a 1oe& no "a2e a & ron) & oryline( /o' !an '&e me a !om3onen & o e<3re&& e**e! & &'!" a& a bloo1 &3a er or !ra!.e1 )la&&( T"e&e e**e! & !on2ey me&&a)e& o "e 3layer& in or1er o 1raw "em in o "e reali y o* "e 2ir 'al worl1( For e<am3le6 "e on&!reen bloo1 &3a er in a )ame !on2ey& "a "e 3layer i& "i D&ee Fi)'re A78;E(
"igure (-9* 7se of meta component for blood splatter
Player& e<3e! )ame& "a are &im3ler o '&e an1 ea&ier o 3lay( /o' m'& "ere*ore & ri.e a bal7 an!e be ween immer&ion an1 '&abili y( To !rea e a )ame "a i& en)a)in) an1 al&o 3ro2i1e& "e o3 imal )amin) e<3erien!e6 yo' m'& &ele! "e UI layo' a* er !are*'l !on&i1era ion o* "e 3ro& an1 !on& o* ea!" UI y3e( Table A7: 3re&en & a B'i!. !om3ari&on o* "e 1i**eren UI !om3onen &( T"e 1e!i&ion o !"oo&e "e ri)" !om3onen & ba&e1 on "e wo me "o1& i& B'i e ri!.y( Some )ame 1e&i)ner& ar)'e "a '&in) !om3onen & "a *orm 3ar o* bo "6 "e )ame & ory an1 "e )ame &3a!e DP'r3o&e : an1 P'r3o&e 8E6 "el3& in !rea in) )ame& "a are more en)a)in)( O "er )ame 1e&i)ner& !o'n er7ar)'e "a "e&e !om3onen & a mo& 3ro2i1e a 2i&'al a33eal6 b' 3re&en only limi e1 in*orma ion o "e 3layer( O* en6 "e in*orma ion 3re&en e1 "ro')" "e&e !om3onen & !a'&e& "e 3layer o mi&in er3re 1a a an1 ma.e error& 1'rin) "e )ame( T"i& re1'!e& "e 3layerH& )amin) e<3erien!e( For e<am3le6 in Dea1 Sea6 "e "olo)ra3"i! AD ma3 wa& no in era! i2e eno')" o na2i)a e "e 3layer( T"e ma3 1i1 no a! li.e a real7 ime GPS &y& emM ra "er6 i wa& L'& a nonin era! i2e elemen *or ma.in) "e )ame a ra! i2e( A non1ie)e i! !om3onen !o'l1 "a2e ea&ily re3la!e1 i (
7- COM+O1$1T iegetic
+8O0 N $nables the player to connect with the game world. N ?elps in connecting the storyline with the game.
CO10 N 0eems contri!ed or forced if the 7- elements are not represented properly. N May not necessarily pro!ide proper information to the player. N 1ot suited for games in which there must be a break in the game to pro!ide critical information to the player. N oes not immerse the player into the gameplay as the diegetic components do.
1ondiegetic
N $nables 7- elements to ha!e their own !isual treatment. N ?elps in o!ercoming limitations imposed by other 7- components.
0patial
N ?elps to separate information to the player from information to the playerKs character. N +layer does not need to tab between screens to take in information.
Meta
N $nsures replication of real-world e%perience through blends with diegetic layout. N +resents clear information to the player.
N Can create confusion and can easily distract the player from the actual game play. N +layer may waste game time in searching for this kind of layout. This might lead to distraction from the actual gameplay. N 8eJuires a good storyline for the use of layout.
www.it-ebooks.info
www.it-ebooks.info
$$ , 2esso* @
Ha2in) 1i&!'&&e1 "e 3rimary y3e& o* UI !om3onen &6 le '& now loo. a &ome UI elemen & "a re3re&en "e&e UI !om3onen &(
7- $/$M$1T0 T"e UI elemen & "a !an re3re&en "e *o'r y3e& o* UI !om3onen & are men'6 b' on6 HUD6 e< 6 e< *iel16 i!on&6 an1 many more in era! i2e UI elemen &( /o' !an '&e "e&e UI elemen & o re3re&en any o* "e *o'r UI !om3onen & ba&e1 on yo'r )ame reB'iremen &( Le '& 1i&!'&& &ome o* "e UI elemen & in brie*(
Menu
/o' !an '&e men'& in yo'r )ame o 3ro2i1e "e 3layer wi " a li& o* o3 ion&( T"e 3layer !an !"oo&e *rom "e li& a& 1e&ire1( /o' !an '&e men'& a& 3ar o* yo'r )ame & ory or a& 3ar o* yo'r )ame &3a!e( /o' !an al&o 3la!e a men' a& a non1ie)e i! !om3onen on a wel!ome or o3enin) &!reen6 w"ere 3layer& !an &ele! "e a! i2i y "ey wan o 3er*orm( For e<am3le6 yo' !an '&e men'& on "e o3enin) &!reen o* yo'r )ame o allow "e 3layer o !"oo&e a 3re2io'&ly &a2e1 )ame or & ar a new )ame( Al erna i2ely6 yo' !an '&e men'& in "e )ame & ory o 3ro2i1e o3 ion& *or "e 3layer !"ara! er o &ele! a 3ar i!'lar )ame &e in) D&ee Fi)'re A78CE( For e<am3le6 in a war )ame6 yo' !an '&e men'& o allow "e 3layer !"ara! er o &ele! a wea3on(
Follow "e&e )'i1eline& w"ile '&in) men'& in yo'r )ame4 N $ee3 "e men' na2i)a ion *a& by .ee3in) "e UI men' !o1e li)" ( Player& 1o no li.e o wai *or men'& o loa1 or6 wor&e6 o wai *or "e &ele! e1 o3 ion o loa1 in "e mi11le o* a )ame( So '&e only ba&i! !o1in) *or "e men'( Men'& wi " li)" !o1e a33ear *a& er on "e &!reen an1 !a'&e minimal in err'3 ion *or "e 3layer( N $ee3 "e UI men'& well or)ani,e1( Player& w"o '&e PC& &ele! a men' i em 3re!i&ely wi " a mo'&e 3oin er( Howe2er6 3layer& w"o 3lay !on&ole )ame& '&e "e D73a1 or "'mb& i!. in "e )ame !on roller o &ele! "e reB'ire1 men' i em by 3a&&in) "ro')" "e en ire men'( T"ere*ore6 yo' &"o'l1 1e&i)n yo'r men' a3 ly6 .ee3in) "e 3la *orm reB'iremen & in min1(
www.it-ebooks.info
N $ee3 "e men' &!rollin) minimal( S!rollin) men'& ma.e "e 3layer& &ele! an1 e2al'a e e2ery !"oi!e 'n il "ey *in1 "e ri)" one( Howe2er6 i* yo' .ee3 "e men' &!rollin) mini7 mal wi " all "e o3 ion& 2i&ible6 3layer& !an 1ire! ly *in1 "eir !"oi!e D&ee Fi)'re A78@E(
"igure (-9L A scrolling menu
?eads-7p isplay
A "ea1&7'3 1i&3lay DHUDE UI 3ro2i1e& )ame7&3e!i*i! in*orma ion o "e 3layer "ro')" 2i&'al re3re&en a ion&( T"e HUD !an "el3 yo' a.e "e )ame & ory *orwar1( For e<am3le6 a .ey HUD !an "el3 yo' o3en a 1oor "a !an a.e yo' o "e ne< le2el o* "e )ame( Generally6 HUD& !on2ey in*orma ion '&in) n'mber& or e< 6 b' many o "er 2i&'al re3re&en a ion& !an be '&e1 a& 3er "e )ame y3e an1 UI !on!e3 ( Some o* "e !ommon in*orma ion y3e& "a yo' !an 1i&3lay '&in) HUD& an1 "eir re3re&en a ion& in!l'1e4 N C"ara! erH& "eal "0li*e & a '&4 /o' !an &im3ly 3re&en "e "eal " & a '& "ro')" a "eal " bar D&ee Fi)'re A78=E( For e<am3le6 in a &"oo in) )ame6 yo' !an 3ro2i1e a "eal " bar "a 1rain& o' o in1i!a e "a "e !"ara! er "a& L'& &'**ere1 a "i (
"igure (-9) $%amples of ?7 s in a shooter game
$! , 2esso* @
N -ea3on&4 /o' !an &"ow "e wea3on "a "e !"ara! er i& '&in) an1 "e balan!e amo'n o* amm'ni ion "a "e !"ara! er "a&6 a& &"own in Fi)'re A78=6 or "e !"oi!e o* o "er wea37 on& "a are a2ailable( /o' m'& !on&i1er "e 3layerH& nee1 w"en &ele! in) "e in*orma ion in rela ion o "e wea3on&( For e<am3le6 yo' !an 1i&3lay "e !"oi!e o* wea3on& an1 "e !'rren wea3on bein) '&e1 &o "a "e 3layer& !an !"an)e wea3on& *reB'en ly 1'rin) "e )ame6 i* "ey wan o( N Men'&4 Men' UI& !an al&o be '&e1 a& HUD&( Howe2er6 yo' &"o'l1 !are*'lly &ele! "e men' i em& "a yo' wan o in!l'1e a& HUD( For e<am3le6 men'& o !"an)e "e &e 7 in)&6 e<i "e )ame6 or 3a'&e "e )ame !an be in!l'1e1 in "e HUD6 b' !er ain o "er men'&6 &'!" a& &a2in) "e )ame6 a!!e&&in) "e "el3 men'6 an1 &o on 1o no nee1 o be 3ar o* "e HUD be!a'&e "e&e a! i2i ie& will rarely be 3er*orme1 1'rin) "e )ame( N Game7&3e!i*i! 2i&'al elemen &4 /o' !an '&e !er ain 2i&'al elemen &6 &'!" a& a &3ee1ome er or a !om3a&&6 a& HUD& o "el3 "e 3layer& a!"ie2e "eir obLe! i2e( For e<am3le6 yo' !an '&e a &3ee1ome er o &"ow "e &3ee1 in ra!in) )ame& or a !om3a&& o in1i!a e "e 1ire! ion in B'e& )ame&( /o' !an in1i!a e "e ran)e o* "e ar)e an1 "e amm'ni ion & a '& o* "e wea3on in &"oo in) )ame& D&ee Fi)'re A78=E( N Time4 /o' !an '&e HUD& o in1i!a e "e ime ela3&e1 1'rin) "e )ame6 or "e balan!e ime in a ime7bo'n1 )ame6 or e2en "e !'rren ime o* 1ay( N Game & a '&4 /o' !an 1i&3lay "e !'rren )ame le2el6 &!ore6 an1 o.en& '&in) HUD&( Con&i1er "e *ollowin) w"ile '&in) HUD& in yo'r )ame4 N Pro2i1e in*orma ion '&in) HUD& "a will be& mo i2a e "e 3layer o !on in'e 3layin) "e )ame( N De!i1e w"e "er "e in*orma ion 1i&3laye1 "ro')" "e HUD remain& on "e &!reen a all ime&6 or w"e "er "e 3layer !an a!!e&& "e in*orma ion w"en reB'ire1 "ro')" &ome .ey& 1e3en1in) on "e )ame3lay reB'iremen ( /o' !an al&o !"oo&e o allow "e 3layer o "i1e a 3ar o* "e HUD( N $ee3 yo'r HUD ran&3aren &o "a "e 3layer& 1o no nee1 o !"an)e "eir 2iew3oin o 2iew "e in*orma ion( N $ee3 only "e mo& rele2an in*orma ion in "e HUD( A2oi1 o2erloa1in) in*orma ion6 w"i!" mi)" !on*'&e an1 *r'& ra e 3layer&( In!l'1e only "e mo& rele2an in*orma ion in "e HUD( T"e HUD i& an im3or an 2i&'al elemen o* "e )ame an1 3ro2i1e& &!o3e *or !rea i2e 1e&i)n&( For e<am3le6 "e Dea1 S3a!e HUD mo2e& alon) wi " "e 3layerH& !"ara! er6 b' 1oe& no ob& r'! "e )ame3lay( All 2i al in*orma ion6 &'!" a& air6 "eal "6 ma36 in2en ory6 an1 &o on6 i& 1i&3laye1 "ro')" "e HUD( A&&a&inH& Cree1 i& ano "er )ame wi " a )oo1 HUD( T"e "i)"li)" o* "i& HUD i& "e '&e o* !orner& o 3la!e im3or an in*orma ion6 &'!" a& "eal "6 ma36 a2ailable a! ion&6 an1 wea3on&( T"e HUD 1oe& no 1i& ra! "e 3layer b' !an & ill be ea&ily 2iewe1(
.uttons
/o' !an '&e b' on& o allow "e 3layer o 3er*orm &3e!i*ie1 a! ion& w"en "e 3layer !li!.& "e b' on&( For e<am3le6 yo' !an 3ro2i1e a S ar b' on in "e o3enin) &!reen o* yo'r )ame6 &o "a "e 3layer !li!.& "e b' on o be)in 3layin)( T"e *ollowin) i& a li& o* !on&i1era ion& w"ile '&in) b' on&4 N $ee3 !on&i& en!y in *orm an1 1e&i)n o* "e b' on& a!ro&& "e )ame( N $ee3 "e b' on 1e&i)n &o "a i !learly & an1& o' *rom "e re& o* "e 2i&'al elemen &( Player& are more in!line1 o !li!. on b' on& "an on e< ( N U&e *on & "a 3ro2i1e a &moo " 1i&3lay an1 are ea&y o rea1 e2en in &mall *on &i,e&( N U&e *il er& &'!" a& Dro3 S"a1ow6 Glow6 an1 &o on6 b' only i* i i& an ab&ol' e ne!e&&i y(
www.it-ebooks.info
C$8T-"-CAT-O1 8$A A <hat is a suitable 7concept for a sports game in the mobile platformB ;.*
Con)e& in) yo'r )ameH& UI wi " oo many o3 ion& !an !on*'&e "e 3layer6 re&'l in) in a *r'& ra in) )amin) e<3erien!e( T"ere*ore6 .ee3 yo'r )ameH& UI layo' &im3le( T"e UI o* yo'r )ame &"o'l1 !on ain only ne!e&&ary UI elemen &( /o'r )ame 3layer& &"o'l1 be able o na2i7 )a e "e )ame wi " ea&e(
T"e o' 3' & o* a )ame "a a )amer *inally 2iew& are no only in*l'en!e1 by "e y3e o* in3' 0o' 3' 1e2i!e&6 b' al&o 1e3en1 on 1i**eren *a! or&( T"e *a! or& "a a**e! "e )ame o' 3' in!l'1e4 N T"e me1i'm '&e1 o ren1er or 1eli2er "e 2i&'al o' 3' or "e )ra3"i!& o* "e )ame N T"e 1i**eren re&ol' ion& a w"i!" "e )ame mi)" r'n N T"e e!"niB'e& '&e1 o !om3re&& "e 2i1eo an1 a'1io o' 3'
/o' alrea1y .now "a )ra3"i!& !ar1& en"an!e "e )ra3"i!al o' 3' o* a )ame( Di**eren )ra3"i!& !ar1& "a2e 1i**eren !a3abili ie& in 1i&3layin) )ra3"i!al in*orma ion( /o'r )ame a33li!a ion !omm'ni!a e& wi " "e )ra3"i!& !ar1 "ro')" "e re&3e! i2e 1e2i!e 1ri2er&( Cer ain )ra3"i!& a33li!a ion 3ro)rammin) in er*a!e& DAPI&E6 &'!" a& Dire! # an1 O3enGL6 3ro2i1e ab& ra! ion o "i& !omm'ni!a ion( A ren1erin) en)ine6 w"i!" i& a ren1erer *or 8D or AD )ra3"i!&6 i& b'il on )ra3"i!& API&(
8endering $ngine
Ren1erin) i& "e 3ro!e&& o* )enera in) a 8D ima)e *rom a AD obLe! mo1el '&in) ren1erin) en)ine&( T"e mo1el "a 1e3i! & a )ame obLe! or )ame !"ara! er i& 1e*ine1 by ma "ema i!al re3re&en7 a ion o* 3oin & an1 &'r*a!e& an1 i& !rea e1 by a )ame 1e&i)ner or a )ame ar i& ( /o' alrea1y .now "a )ame en)ine& 3ro2i1e a &o* ware *ramewor. "a "el3& in "e ra3i1 1e2elo3men o* )ame&( Moreo2er6 )ame en)ine& al&o in!l'1e a ren1erin) en)ine( A ren1erin) en)ine ab& ra! & "e !omm'ni!a ion be ween "e )ra3"i!& "ar1ware6 &'!" a& "e )ra3"i!&73ro!e&&in) 'ni DGPUE or 2i1eo !ar16 an1 "e re&3e! i2e 1e2i!e 1ri2er& "ro')" a &e o* API&( Some )ame en)ine& a2ailable in "e mar.e e<!l'&i2ely 3ro2i1e real7 ime AD ren1erin) !a3a7 bili ie&( S'!" )ame en)ine& are o* en erme1 AD ren1erin) en)ine& or AD en)ine&( T"e a&. o* AD ren1erin) en)ine& i& o !on2er AD mo1el& o a 8D ima)e wi " real7 ime AD e**e! &( E<am3le& o* AD ren1erin) en)ine& in!l'1e Cry& al S3a!e6 OGRE6 Tr'e2i&ionAD6 an1 Vi&ion En)ine( One o* "e !ommonly '&e1 AD ren1erin) en)ine& i& Mi!ro&o* H& #%A Game En)ine( Howe2er6 "e #%A Game En)ine wra3& aro'n1 "e *'n! ionali y o* "e Dire! # So* ware(
irect4 T"e Dire! # a33li!a ion i& a !olle! ion o* API& *rom Mi!ro&o* "a "an1le& "i)" 3er*or7 man!e m'l ime1ia a33li!a ion& in!l'1in) )ame&( Dire! # !on ain& a &e o* 1ynami!7lin. librarie& DDLL&E6 w"i!" yo' !an '&e o 1e2elo3 "ar1ware7in1e3en1en )ame !o1e o a!!e&& 1i**eren !om3' er "ar1ware !om3onen &6 &'!" a& in3' 1e2i!e&6 ne wor. !ar1&6 an1 &o'n1 !ar1&( I* "e )ame 3layerH& &y& em !on*i)'ra ion 1oe& no "a2e "e ne!e&&ary "ar1ware "a a
www.it-ebooks.info
#& , 2esso* @
)ame mi)" reB'ire6 Dire! # &o* ware em'la e& "e *'n! ionali y o* "e mi&&in) "ar1ware( For e<am3le6 &ay yo'r )ame reB'ire& "e 2i1eo !ar1 o ro a e a bi ma3( I* "e 2i1eo !ar1 D"ar1wareE o* a 3layerH& &y& em 1oe& no &'33or ro a ion6 "en "e Dire! # em'la e& "e *'n! ionali y "ro')" &o* ware al)ori "m&( T"'&6 &o* ware em'la ion o!!'r& w"ene2er "ar1ware la!.& "e reB'ire1 *ea 're or *'n! ionali y( Fi)'re A78> &"ow& "e in era! ion be ween "e "ar1ware6 Dire! #6 an1 "e -in1ow&7ba&e1 &y& em&(
6ideo Card
0ound Card
1etwork Card
-nput Card
?ardware
irect4 A+-
From Fi)'re A78>6 yo' !an in*er "a Dire! # 3ro2i1e& yo'r )ame a33li!a ion wi " )rea er a!!e&&ibili y o "ar1ware 1e2i!e& &'!" a&4 N Vi1eo !ar1& N In3' 1e2i!e&6 &'!" a& Loy& i!.&6 .eyboar1&6 mi!e6 an1 Loy3a1& N So'n1 !ar1& N %e wor. !ar1& In a11i ion6 Dire! # al&o !on rol& 8D a!!elera ion !"i3&( I !on rol& &o'n1 mi<in) an1 &o'n1 o' 3' on 1i**eren a'1io "ar1ware( -i " e2ery new 2er&ion o* Dire! #6 more an1 more new *ea 're& are a11e1 o "el3 )ame 1e2elo3er& 1e2elo3 )ame& *or "e la e& &o* ware an1 "ar1ware e!"nolo)ie&6 &'!" a& "e la e& o3era in) &y& em 2er&ion&6 "e la e& )ra3"i!& !ar1&6 &o'n1 !ar1&6 ne wor. !ar1&6 an1 o "er 1ri2er& a2ailable on "e mar.e ( Har1ware a!!elera ion i& "e 3ro!e&& o* '&in) &e3ara e !om3' er "ar1ware o en"an!e "e &3ee1 o* !om3' in)( T"ere*ore6 be!a'&e "e GPU "el3& "e CPU by !al!'la in) )ra3"i!& !om3' a ion6 i i& &ome ime& al&o re*erre1 o a& a )ra3"i!& a!!elera or( T"e !olle! ion o* API& in Dire! # in!l'1e& Dire! AD6 Dire! 8D6 Dire! So'n1AD6 Dire! Play6 Dire! In3' 6 an1 &o *or "( T"e I#J in Dire! # re*er& o "e re&3e! i2e API name&( Le '& loo. in o &ome o* "e Dire! # API& in brie*( N Dire! AD4 Dire! AD i& a &e o* AD )ra3"i!& API wi "in Dire! # "a yo' !an '&e o 1e2elo3 )ame& *or -in1ow& o3era in) &y& em& D?C an1 abo2eE an1 #bo< A@9 !on&ole( Dire! AD '&e& "e a12an!e1 *ea 're& o* AD )ra3"i!& !ar1&( /o' !an '&e Dire! AD o en"an!e "e en ire )ra3"i!al *eel o* "e )ame by 3ro2i1in) be er 1i&3lay( Combine1 wi " o "er Dire! # e!"nolo)ie&6 Dire! AD "el3& o 1eli2er AD ren1erin) in 8D 3lane& an1 &3ri e&( N Dire! 8D4 Dire! 8D !on ain& "e 8D )ra3"i!& API "a 3ro2i1e& "i)" 3er*orman!e an1 "i)" B'ali y ren1erin) o* 8D ima)e&( I in ero3era e& well wi " Gra3"i!& De2i!e In er*a!e DGDIE0Gra3"i!& De2i!e In er*a!e; DGDI;E API&6 an1 Dire! AD API&( I im3ro2e&
TA2$ 1OT$
C$8T-"-CAT-O1 8$A A <hat are the different A+-s included in irect4 and for what purposesB (.;
www.it-ebooks.info
"e 3er*orman!e o* yo'r )ame by '&in) "e "ar1ware a!!elera ion "ro')" !om3a ible )ra3"i!& !ar1&( Dire! 8D al&o "el3& yo' o 1i&3lay yo'r )ame in 1i**eren 1o & 3er in!" DDPIE &e in)& by allowin) a' oma i! GUI &!alin)( DPI i& a mea&'re o* re&ol' ion6 in 3ar i!'lar "e n'mber o* 1i&!re e 1o & "a !an a33ear in a line wi "in "e &3an o* one in!"( DPI mea&'remen 1e3en1& on 2ario'& 1i&3lay re&ol' ion& an1 &!reen &i,e&( N Dire! So'n14 Dire! So'n1 i& a &e o* API& "a 3ro2i1e& !omm'ni!a ion be ween m'l ime1ia a33li!a ion&6 in!l'1in) yo'r )ame a33li!a ion& an1 "e &o'n1 !ar1 1ri2er( Dire! So'n1 "el3& in ren1erin) &o'n1& an1 "e 3lay ba!. o* m'&i!( A11i ionally6 Dire! So'n1 al&o 3ro2i1e& re!or1in) an1 &o'n1 mi<in) o* m'l i3le a'1io & ream& an1 a11& e**e! & &'!" a& e!"o an1 re2erb o &o'n1( T"e la e& 2er&ion o* Dire! So'n1 !an 3lay m'l i!"annel &'rro'n1 &o'n1 a "i)" re&ol' ion( Dire! So'n1AD i& an e< en&ion o* Dire! So'n1 "a 3la!e& "e &o'n1 '&in) a "ree71imen&ional !oor1ina e &y& em in& ea1 o* a &im3le le* an1 ri)" 3an( Dire! So'n1AD en"an!e& "e reali& i! e**e! o* &o'n1 in a AD 2ir 'al worl1( To1ay6 Dire! So'n1 an1 Dire! So'n1AD "a2e been mer)e1 an1 !ommonly re*erre1 o a& Dire! So'n1( N Dire! Play4 Dire! Play 3ro2i1e& a &e o* API& "a 3ro2i1e& an in er*a!e be ween yo'r )ame a33li!a ion& an1 !omm'ni!a ion &er2i!e&6 &'!" a& "e In erne or lo!al ne wor.&( In &im3le erm&6 Dire! Play *orm& a layer abo2e ne wor. 3ro o!ol& &'!" a& TCP0IP( I allow& "e 3layer& o in era! wi " ea!" o "er re)ar1le&& o* "e 'n1erlyin) online &er2i!e or ne wor. 3ro o!ol( I "el3& yo' o 3ro2i1e yo'r )ame 3layer& wi " )ame &e&&ion& an1 mana)e& "e *low o* in*orma ion be ween "o& & an1 3layer&( N Dire! In3' 4 Dire! In3' i& a &e o* API& "a "el3& yo'r )ame a33li!a ion !olle! in3' *rom "e 3layer& "ro')" "e in3' 1e2i!e&( T"e in3' 1e2i!e& !an be o* any y3e6 &'!" a& a mo'&e6 .eyboar16 o "er )ame !on roller&6 an1 e2en a *or!e *ee1ba!.( Moreo2er6 "i& API "el3& yo' o a&&i)n )ame7&3e!i*i! a! ion& o "e b' on& an1 a<e& o* "e re&3e! i2e in3' 1e2i!e&( Dire! In3' '&e& a! ion ma33in)6 w"i!" allow& "e )ame o re rie2e in3' 1a a wi "o' worryin) abo' "e &o'r!e in3' 1e2i!e( A! ion ma33in) allow& yo' o a&&o!ia e ea!" a! ion in yo'r )ame wi " one or more o* "e b'il 7in Dire! In3' 2ir 'al !on rol&( T"e Dire! In3' "en a.e& !are o* ma33in) "e&e a! ion& wi " "e !"oi!e o* "e a2ail7 able in3' 1e2i!e& in a &y& em( In "i& way6 i allow& "e 3layer o &ele! an1 !on*i)'re "e in3' 1e2i!e& o* "eir !"oi!e( -"en yo'r )ame r'n&6 Dire! In3' ma !"e& "e in3' re!ei2e1 *rom "e !"o&en 1e2i!e& an1 ma3& "em o "e 2ir 'al !on rol& "a are a&&o!i7 a e1 wi " "e re&3e! i2e )ame &3e!i*i! a! ion&( A *or!e *ee1ba!. 1e2i!e6 al&o !alle1 a "a3 i! *ee1ba!. 1e2i!e6 wor.& in !onL'n! ion wi " on&!reen a! ion& wi "in a )ame( T"ere are many y3e& o* *or!e *ee1ba!. 1e2i!e& &'!" a&
TA2$ 1OT$
)ame 3a1&6 Loy& i!.&6 & eerin) w"eel&6 an1 &o on( T"e&e 1e2i!e& )i2e "e 3layer& *ee1ba!. in "e *orm o* 2ibra ion& w"en "ey are &"oo in) a )'n or "i by an enemy( For e<am3le6 w"en a 3layer i& &"oo in) a ma!"ine )'n in an a! ion )ame6 a *or!e7*ee1ba!. Loy& i!. 1e2i!e 2ibra e& in "e 3layerH& "an1&6 !rea in) reali& i! *or!e&( Dire! # :: i& "e la e& 2er&ion o* Dire! #( Dire! # :: "a& im3ro2e1 *ea 're& "a "el3 yo' 3ro2i1e & 'nnin) 2i&'al& in yo'r )ame an1 al&o im3ro2e )ame 3er*orman!e &i)ni*i!an ly( I "el3& yo' 3ro2i1e im3ro2e1 !om3' in) an1 "i7&3ee16 "i)"ly reliable )amin)(
TA2$ 1OT$
Mi!ro&o* "a& no re2i&e1 Dire! In3' API &in!e Dire! # >( Mi!ro&o* "a& in ro7 1'!e1 #In3' in 3la!e o* Dire! In3' *or #bo< A@9 !on roller&(
7nderstanding
isplay -nitialiGation
Di&3lay ini iali,a ion i& a &e o* minim'm reB'iremen & "a &"o'l1 be a2ailable *or yo'r )ame o r'n &moo "ly on "e !"o&en 3la *orm(
www.it-ebooks.info
#A , 2esso* @
C$8T-"-CAT-O1 8$A A <hat are the display initialiGation reJuirements for a mobile game in the educational genreB (.;
E2ery )ame "a& &ome bare minim'm reB'iremen & wi "o' w"i!" "e )ame will *ail o ini ial7 i,e on a )i2en 3la *orm( /o' !an &3e!i*y "e .in1 o* GPU "a i& reB'ire1 *or "e )ame6 an1 yo' !an &3e!i*y "e !om3onen & "a are ne!e&&ary *or yo'r )ame o *'n! ion 3ro3erly( For e<am3le6 i* yo' '&e Dire! # a& "e ren1erin) en)ine an1 yo'r )ame "a& m'&i!6 yo'r )ame will no *'n! ion 3ro3erly i* "e Dire! # &o'n1 !om3onen i& no 3re&en in "e 3layerH& &y& em( In "i& !a&e6 yo'r )ame mi)" 1i&3lay an error me&&a)e or i mi)" no r'n a all6 !rea in) )rea *r'& ra ion *or "e '&er( To a2oi1 &'!" &i 'a ion&6 yo' m'& li& "e ne!e&&ary &e '3 reB'ire7 men & "a "e '&er nee1& o !"e!. be*ore ini iali,in) "e )ame(
0$T7+ 8$O7-8$M$1T0 Be*ore 1i&!'&&in) "e reB'iremen & yo' nee1 o &3e!i*y o yo'r )ame '&er6 le '& loo. a an e<am3le o* an error me&&a)e "a 3layer& mi)" )e w"ile ini iali,in) "eir )ame&(
Sam3le error me&&a)e4 A 3layer )e & "e error me&&a)e I!o'l1 no ini iali,e 1i&3lay "ar1wareJ w"en "e rie& o r'n "e )ame on "i& ma!"ine( Rea&on&4 T"i& me&&a)e mi)" a33ear 1'e o "e *ollowin) rea&on&4 N Rea&on :4 T"e )ame !o'l1 no & ar be!a'&e "e 1i&3lay "ar1ware or "e GPU i& no !a3able eno')" o r'n "e )ame( T"e 2i1eo !ar1 memory reB'iremen i& no eno')" or "e ma.e o* "e 2i1eo !ar1 i& no !om3a ible wi " "e )ame( For e<am3le6 2i1eo !ar1& &'!" a& "e E(G In el )ra3"i!& !ar1& are no &'i able *or )ame&( N Rea&on 84 T"ere mi)" be &ome limi a ion in "e 3layerH& 1i&3lay "ar1ware( N Rea&on A4 T"ere mi)" be ano "er a33li!a ion or 3ro!e&& r'nnin) on "e 3layerH& ma!"ine6 w"i!" mi)" "in1er "e ini iali,a ion o* "e )ame( N Rea&on ;4 T"e *ile& "a are in& alle1 1'rin) )ame in& alla ion mi)" be !orr'3 ( %ow le '& loo. a &ome o* "e reB'iremen & "a yo' !an &3e!i*y *or yo'r )ame( T"i& "el3& "e '&er o 3ro2i1e "e &3e!i*ie1 reB'iremen & on "e 3la *orm be*ore 3layin) "e )ame( N S3e!i*y "e 1i&3lay "ar1ware6 "a i&6 "e .in1 o* GPU "a !an "el3 yo'r )ame )ra3"i!& r'n &moo "ly( N S3e!i*y "e y3e o* a33li!a ion "a nee1& o be &"' 1own *or "e )ame o ini iali,e 3ro3erly( For e<am3le6 *or Co'n er S ri.e6 i* "e ma!"ine on w"i!" "e )ame r'n& al&o "a& a -IBU7 $E/ Ser2er A33li!a ion r'nnin)6 "en "e 3er*orman!e o* Co'n er S ri.e on "e ne wor. will &low 1own( In "i& !a&e6 i i& ne!e&&ary o in*orm "e '&er o 'rn o** "e a33li!a ion&( N -"en )amer& in& all yo'r )ame on a PC6 "e *ile& in& alle1 on "e ma!"ine mi)" be!ome !orr'3 1'e o &ome 2ir'& 3re&en on "e ma!"ine( To a2oi1 "i&6 yo' !an &3e!i*y "a '&er& &"o'l1 !"e!. *or 2ir'&e& be*ore "ey in& all yo'r )ame on "eir ma!"ine&( N /o' !an in*orm '&er& abo' any 1ia)no& i! ool "a "ey !an '&e o !"e!. "e !a3abili ie& o* "e "ar1ware in& alle1 on "eir ma!"ine&( For e<am3le6 Dire! # Dia)no& i! Tool "el3& '&er& ro'ble&"oo 3roblem& "a are en!o'n ere1 w"ile 3layin) )ame&( T"e *ollowin) li& !on ain& "e minim'm 1i&3lay ini iali,a ion reB'iremen & *or "e Halo4 Comba E2ol2e1 Anni2er&ary )ame relea&e1 in %o2ember 89::4 N Mi!ro&o* -in1ow& ?>6 Mi!ro&o* -in1ow& Se!on1 E1i ion6 Mi!ro&o* -in1ow& Millenni'm E1i ion DMeE6 Mi!ro&o* -in1ow& 89996 or Mi!ro&o* -in1ow& #P N =AA me)a"er , DMH,E 3ro!e&&or N Dire! #Z ?(9 or la er N :8> me)aby e& DMBE o* RAM N :(8 )i)aby e& DGBE o* *ree "ar1 1i&. &3a!e N A8 MB wi " AD Tran&*orm an1 Li)" in) !a3able N CD4 ># www.it-ebooks.info
N So'n1 !ar16 &3ea.er&6 or "ea13"one& wi " m'l i3layer 3lay N [C@(@ $iloby e& 3er &e!on1 D$B3&E mo1em or :9 MB ne wor. a1a3 er
7nderstanding 8esolution
Re&ol' ion i& "e n'mber o* 3i<el& "a !an be 1i&3laye1 on a 1i&3lay 1e2i!e6 &'!" a& a moni or or a ele2i&ion( T"e o' 3' B'ali y o* a )ame i& )oo1 or ba1 1e3en1in) on "e re&ol' ion an1 &i,e o* "e 1i&3lay 1e2i!e( T"e wor1 Ire&ol' ionJ i& o* en B'o e1 a& I1i&3lay re&ol' ion(J /o' !an e<3re&& "e re&ol' ion o* a 1i&3lay 1e2i!e in erm& o* "e n'mber o* 3i<el& on bo " "e "ori,on al an1 2er i!al a<i&( T"e re&ol' ion i& !i e1 a& Iwi1 " ( "ei)" (J For e<am3le6 i* we rea1 o' "e re&ol' ion a& I:98; ( =@>6J i mean& "a "e wi1 " i& :98; 3i<el& an1 "e "ei)" i& =@> 3i<el&( T"e B'ali y o* "e ima)e 1i&3laye1 on a 1i&3lay 1e2i!e 1e3en1& on "e re&ol' ion an1 &i,e o* "e 1e2i!e( T"e re&ol' ion !an be "i)" or low( In a lower &!reen re&ol' ion6 *ewer i em& *i on "e &!reen( Howe2er6 "e ima)e& loo. lar)er( In a "i)"er re&ol' ion6 more i em& *i on "e &!reen( In "i& !a&e6 "e ima)e& loo. &maller( T"ere*ore6 "e B'ali y o* "e ima)e 1i&3laye1 on a &mall &i,e &!reen will be )rea w"en !om3are1 o "e B'ali y o* "e ima)e 1i&3laye1 on a lar)er &!reen( T"i& i& be!a'&e "e ima)e en1& o 3i<ela e or &3rea1 o' o2er a lar)er n'mber o* in!"e&( T"ere*ore6 yo' &"o'l1 !on&i1er "e 3ro3o&e1 &!reen re&ol' ion& *or yo'r )ame in "e be)innin) o* yo'r )ame 1e&i)n( Game& !an be 3laye1 in 2aryin) &!reen re&ol' ion&( Le '& now &ee &ome e<am3le& o* )ame& "a are 3laye1 in 1i**eren re&ol' ion&( -e !an .now "ow re&ol' ion a**e! & "e 1e&i)n an1 3er*orman!e o* "e )ame "ro')" "e *ollowin) e<am3le&( E<am3le :4 T"e 2i1eo !ar1 i& GeFor!e ?C99 GT :GB DDR8( T"e moni or i& a :?7in!" LCD wi " a na i2e re&ol' ion o* :8>9 ( :98; 3i<el&( T"e )ame& are Gran1 T"e* A' o IV an1 Call o* D' y Bla!. O3&( T"e )ame& r'n &moo "ly on "e 1i&3lay 1e2i!e wi " "e 3re&!ribe1 re&ol' ion( A !"an)e in "e re&ol' ion al&o 1oe& no a**e! "e 3er*orman!e o* "e 3re2io'& )ame&( E<am3le 84 T"e 2i1eo !ar16 moni or6 an1 "e re&ol' ion remain "e &ame *or ano "er )ame4 Call o* D' y -orl1 a -ar( Howe2er6 a !"an)e in "e re&ol' ion o :98; ( =@> a**e! & "e )ame wi " re&3e! o i & 3er*orman!e( From "e 3re2io'& e<am3le&6 we in*er "a "e 1e&i)n o* "e )ame 1e3en1& on "e 2i1eo !ar1 an1 in 'rn on "e re&ol' ion( I* yo' !rea e yo'r )ame e<3li!i ly *or a 3ar i!'lar 3la *orm6 yo' !an 1e&i)n "e )ame a!!or17 in)ly6 aimin) a "e re&ol' ion o* "e &!reen o* "a 3la *orm( Howe2er6 a)ain6 i* "e &3e!i*i! 3la *orm &'33or & 2aryin) re&ol' ion&6 i !an !a'&e a 3roblem( For e<am3le6 &'33o&e yo' 1e2elo3 a )ame *or "e mobile 3la *orm( T"e 3la *orm !an be a 2arie y o* 1e2i!e&6 &'!" a& a mobile 3"one6 able 6 an1 &o on6 wi " 2aryin) &!reen &i,e&( In &'!" !a&e&6 yo' nee1 o !rea e 1i**eren )ra3"i!& *or e2ery re&ol' ion6 w"i!" i& no "e o3 imal !"oi!e( An al erna i2e i& o &e '3 a *i<e1 2i1eo re&ol' ion an1 ell "e en1 '&er o a1L'& "e moni or o "e re&ol' ion( Ano "er *a! or o !on&i1er w"ile 1e!i1in) on "e re&ol' ion& i& "e 1i&3lay mo1e( Game& !an be 3laye1 in 1i**eren 1i&3lay mo1e& on a 1i&3lay 1e2i!e( T"e&e 1i&3lay mo1e& "a2e 1i**eren re&ol' ion&( Howe2er6 )ame en)ine& o1ay are &mar eno')" o a1a3 o "e re&ol' ion& o* "e
www.it-ebooks.info
www.it-ebooks.info
#% , 2esso* @
re&3e! i2e 1i&3lay mo1e( /o' !an &e "e reB'ire1 mo1e *or yo'r )ame '&in) "e &e in)& 3ro2i1e1 in "e )ame en)ine(
-0+/AA MO $0
C$8T-"-CAT-O1 8$A A <hat are the possible display modes that you can select for an MMO8+G gameB (.;
T"e 1i&3lay mo1e& in!l'1e *'ll &!reen an1 -in1owe1( In "e *'ll &!reen mo1e6 "e )ame i& 1i&3laye1 on "e *'ll &!reen( T"i& mo1e 1oe& no 1i&3lay "e i le bar o* "e )ame( An e<am3le o* a )ame "a !an be 3laye1 in *'ll &!reen mo1e i& Pa!7Man( T"e a12an a)e o* r'nnin) "i& )ame in *'ll &!reen mo1e i& "a "e )amer !anno &ee "e men' or "e b' on 1i&3laye1 by "e o3era in) &y& em( T"i& "el3& "e 3layer o immer&e in "e )ame wi "o' 1i& ra! ion( Game& r'n on a !on&ole or mobile !an be 2iewe1 only in *'ll &!reen mo1e( Howe2er6 )ame& "a are r'n on PC& !an 1i&3lay in o "er 1i&3lay mo1e& a& well( -"en yo' 1e2elo3 yo'r )ame in *'ll &!reen mo1e6 wi " !er ain &e in)& yo'r )ame !an a1a3 o 1i**eren .in1& o* GPU6 w"i!" a1a3 & "e )ame o 1i**eren &!reen re&ol' ion&( In "e -in1owe1 mo1e6 "e )ame i& 1i&3laye1 in a &in)le win1ow on "e &!reen( Cer ain )ame&6 &'!" a& Soli aire6 !an be 3laye1 only in a win1ow .in1 o* in er*a!e( O "er )ame&6 &'!" a& Ma,e an1 Pa!7Man6 w"i!" 1o no reB'ire m'!" GPU &'33or 6 !an be r'n on "i& mo1e( Only PC '&er& !an '&e "e -in1owe1 mo1e o 3lay )ame&( T"i& mo1e "el3& "e '&er 3er*orm o "er a&.& a& well on "eir !om3' er( Howe2er6 "i& in!rea&e& "e loa1 on "e PC6 a& i "a& o "an1le m'l i3le a&.&( Fi)'re A78? &"ow& "e )ame Soli aire in "e -in1owe1 1i&3lay mo1e(
One !ommon 3roblem in bo " "e 1i&3lay mo1e& i& "a irre&3e! i2e o* "e re&ol' ion on w"i!" yo'r )ame mi)" r'n6 yo'r )ame 2i&'al mi)" loo. 1i& or e1 be!a'&e o* "e "i)"er *rame ra e& 3ro1'!e1 by 2i1eo !ar1&( T"i& !an be o2er!ome by '&in) Ver i!al Syn!"roni,a ion DVSyn!E(
C$8T-"-CAT-O1 8$A A <hat is the role of 60ync in a game displayB (.;
6$8T-CA/ 0A1C?8O1-QAT-O1 Be*ore 'n1er& an1in) VSyn! or Ver i!al Syn!"roni,a ion6 le '& 'n1er& an1 "ow a moni or 1i&3lay& an ima)e( In )eneral6 "e !om3' er 1raw& "e ima)e o be 1i&3laye1 on "e moni7 or re3ea e1ly( T"e &3ee1 o* re1rawin) i& re*erre1 o a& *rame ra e( -"ene2er "e !om3' er re*re&"e& "e 1i&3laye1 ima)e6 w"a e2er we &ee on "e moni or !"an)e&( Howe2er6 i* "e !om7 3' er re*re&"e& "i& ima)e e2en be*ore "e moni or "a& !om3le e1 1rawin) i 6 i mi)" loo. a& i* "e ima)e i& orn( VSyn! 3ro2i1e& "e &ol' ion o "i& 3roblem(
www.it-ebooks.info
VSyn! !on rol& "e re*re&" ra e& o* yo'r 1i&3lay( I re& ri! & "e 2i1eo !ar1 *rom 3ro1'!in) *rame ra e& "i)"er "an "e re*re&" ra e o* "e moni or( In o "er wor1&6 VSyn! ma.e& "e !om3' er wai 'n il "e moni or "a& 1rawn "e ima)e !om3le ely( T"ere*ore6 "e n'mber o* ime& "e ima)e i& 1rawn !anno be )rea er "an "e moni or re*re&" ra e( T"e !ommon re*re&" ra e on 1i&3lay& i& @9 HP or @9 *rame& 3er &e!on1 D*3&E( T"i& re1'!e& "e loa1 on "e )ra3"i!& !ar1 be!a'&e VSyn! &e & a limi a ion on "e n'mber o* ime& "e ima)e i& 1rawn( /o' !an 'rn VSyn! on or o**( I* VSyn! i& 'rne1 o**6 "e *rame ra e e<!ee1& "e na i2e re*re&" ra e o* 1i&3lay( T"i& !a'&e& I earin)J o* "e ima)e( Tearin) !rea e& a orn loo. be!a'&e e1)e& o* obLe! & 1i&3laye1 in "e 2i&'al *ail o line '3 D&ee Fi)'re A7A9E( T"e *rame brea.& in o wo or "ree 3ar &( Some ime&6 "e !'rren *rame *all& be"in1 "e o "er 3ar o* "e &ame *rame( T"e&e .in1& o* 2i&'al& bo "er )ame 3layer&(
"igure (-(E An e%ample of the tearing effect
T"e &ol' ion o a2oi1 earin) i& o 'rn VSyn! on( Howe2er6 in "i& !a&e6 "e VSyn! lo!.& "e re*re&" ra e o* "e moni or wi " "e *rame ra e in m'l i3le& o* @9 *or a re*re&" ra e o* @9 *3&( I !a'&e& "e 2i1eo !ar1 o ren1er ima)e& only w"en "e moni or i& *ini&"e1 1rawin)( In &'!" !a&e&6 i* "ere i& a 1ro3 in "e *rame ra e6 "en VSyn! will al&o 1ro3 a!!or1in)ly an1 !a'&e a la) in "e ima)e 1i&3lay6 w"i!" i& !all & ' erin) D&ee Fi)'re A7A:E( T"i& ma.e& "e )ame &3ee1 '3 an1 &low 1own al erna ely6 !a'&in) )rea in!on2enien!e o )amer&(
"igure (-(; An e%ample of stuttering
#$ , 2esso* @
TA2$ 1OT$
A1a3 i2e VSyn! *i<e& bo " earin) an1 & ' erin) 3roblem&( I 1ynami!ally !"an)e& VSyn! on an1 o**( -"en A1a3 i2e VSyn! i& 'rne1 on6 VSyn! al&o 'rn& on6 "'& elimina in) earin)( -"ene2er "e *rame ra e 1ro3&6 VSyn! &"' & o** a' oma i!ally6 "'& elimina in) & ' erin)( A1a3 i2e VSyn! al&o re1'!e& "e 3ower !on&'m3 ion o* "e 2i1eo !ar1( To 'rn on "e A1a3 i2e VSyn! &e in)&6 yo' nee1 o )o o "e !on rol 3anel( T"e new A1a3 i2e VSyn! mo1e in!rea&e& "e 3layabili y o* "e )ame( I enri!"e& "e 2i1eo !ar1 o ma.e "e )ame *a& er6 &moo "er6 an1 ri!"er in erm& o* e<3erien!e(
A1a3 i2e VSyn! i& 3ar o* "e Relea&e A99 1ri27 er& an1 i& !om3a ible wi " GT# @>9 an1 GeFor!e 2i1eo !ar1&(
Game& '&e lar)e 2i1eo an1 a'1io *ile&6 w"i!" o!!'3y e< en&i2e & ora)e &3a!e on a !om3' er &y& em( A11i ionally6 ne wor. )ame& in!rea&e "e loa1 on "e ne wor. an1 a.e a lon)er ime o 1ownloa1 or '3loa1( T"e be& &ol' ion o "i& 3roblem i& o !om3re&& "e 1a a in "e&e *ile&( Com3re&&ion i& "e re1'! ion o* "e 1a a o *ewer bi & by *ollowin) !er ain e!"niB'e&( T"e a12an a)e o* !om3re&&in) an a'1io or a 2i1eo *ile i& "a "e !om3re&&e1 *ile o!!'3ie& le&&er &3a!e an16 in a11i ion6 i& ran&*erable B'i!.ly "ro')" "e a2ailable !omm'ni!a ion !"annel( A !om3re&&e1 *ile !an "a2e no or 2ery ne)li)ible mo1i*i!a ion in i & B'ali y wi " re*7 eren!e o "e ori)inal *ile( /o' nee1 o 3o&&e&& "e reB'ire1 &.ill& o !om3re&& a'1io an1 2i1eo *ile& in a )ame( /o' nee1 "oro')" .nowle1)e o* "e a2ailable !om3re&&ion e!"niB'e&6 "e 2ario'& !om3re&&ion *a! or& "a nee1 o be !on&i1ere16 an1 "e &'i able me "o1& o 3er*orm !om3re&&ion o* a &3e!i*i! )ame wi "o' mo1i*yin) "e B'ali y o* i & ima)e or &o'n1(
71 $80TA1 -1G T?$ .$1$"-T0 O" COM+8$00-1G GAM$0 D'rin) "e ini ial year& o* )amin)6 )ame& &'!" a& PS86 Game!'be6 an1 #bo< "a1 o !om3ro7 mi&e on "e B'ali y o* "e a'1io( T"i& wa& be!a'&e "e be er B'ali y a'1io *ile& o!!'3ie1 oo m'!" &3a!e( I wa& al&o be!a'&e "e mi<in) an1 'nin) o* "e &o'n1& *or a 3ar i!'lar &e&&ion in a )ame wa& bro')" abo' by 1e!rea&in) or elimina in) 'nne!e&&ary &o'n1& wi " "e a33li7 !a ion o* real7 ime in era! i2e mi<er& an1 1i)i al &i)nal 3ro!e&&in) e!"niB'e&(
T"e 2i1eo *ile&6 )ra3"i!&6 an1 anima ion& in a )ame o!!'3y e2en more &3a!e "an "e a'1io *ile&( Howe2er6 a12an!emen & in !om3re&&ion e!"niB'e& o* a'1io an1 2i1eo *ile& "a2e 3ro7 2i1e1 a &ol' ion o "i& 3roblem( To1ay6 !om3re&&in) a )ame *ile im3lie& 1e!rea&in) "e &i,e o* "e a'1io an1 2i1eo 1a a *ile&( T"e main a12an a)e& in!l'1e in!rea&e in "e &3ee1 o* "e )ame an1 re1'! ion in "e & ora)e &3a!e on "e 1i&.(
$1A./-1G COM+8$00-O1 Da a re1'n1an!y i& "e main *a! or "a enable& !om3re&&ion( In )eneral6 "ere are *o'r y3e& o* re1'n1an!ie& in a'1io or 2i1eo *ile&( Table A78 li& & "e&e *o'r y3e& an1 "eir 1e&!ri3 ion&( CAT$GO8-Q-1G COM+8$00-O1 T$C?1-O7$0 -e !an !la&&i*y "e !om3re&&ion e!"niB'e& in o wo main y3e&6 lo&&le&& an1 lo&&y( Lo&&le&& !om3re&&ion6 a& "e name &'))e& &6 a!!o'n & *or 1a a re1'! ion wi "o' any 1a a lo&& a* er !om3re&&ion( T"ere*ore6 "e ori)inal 1a a !an be re!on& r'! e1 *rom "e !om7 3re&&e1 1a a wi "o' lo&in) any in*orma ion( I i& al&o .nown a& bi 73re&er2in) or re2er&ible !om3re&&ion &y& em(
www.it-ebooks.info
8$
71 A1CA
TA+$
"$AT78$ <ithin an audio or a !ideo frame# there e%ists considerable correlation between the ad:acent samples or data items. <hen collecting data from multiple sources =for e%ample# cameras># there e%ists considerable correlation between the samples from these sources. This method uses the freJuency area and focuses on the relationship between the occurrences of changes in the data. There e%ists considerable correlation between the samples in different time segments. This is applicable for ; =onedimensional> data# ; =one-dimensional> signals# and audio. Makes use of the perception signals from the human !isual system.
0patial 0pectral
Temporal
+sycho-!isual
Lo&&y !om3re&&ion6 on "e o "er "an16 in2ol2e& &ome lo&& o* 1a a 1'rin) re1'! ion( T"e ori)inal in*orma ion !anno be re!on& r'! e1 w"en "e *ile i& 1e!om3re&&e1( T"i& e!"niB'e i& '&e*'l *or !om3re&&in) a'1io an1 2i1eo *ile&( T"e main a12an a)e o* "i& e!"niB'e i& "a i nei "er !om3romi&e& "e B'ali y o* "e !om3re&&e1 *ile wi " a )i2en bi 7ra e nor re1'!e& "e bi 7 ra e o a!"ie2e "e 1e&irable B'ali y(
A1A/AQ-1G T?$ COM+8$00-O1 +8OC$00 E2ery !om3re&&e1 a'1io or 2i1eo *ile i& a&&o!ia e1 wi " a CODEC6 w"i!" & an1& *or !o1er7 1e!o1er( A !o1e! i& a 3ro)ram "a *a!ili a e& lo&&le&& or lo&&y !om3re&&ion an1 1e!om3re&&ion o* 1i)i al *ile&(
A 2i1eo !o1e! *a!ili a e& !om3re&&ion or 1e!om3re&&ion o* 1i)i al 2i1eo *ile& by mo& ly a33lyin) "e lo&&y 1a a !om3re&&ion e!"niB'e( Some !o1e!& al&o '&e "e lo&&le&& 1a a !om3re&&ion e!"niB'e( E<am3le& o* 2i1eo !o1e!& in!l'1e4 N MPEG7; Par 8 !o1e!& DDi2# Pro Co1e!6 #2i16 FFm3e) MPEG7;6 an1 Ai2<E N H(8@;0MPEG7; AVC !o1e!& D<8@;6 %ero Di)i al6 F'i!.Time H(8@;6 an1 Di2# Pro Co1e!E N Mi!ro&o* !o1e!& D-MV D-in1ow& Me1ia Vi1eoE an1 MS MPEG7;2AE N On8 !o1e!& DVP@6 VP@7E6 VP@7S6 VP=6 an1 VP>E N A11i ional !o1e!& DD%<H6 Soren&on A6 Soren&on S3ar.6 RealVi1eo6 Cine3a.6 an1 In1eoE An a'1io !o1e! *a!ili a e& !om3re&&ion or 1e!om3re&&ion o* 1i)i al a'1io 1a a6 wi " re*er7 en!e o a 3ar i!'lar a'1io *ile *orma or & reamin) me1ia a'1io *orma ( Mo& !o1e!& *'n! ion a& librarie& wi " in er*a!e& o one or many m'l ime1ia 3layer&( E<am3le& o* !ommon a'1io !o1e!& are MPEG ; DMo ion Pi! 're E<3er & Gro'3E6 -AV D-a2e*ormE6 an1 MDI(
www.it-ebooks.info
#! , 2esso* @
N A2i DA'1io Vi1eo In erlea2e1E !om3re&&ion4 U&e& 1i**eren !om3re&&or& o balan!e "e *ile &i,e *or "e 1e&irable B'ali y( T"e main 1rawba!. i& "a "e *ile &i,e i& lar)e e2en a* er !om3re&&ion6 w"i!" 3o&e& 3roblem& w"en ran&*errin)( N Di2# !om3re&&ion4 Pro2i1e& "i)" B'ali y !om3re&&ion( S'33or & m'l i3le lan)'a)e& an1 3ro2i1e& )oo1 2i&'al B'ali y an1 *a& 3er*orman!e( In er*rame !o1in) '&e& &'!!e&&i2e *rame& in a &eB'en!e o !om3re&& "e !'rren *rame in a 2i1eo( In o "er wor1&6 "i& !o1in) e!"niB'e !om3are& "e 1i**eren!e& an1 &imilari ie&
TA2$ 1OT$
o* "e !'rren *rame wi " "e ne< *rame in a 2i1eo( I "en 3ro!e&&e& only "e &i)ni*i!an !"an)e& in 3ar i!'lar 3i<el&( T"i& !o1in) 3ro2i1e& enormo'& 1a a re1'! ion( In ra*rame6 on "e o "er "an16 !om3re&&e& ea!" *rame in a 2i1eo in1e3en1en ly( Le '& 'n1er& an1 &ome o* "e&e 2i1eo !om3re&&ion y3e& in 1e ail6 w"i!" are 3o3'larly '&e1 in )ame&( N M7+PEG Com3re&&ion4 M7+PEG in2ol2e& in ra*rame !o1in) only( T"e ab&en!e o* in er*rame !o1in) re& ri! & i & 3er*orman!e w"en !om3are1 wi " i & !o'n er3ar &6 &'!" a& MPEG7:6 MPEG7;6 an1 H(8@;( M7+PEG "a& re1'!e1 3ro!e&&in) an1 memory reB'iremen &( Frame& wi " lar)e6 &moo " ran&i ion& or mono one &'r*a!e& !om3re&& well6 an1 .ee3 "eir ori)inal 1e ail wi " li le 2i&ible !om3re&&ion o* 1a a( Ea!" *rame in "e 2i1eo i& &a2e1 a& a +PEG *ile( N H(8@: Com3re&&ion4 H(8@: !om3re&&ion i& well a1a3 e1 *or 2i1eo ele!omm'ni!a ion a33li!a ion&6 &'!" a& 2i1eo !on*eren!in) an1 2i1eo ele3"one a33li!a ion& o2er ISD% ele3"oni! !onne! ion&( N MPEG Com3re&&ion4 MPEG & an1& *or Mo2in) Pi! 're E<3er Gro'3( Many & an1ar1&6 &'!" a& MPEG7:6 MPEG786 MPEG7A6 MPEG7;6 MPEG7=6 an1 MPEG78:6 "a2e been in '&e *rom ime o ime( O* "e&e6 MPEG7: an1 MPEG78 are *inali,e1 & an1ar1& an1 are '&e1 !'rren ly in a 2arie y o* a33li!a ion&( MPEG7: *o!'&e& on 2i1eo re&ol' ion& *rom AC8 ( 8;9 3i<el& a A9 *3& D*or %TSC 2i1eo &y& emE an1 AC8 ( 8>> 3i<el& a 8C *3& D*or PAL 2i1eo &y& emE '3 o ;9?C ( ;9?C 3i<el& a @9 *3&( I & !ommon name i& So'r!e In3' Forma DSIFE 2i1eo &y& em an1 i i& &'i able *or only 3ro)re&&i2e &!an&( T"ere*ore6 i 1oe& no &'33or in erla!e1 2i1eo a33li!a ion&6 &'!" a& in broa1!a& ele2i&ion a33li!a ion&( I i& '&e1 *or VCD&( MPEG78 &'33or & bo " 3ro)re&&i2e an1 in erla!e1 &!an&( I i& '&e1 *or DVD&( In erla!e1 2i1eo i& a e!"niB'e '&e1 *or 1rawin) a 2i1eo ima)e on a 1i&3lay 1e2i!e &'!" a& a ele2i&ion( T"i& e!"niB'e 1i&3lay& ea!" line o* 3i<el& by '&in) wo *iel1& *or a &in)le *rame( One *iel1 1i&3lay& all "e o11 line& in "e ima)e an1 "e o "er *iel1 1i&3lay& all "e e2en line& o* "e ima)e( Pro)re&&i2e &!annin) i& a e!"niB'e in w"i!" all "e line& in an ima)e are 1i&3laye1 in a &eB'en!e(
TA2$ 1OT$
A7 -O COM+8$00-O1 TA+$0 Some o* "e !ommonly '&e1 lo&&y !om3re&&ion y3e& *or a'1io 1a a !om3re&&ion in!l'1e4 N Silen!e !om3re&&ion4 T"e &ilen!e !om3re&&ion me "o1 in2ol2e& re!ei2in) &3ee!" &am3le&6 & orin) "em in "e memory6 an1 analy,in) "e &am3le& la er o 1e ermine "e &ilen!e 3erio1&( T"e&e 3erio1& o* &ilen!e are "en !om3re&&e1 an1 re& ore1 ba!. in "e memory(
www.it-ebooks.info
N A1a3 i2e Di**eren ial P'l&e Co1e Mo1'la ion DADPCME4 T"i& me "o1 in2ol2e& !on2er&ion o* analo) &o'n1 1a a in o a & rin) o* 1i)i al binary !o1e( Re)'lar &am3le& o* "e analo) &o'n1 are a.en6 an1 "e 1i**eren!e be ween "e a! 'al 2al'e& o* ea!" &am3le an1 i & 1eri2e1 2al'e D)a "ere1 *rom 3re2io'& &am3le&E i& 3ro!e&&e1 an1 !on2er e1 o 1i)i al &i)nal( N Linear Pre1i! i2e Co1in) DLPCE4 Linear 3re1i! i2e !o1in) en!o1e& a'1io &i)nal a a low bi ra e( T"i& me "o1 &e3ara e& "e e**e! & o* &o'n1 &o'r!e &'!" a& "e 2o!al !or1&6 an1 *il er6 "e 2o!al ra! *rom an a'1io &i)nal( I en!o1e& "e 1a a in a &3ee!" &i)nal in o a &maller &3a!e *or ran&mi&&ion o2er a limi e1 !"annel( N Co1e E<!i e1 Linear Pre1i! or DCELPE4 T"i& me "o1 *ollow& "e 3ro!e&& o* "e LPC me "o1 an1 ran&mi & "e 3arame er& o* "e mo1el& a "e ra e ;(> .bi &0&e! alon) wi " error&(
0T8$AM-1G A7 -O A1 6- $O C'rren ly6 & reamin) a'1io an1 2i1eo y3e& are "e mo& !ommon 1a a 1eli2ery me1ia *or "e In erne an1 o "er m'l ime1ia ne wor.&( E<am3le& o* & reamin) a'1io an1 2i1eo '&e1 in )amin) &ol' ion& are RealA'1io an1 S"o!.wa2e6 re&3e! i2ely( 0$/$CT-1G $0-8A./$ A7 -O "O8MAT0 A 2arie y o* *ile *orma & i& now a2ailable *or re!or1in) an1 3layin) 1i)i al &o'n1 an1 m'&i! *ile&( Some 1e3en1 on "e &o* ware "a nee1& o be in& alle1 *or "eir a33li!a ion6 w"erea& o "er& nee1 &3e!i*i! o3era in) &y& em&(
Be*ore !"e!.in) "e a2ailable a'1io *ile *orma &6 i i& im3or an o 'n1er& an1 "e 1i**eren!e be ween an a'1io *ile *orma an1 an a'1io !o1e!( A& 1i&!'&&e1 3re2io'&ly6 an a'1io !o1e! i& a !om3' er 3ro)ram "a enable& !om3re&&ion or 1e!om3re&&ion o* a 1i)i al a'1io 1a a( T"e 3ro!e&& o* !om3re&&ion or 1e!om3re&&ion i& 3er*orme1 ba&e1 on "e &3e!i*i!a ion& in a )i2en a'1io *ile *orma ( An a'1io *ile *orma i& "e *orma o* & orin) "e 1i)i al a'1io 1a a D'n!om3re&&e1 or !om3re&&e1E on a !om3' er &y& em(
A7 -O "O8MAT TA+$0 A'1io *orma *ile& are !la&&i*ie1 ba&e1 on w"e "er "ey & ore 'n!om3re&&e1 or !om3re&&e1 1a a( On "i& ba&i&6 "ere are "ree y3e& o* a'1io *orma *ile&4
N Un!om3re&&e1 DE<am3le4 -AV a'1io *ileE N Lo&&le&& !om3re&&e1 DE<am3le4 -MA a'1io *ileE N Lo&&y !om3re&&e1 DE<am3le4 MPA an1 RealA'1io *ile&E Le '& loo. a "e 1i**eren a'1io *orma *ile& in brie*( N -AV A'1io Forma File4 -AV a'1io *orma *ile& "a2e "e (wa2 e< en&ion an1 & ore &o'n1& in *ile& 1e2elo3e1 o)e "er by Mi!ro&o* an1 IBC( Mo& o* "e a33li!a ion& in -in1ow& &'33or "i& *ile *orma ( N -MA A'1io Forma File4 -MA a'1io *orma *ile& "a2e "e (wma e< en&ion an1 !om3re&& 1a a a a "i)"er ra e w"en !om3are1 wi " "e MPA *ile *orma ( In a11i ion6 -MA !an !om7 3re&& *ile& o* any &i,e an1 ma.e& "em &'i able *or 1i**eren !onne! ion &3ee1& or ban1wi1 "&( N MPA A'1io Forma File4 MPA a'1io *orma *ile& "a2e "e (m3A e< en&ion an1 are 1eri2e1 *rom "e MPEG *ile y3e wi " a'1io layer A *or !om3re&&in) "e a'1io &i)nal&( For e<am3le6 '&in) "i& a'1io *orma re&'l & in !om3re&&in) &o'n1 1a a wi " a bi ra e o* :;::(8 .ilobi &0&e! o ::87:8> .ilobi &0&e! wi "o' !om3romi&in) "e &o'n1 B'ali y( N Real A'1io Forma File4 Real a'1io *orma *ile& "a2e "e (ra or (ram or (rm e< en&ion an1 "el3 in 3layin) 1i)i al a'1io *ile& in real ime( To '&e "i& *ile *orma 6 i i& man1a ory o in& all RealPlayer D*or -in1ow& or Ma!E6 w"i!" i& *reely a2ailable on "e In erne (
www.it-ebooks.info
!& , 2esso* @
6- $O "O8MAT TA+$0 A n'mber o* 2i1eo *orma & are a2ailable( Some o* "e mo& 3o3'lar one& are "e *ollowin)4 N DVD Vi1eo Forma 4 DVD '&e& "e o3 i!al & ora)e e!"nolo)y( I !an be re!or1able6 &'!" a& DVD7R6 DVD7RAM6 an1 DVD7R-6 or a33li!a ion7ba&e16 &'!" a& DVD7Vi1eo6 DVD7 Vi1eo Re!or1in) DDVD7VRE6 an1 DVD7DVD A'1io Re!or1in) DDVD7ARE( T"ere are al&o !'& omi,e1 DVD *orma & *or )ame !on&ole&6 &'!" a& Sony PlayS a ion an1 Mi!ro&o* #bo<( N Fla&" Vi1eo Forma 4 T"e !'rren 2er&ion& o* Fla&"6 namely 2er&ion& @ an1 =6 &'33or *'ll mo ion 2i1eo an1 & reamin) 2i1eo6 re&3e! i2ely( Fla&" i& '&er7*rien1ly an1 a1a3 & o all en2ironmen &( U&er& !an !rea e "eir own in era! i2e me1ia !on en wi " )ra3"i!& an1 anima ion&6 an1 3er&onali,e1 me1ia 3layer& wi " !'& om !on rol&( N F'i!.Time Vi1eo Forma 4 F'i!.Time i& a m'l ime1ia e!"nolo)y "a e**i!ien ly mana)e& 2i1eo6 a'1io6 anima ion6 m'&i!6 an1 2ir 'al reali y en2ironmen &( N RealMe1ia Vi1eo Forma 4 RealMe1ia i& a m'l ime1ia e!"nolo)y an1 i& wi1ely '&e1 *or & reamin) !on en o2er "e In erne ( N -in1ow& Me1ia Vi1eo Forma 4 -in1ow& Me1ia i& one o* "e mo& 3o3'lar e!"nolo)ie& a2ailable *or & reamin) or 1ownloa1in) a'1io or 2i1eo( TOO/0 "O8 COM+8$00-O1 O" GAM$0 Com3re&&ion o* )ame& reB'ire& a 2arie y o* ool&( O* "e&e ool&6 "e mo& !ommon are Pen!o1er an1 Ra1 Game Tool&( N Pen!o1er4 Pen!o1er i& an API7ba&e1 2i1eo en!o1in) &er2i!e "a i& a2ailable online( I !on2er & 2i1eo& *or a web&i e6 an a33li!a ion6 or a 2i1eo library in o *orma & "a are a1a3 7 able o "e mobile 3"one or o "er 1e&irable 1e2i!e( I &'33or & mo& ly all "e 2i1eo an1 a'1io !o1e!&( Pen!o1er mainly *o!'&e& on 2i1eo en!o1in) alon) wi " a'1io en!o1in)( N Bin. Vi1eo4 Bin. Vi1eo i& 1e2elo3e1 by RAD Game Tool&( I i& a 2i1eo !o1e! *or )ame&(
TA2$ 1OT$
T"e y3e o* !om3re&&ion e!"niB'e& *or a )ame 1e3en1& on "e )ame en)ine "a yo' '&e(
(:/22 ('MMA8;
-1 T?-0 /$00O1# AO7 /$A81$ H I Graphics type means the medium of graphics that a game designer uses to create the game design elements. I There are two types of graphics# 9 and ( . I 9 graphics depict images in the two-dimensional model. I ( graphics depict images in a real-time three-dimensional model. I A graphical design element enhances the look and feel of images. I The !arious !isual design elements are bitmaps# sprites# !ector graphics# lighting# blending# te%t# te%tures# ( geometry# paralla% mapping# and sprite font. I The user interface =7-> layout constitutes all of the 7- elements. I 7- concept is the idea behind the making of 7- layout. I 7- components generally reside within the game story or within the game space. iegetic# spatial# meta# and nondiegetic are the !arious types of 7- components. I iegetic components e%ist within both the game story and the game space. I 0patial components e%ist in the game space. They pro!ide e%tra information on a game ob:ect or character to the player# which eliminates the necessity of the player :umping to menu screens to seek more information. I Metacomponents e%ist as part of the game story alone. Aou can use metacomponents to e%press effects such as a blood spatter or cracked glass. I 1ondiegetic components are not part of the game story or the game space. These components can ha!e their own !isual treatment and players can completely customiGe them.
www.it-ebooks.info
I I I I I I I I I I I I I I I I I I I I
Other 7- elements that you can use in your games include the menu# heads-up display =?7 ># and buttons. A ?7 7- pro!ides game-specific information to the player through !isual representations. A rendering engine abstracts the communication between the graphics hardware# such as the graphics-processing unit =G+7> or the !ideo card and the respecti!e de!ice dri!ers through a set of A+-s. irect4 is the one of the commonly used rendering engines. -t is from Microsoft and is a series of A+-s that handles high performance multimedia applications including games. 0ome of the collections of A+-s in irect4 include irect( # irect9 # irect0ound( # irect+lay# and irect-nput. irect( A+-s e%pose the ad!anced features of the ( graphics card. Aou can use irect( to enhance the entire graphical feel of the game by pro!iding better display. irect0ound is a set of A+-s that pro!ides communication between multimedia applications# including your game applications and the sound card dri!er. irect+lay pro!ides a set of A+-s that pro!ides an interface between your game applications and communication ser!ices such as the -nternet or local networks. irect-nput is a set of A+-s that helps your game application collect input from the players through the input de!ices. Aou ha!e to pro!ide your game user the set of minimum reJuirements that should be a!ailable for your game to initialiGe smoothly on the chosen platform. The word Cresolution#D which is often referred to as Cdisplay resolution#D is the number of pi%els that can be displayed on a display de!ice such as a monitor or tele!ision. The design of your game depends on the !ideo card# and in turn the resolution. The different display modes on which your game can be played are full screen# 60ync# and <indowed. 60ync helps your game run without tearing. ?owe!er# it causes stuttering of the image displayed. Adapti!e 60ync is a new technology that eliminates the tearing and stuttering of images. This technology turns 60ync on3off automatically as reJuired. -n the <indowed mode# your game appears in a window. Only +C users can a!ail this mode. Compression helps to condense the !ideo and audio file siGe in a game. The two main types of compression techniJues are lossless compression and lossy compression. CO $C =coder-decoder> is a program that facilitates lossless or lossy compression and decompression of digital files. Compression of games reJuires a !ariety of tools. The most common tools are Qencoder and 8ad Game Tools.
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.&
3ro2i1e1( :( QQQQQQQQQQQQQ i& a AD e!"niB'e "a "el3& "e )ame obLe! & loo. "ree71imen&ional6 wi " more a33aren 1e3 "( 8( QQQQQQQQQQQQQQ "el3& 1raw e< in yo'r )ame 2i&'al&( A( QQQQQQQQQQQQQQQ ima)e i& re3re&en e1 in 3i<el&( ;( QQQQQQQQQQ i& an e<am3le o* a m'l i3layer online e< )ame( C( QQQQQQQQQ API e<3o&e& "e a12an!e1 *ea 're& o* "e AD )ra3"i!& !ar1(
www.it-ebooks.info
!A , 2esso* @
@( QQQQQQQQQQQ 3ro2i1e& a &e o* API& "a "el3& yo'r )ame a33li!a ion !olle! in3' *rom "e 3layer& "ro')" "e #bo< !on&ole( =( QQQQQQQQQ e!"nolo)y "el3& 3re2en earin) o* "e ima)e by re& ri! in) "e 2i1eo !ar1 *rom 3ro1'!in) *rame ra e& "i)"er "an "e re*re&" ra e o* "e moni or( >( QQQQQQQQQQQQ an1 QQQQQQQQQQQ are "e wo y3e& o* !om3re&&ion e!"niB'e&( ?( QQQQQQQQ !om3re&&ion 3ro2i1e& a lar)er *ile &i,e e2en a* er !om3re&&ion( :9( QQQQQQQQQQQ !om3re&&ion y3e !om3re&&e& "e 3erio1& o* &ilen!e in &3ee!" &am3le&(
Multiple Choice
Cir!le "e le er or le er& "a !orre&3on1 o "e be& an&wer( :( In yo'r a! ion )ame6 yo' !rea e a &!ene in w"i!" "e 3layer !"ara! er a&&a'l & "e 2illain !"ara! er on "i& "an1( -"i!" o* "e *ollowin) 1e&i)n elemen & !an be '&e1 o !rea e "e e**e! o* "e bro.en *in)er& o* "e 2illain !"ara! erR a( S3ri e b( Paralla< ma33in) !( Ve! or )ra3"i!& 1( Te< 're& 8( /o' 1e2elo3 an a12en 're )ame( /o' are reB'ire1 o mimi! a !ell b'il wi " bri!. wall& *or a 3ar i!'lar &!ene( -"i!" o* "e *ollowin) e!"niB'e& wo'l1 yo' !"oo&e o 3ro2i1e an ill'&ion o* 1e3 " on "e &'r*a!e o* "e wallR a( S3ri e b( Paralla< ma33in) !( Li)" in) 1( AD )eome ry A( In yo'r &3or & )ame6 w"i!" o* "e *ollowin) 1e&i)n elemen & wo'l1 yo' !"oo&e o 1i&7 3lay "e &!ore& o* "e 3layer&R a( S3ri e *on b( Paralla< ma33in) !( S3ri e 1( AD )eome ry ;( /o' 1e2elo3 an a! ion )ame( /o' wan o 3ro2i1e o3 ion& *or "e 3layer& o !"oo&e a &'i able wea3on be*ore an a a!.( -"i!" o* "e *ollowin) UI !om3onen & wo'l1 yo' !"oo&eR DC"oo&e all "a a33ly(E a( S3ri e b( Die)e i! !om3onen !( %on1ie)e i! !om3onen 1( Men' C( In an a! ion )ame6 yo' 1e!i1e o &"ow "e balan!e amo'n o* amm'ni ion in "e 3layer !"ara! erH& )'n( -"i!" o* "e *ollowin) UI !om3onen & wo'l1 be& 1i&3lay "e in*orma ionR a( HUD b( %on1ie)e i! !om3onen !( S3a ial !om3onen 1( AD )eome ry @( /o' wo'l1 li.e o 3ro2i1e "e '&er& o* yo'r )ame wi " )ame &e&&ion&( -"i!" o* "e *ol7 lowin) API& 1o yo' "in. wo'l1 *a!ili a e )ame &e&&ion&R a( Dire! In3' b( Dire! Play !( Dire! So'n1 1( #In3'
www.it-ebooks.info
=( /o' are !rea in) a )ame *or PC '&er&( -"i!" o* "e *ollowin) 1i&3lay mo1e& wo'l1 yo' !"oo&e *or yo'r )ameR DC"oo&e all "a a33ly(E a( F'll &!reen b( -in1owe1 !( VSyn! 1( A1a3 i2e VSyn! >( /o' 1e!i1e o '&e M7+PEG !om3re&&ion in yo'r )ame( -"i!" o* "e *ollowin) 1a a re1'n1an!y y3e& 1oe& M7+PEG Com3re&&ion elimina eR a( S3a ial b( S3e! ral !( Tem3oral 1( P&y!"o72i&'al ?( /o' '&e !om3re&&ion ool& o !om3re&& yo'r )ame( -"i!" o* "e *ollowin) are !om3re&7 &ion ool&R DC"oo&e all "a a33ly(E a( Pen!o1er b( Bin. Vi1eo !( Di2# Com3re&&ion 1( Co1e E<!i e1 Linear Pre1i! or DCELPE :9( In yo'r )ame6 yo' 1e!i1e o !"oo&e 2i1eo an1 a'1io *orma & "a are a2ailable by 1e*a'l in all "e !om3' er &y& em&( -"i!" o* "e *ollowin) *orma & &"o'l1 yo' !"oo&eR a( AVI an1 -AV b( M+PEG an1 -MA !( H(8@: an1 Real A'1io 1( H(8@: an1 -MA
, Competency
Assessment
0cenario (-;H 0electing Graphics Type
/o' are !rea in) a )ame *or mobile 1e2i!e&( E<3lain wi " !om3ari&on amon) 8D an1 AD w"i!" )ra3"i! y3e will be& &'i yo'r )ame(
, +roficiency
Assessment
0cenario (-(H e!eloping 6isual Theme and 7- Concept
/o' are 1e2elo3in) a *an a&y )ame *or "e mobile 3la *orm( De2elo3 "e 2i&'al "eme an1 "e UI !on!e3 *or yo'r )ame(
www.it-ebooks.info
/$00O1
:3; T38M(
anisotropic filtering collision detection collision response filter fi%ed step game loop frames per second =fps> game loops gameflow general-purpose computing on graphics processing unit =G+G+7> graphics pipeline ?igh /e!el 0hading /anguage =?/0/> interpolation linear filtering mipmap nonplayer characters =1+C> per-pi%el lighting physics engine physics processing unit =++7> physics simulation pi%el shader point filtering pro:ection matri% pro:ection space scene hierarchy scripted e!ents shader sprite animation te%els te%ture mapping !ariable step game loop !erte% shader !iew matri% !iew space world matri% world space
!%
www.it-ebooks.info
S e2e -a &on wor.& a Con o&o Gamin) In!(6 an1 lea1& "e 1e2elo3men eam( Hi& !om3any i& 1e2elo3in) a *ir& 73er&on &"oo er DFPSE )ame *or !on&ole an1 !om3' er &y& em&( T"e eam "a& 1e&i)ne1 "e )ameH& 2i&'al worl1( T"ey are now in "e 3ro!e&& o* 1e&i)nin) 2ario'& !om3onen & *or "eir )ame '&in) #%A ;(9( A& a *ir& & e36 S e2e an1 "i& eam 1e!i1e o 3ro2i1e a )oo1 )ame*low *or "eir )ame( For "i&6 "ey i1en i*y a well71e&i)ne1 &eB'en!e o* !"allen)e& an1 rewar1& *or "eir )ame in or1er o mo2e "e )ame & ory *orwar1( T"ey &eB'en!e "e !"allen)e& in &'!" a way "a i in!rea&e& "e )ameH& !om3le<i y a ea!" le2el &'!!e&&i2ely( T"ey al&o 1e!i1e o ' ili,e e2ery elemen o* "e )ame e**i!ien ly "ro')" o3 imi,in) "e & a e& o* "eir )ame( T"i& en&'re& "a "eir )ame r'n& &moo "ly a!ro&& 1i**eren 3la *orm&( T"e !en ral !om3onen o* any )ame 1e&i)n i& )ame loo3( S e2eH& eam im3lemen & "e main loo3 in #%A o "el3 "e )ame r'n &moo "ly irre&3e! i2e o* "e 3layerH& in3' ( Player& in era! wi " a )ame "ro')" obLe! & an1 !"ara! er&( To ma.e "e&e obLe! & an1 !"ara! er& !ome ali2e on "e &!reen6 S e2eH& eam a11& "e min' e& 1e ail o "e&e )ame elemen &6 &'!" a& "e y3e& o* mo2emen & !"ara! er& !an ma.e6 "e a&.& "ey !an 3er*orm6 an1 &o on( Moreo2er6 "e eam al&o 1e!i1e& o &im'la e ar i*i!ial in elli)en!e *or "eir )ame !"ara! er& o "el3 re ain "e in ere& o* 3layer&(
Creating Gameflow
Game*low i& "e 3ro)re&&ion o* "e )ame *rom one & a e o ano "er & a e( I !om3ri&e& a &eB'en!e o* !"allen)in) a&.& an1 3ro2i1e& rewar1& o 3layer& o mo i2a e !om3le ion( Game*low ma.e& 3layer& e<3erien!e "e )ame an1 )i2e& "em a &en&e o* a!!om3li&"men (
C$8T-"-CAT-O1 8$A A <hat are the different aspects of a gameflowB (.9
Vi1eo )ame& o* en "a2e a &erie& o* !"allen)in) a&.& or !om3le< &i 'a ion&( T"e )oal o* "e )ame i& *or "e 3layer& o !om3le e "e a&.& an1 &ol2e "e &i 'a ion& o re!ei2e rewar1&( T"e rewar1 !an be any "in)Kmo2in) o a "i)"er )ame le2el6 ano "er li*e6 loo 6 new wea3on&6 a!!e&& o &3e!i*i! area& o* "e )ame6 e< ra 3oin &6 an1 &o on( T"e&e rewar1& "el3 mo i2a e "e
www.it-ebooks.info
!$ , 2esso* %
3layer& o 3lay "e ne< le2el or a.e '3 "e ne< !"allen)e an1 !on in'e in "e )ame( Goo1 )ame*low en&'re& "a al "o')" "e a&.& are !"allen)in)6 "e 3layer& !an !om3le e "em( I* "e a&.& !anno be !om3le e1 e2en a* er m'l i3le rie&6 "e 3layer& !an )e *r'& ra e1 an1 )i2e '3 on "e )ame( T"e *ea 're& o* a )ame*low are4 N C"allen)e N Pa!e N S!ri3 e1 e2en & N In& in! i2e rainin) area& N Trial an1 error N In& in! i2e 3rom3 N Player 2o!ab'lary
C?A//$1G$ C"allen)e& are "e .ey &o'r!e o* in era! ion in a )ame( A !"allen)e mo i2a e& "e 3layer& o '&e "eir lo)i! an1 &.ill o 3er*orm &ome a&.& or &ol2e a 3',,le o mo2e a"ea1 in "e )ame( -i "o' !"allen)e&6 "e )ame be!ome& borin)( For e<am3le6 a &im3le )ame o* Te ri& !an be!ome borin) i* "ere i& no !"allen)e o* 3re2en in) "e blo!.& *rom rea!"in) "e o3 o* "e win1ow( T"e !"allen)e *or!e& "e 3layer& o "in. an1 '&e lo)i! o 3la!e "e blo!.& in "e a33ro3ria e 3o&i ion&(
On "e o "er "an16 i i& al&o ne!e&&ary o remember "a "e !"allen)e m'& "a2e a &ol' ion( I* "e 3layer& 1o no !om3le e "e !"allen)e e2en a* er m'l i3le rie&6 "ey mi)" & o3 3layin) "a )ame( T"'&6 w"en 1e&i)nin) a !"allen)e6 yo' m'& remember o ma.e i ea&y o re&ol2e a* er a33lyin) lo)i!al "in.in)( /o' m'& al&o remember "a yo' &"o'l1 no *or!e "e 3layer& in o '&in) a &3e!i*i! !o'r&e o* a! ion( A& a 1e&i)ner6 yo' mi)" "in. o* a mean& o* re&ol2in) "e 3',,le *or !om3le in) "e a&.( Howe2er6 "e 3layer& mi)" no be able o rela e o "a lo)i! an16 a& a re&'l 6 wo'l1 no be able o !om3le e "e !"allen)e( T"ere*ore6 i i& e&&en ial "a "e !"allen)e "a& more "an one &ol' ionM wo or "ree &ol' ion& are i1eal( T"i& in!rea&e& "e !"an!e& o* "e 3layer& !om3le in) "e a&. or &ol2in) "e 3',,le6 boo& & "eir !on*i1en!e6 an1 mo i2a e& "em o a.e '3 more !"allen)e&(
+AC$ Pa!e re*er& o "e ra e a w"i!" "e e<!i emen "a33en& in a )ame( A )ame &"o'l1 aim o .ee3 "e e<!i emen le2el o* a 3layer "i)" 'n il "e en1 o* "e )ame(
T"e 3a!e o* a )ame mi)" 2ary wi " "e )enre o* "e )ame( For e<am3le6 "e 3a!e o* an a! ion )ame i& *a& er "an a lo)i! or & ra e)y7ba&e1 )ame( Ano "er *a! or "a a**e! & "e 3a!e o* a )ame i& "e &.ill le2el( A )ame &"o'l1 3ro2i1e 1i**eren o3 ion& o 1i**eren 3layer& 1e3en1in) on "eir &.ill le2el&( For e<am3le6 in "e mine&wee3er )ame6 "e mine& o be i1en i*ie1 in!rea&e in n'mber wi " "e in!rea&e in 1i**i!'l y le2el *rom be)inner o e<3er ( Al erna i2ely6 "e 3layerH& &.ill !an be )ra1'ally en"an!e1 by 3ro2i1in) learnin) o33or 'ni ie& a "e ini ial le2el& o* "e )ame( T"i& "el3& "e 3layer& o be rea1y *or more 1i**i!'l !"allen)e& in "e la er le2el&( Ano "er o3 ion o main ain "e 3a!e o* "e )ame i& o &e ime limi & o !om3le e a 3ar i!'lar a&. or 3',,le( In &"or 6 a 1e&i)ner &"o'l1 no *or!e "e 3a!e le2el on "e 3layer&( Le "e 3layer& 3lay a "eir 3a!e( A 3er*e! &ol' ion o main ain "e 3a!e o* "e )ame i& o 3ro2i1e 1i**eren & yle& o* 3layin) "e )ame a ea!" le2el(
www.it-ebooks.info
0C8-+T$ $6$1T0 A )ame !an "a2e &!ri3 e1 e2en &6 w"i!" are minor obLe! & or e2en & "a are 3ro)ramme1( T"e&e &!ri3 e1 e2en & are '&'ally ri))ere1 by an a! ion *rom "e 3layer(
Le '& '&e "e e<am3le o* a )ame "a "a& an obLe! wi " "e ima)e o* *ire on i ( -"en "e 3layer !li!.& "a obLe! 6 *ire i& 1i&3laye1 on "e &!reen( T"e be& '&e o* &!ri3 e1 e2en & i& o ea!" "e 2ario'& a&3e! & o* a )ame o "e 3layer&( T"e&e e2en & 1o no in err'3 "e *low o* "e )ame b' &im3ly6 3ro2i1e an o33or 'ni y o "e 3layer& o learn abo' a mo2e or a *ea 're o* "e )ame wi "o' lea2in) "e )ame( In &ome &i 'a ion&6 yo' !an e2en )i2e &!ri3 e1 e2en & an im3or an role in "e )ame3lay( For e<am3le6 w"en a 3layer rea!"e& a !er ain area in "e )ame worl16 yo' !an 1e&i)n "e )ame o 3ro2i1e "e 3layer wi " a &3e!ial rea&'re or rewar1( /o' !an 1e&i)n &3e!i*i! e2en & o be ri))ere16 &'!" a& "e o3enin) o* a 3ar i!'lar 1oor a& "e 3layer rea!"e& i 6 or "e *allin) o* & one& a& "e 3layer rea!"e& a & one bri1)e6 an1 &o on(
-10T-1CT-6$ T8A-1-1G A8$A0 All )ame& "a2e !er ain ob& a!le& "a "e 3layer& "a2e o o2er!ome or 3',,le& "a "ey nee1 o &ol2e o win "e )ame( B' i* "e 3layer& are 'nable o !on in'e in "e )ame by remo2in) "e ob& a!le&6 "ey mi)" *eel *r'& ra e1 an1 aban1on "e )ame( One way o en&'re "a "e 3layer& 1o no lea2e "e )ame i& o 3ro2i1e "em !er ain area& on "e &!reen w"ere "ey !an e<3eri7 men "eir mo2e& or a! i!& wi "o' a**e! in) "e 3ro)re&& o* "e )ame( S'!" area& are .nown a& in& in! i2e rainin) area&( T"e&e area& allow "e 3layer& 'nlimi e1 a em3 & o 3er*e! "eir mo2e& an1 a! i!&( Player& !an "en '&e "e &ame mo2e& an1 a! i!& o o2er!ome "e ob& a!le or &ol2e "e 3',,le( T8-A/ A1 $88O8 Trial an1 error i& a me "o1 "a *a!ili a e& learnin)( T"e 3layer& !an ma.e a mo2e an1 2iew "e !on&eB'en!e& o* "e mo2e( T"ey !an "en mo1i*y "e mo2e o )e be er re&'l &( Trial an1 error )i2e& "e 3layer& an o33or 'ni y o learn abo' "e !on&eB'en!e& or re&'l & o* 1i**eren mo2e&( T"e 3layer& !an ry 2ario'& mo2e& be*ore *inali,in) a 3ar i!'lar mo2e( Howe2er6 w"en 1e&i)nin) rial an1 error6 "e 1e&i)ner m'& en&'re "a "e !on&eB'en!e& o* an error 1o no lea1 o 3layer *r'& ra ion( For e<am3le6 &'33o&e "ere are *o'r & a)e& o a )ame le2el( T"e 3layer "a& *ini&"e1 "e *ir& wo & a)e&( In "e "ir1 & a)e6 "e 3layer ma.e& a wron) mo2e( T"e re&'l o* "i& mo2e i& "a "e 3layer i& a.en o "e be)innin) o* "e le2el an1 "a& o 3lay "e *ir& wo & a)e& a)ain( I* "i& 3ro!e&& .ee3& re3ea in)6 "e 3layer mi)" )e *r'& ra e1 an1 no ry o mo2e a"ea1 in "e )ame( T"ere*ore6 !are &"o'l1 be a.en "a rial an1 error i& a way o* ea!"in) "e 3layer& an1 no 3'ni&"in) "em( In a11i ion6 "e 1e&i)ner &"o'l1 al&o en&'re "a "ere are limi e1 in!orre! mo2e&( I* "e 3layer 3lay& oo many in!orre! mo2e&6 i mi)" lea1 o 3layer 1i&&a i&*a! ion(
T"e be& &ol' ion i& o '&e "e rial an1 error me "o1 in "e ini ial & a)e& o* "e )ame &o "a i )i2e& "e 3layer am3le o33or 'ni ie& o be!ome *amiliar wi " "e )ame( T"e 1e&i)ner !an "en in!l'1e e< en&ion& or 2aria ion& o "e mo2e& '&e1 in "e ini ial & a)e& o in!rea&e "e !om3le<i y o* "e )ame(
-10T-1CT-6$ +8OM+T In& in! i2e 3rom3 i& ba&e1 on "e 3layerH& learne1 be"a2ior "a "e or &"e )ain& *rom !om7 3' er .nowle1)e( T"e 3layerH& learne1 in& in! i2e mo2e& are "e !orre! mo2e& "a "el3 "e 3layer o 3ro)re&& in "e )ame( %o !l'e&6 2i&'al or in& r'! ional6 are reB'ire1 *or &'!" mo2e&( For e<am3le6 w"en yo' '&e an a33li!a ion an1 yo' &ee a b' on6 yo' !li!. i wi "o' anyone ellin) yo' "a i nee1& o be !li!.e1( T"i& i& an in& in! i2e mo2e( /o' !an in!or3o7 ra e in& in! i2e mo2e& in yo'r )ame( For e<am3le6 yo' !an enable "e 3layer& o '&e "e '3 arrow o mo2e *orwar1 an1 "e 1own arrow o mo2e ba!.war1( T"e&e are mo2e& "a 3layer&
www.it-ebooks.info
!! , 2esso* %
are !om*or able ma.in) an1 w"i!" )i2e "em 3lea&'re be!a'&e "ey are ma.in) "e&e in elli)en mo2e& on "eir own wi "o' any "el3( T"i& *'r "er mo i2a e& "e 3layer& o 3ro!ee1 wi " "e )ame(
+/AA$8 6OCA.7/A8A Player 2o!ab'lary re*er& o "e .nowle1)e an1 e<3erien!e "a "e 3layer& )ain 1'rin) "e 3ro!e&& o* 3layin) "e )ame( T"e 3'r3o&e o* 3layer 2o!ab'lary i& o en"an!e "e &.ill o* "e 3layer& &o "a "ey are rea1y o a.e '3 more !"allen)e&( Ano "er 3'r3o&e i& o 1e*ine w"a "e 3layer !an e<3e! *rom "e )ame( By &e in) '3 "e e<3e! a ion6 yo' !an a2oi1 3layer *r'& ra ion an1 1i&a33oin men an1 ma.e "e )amin) &eB'en!e a memorable one( I* "e e<3e! a ion i& no 3ro3erly &e in "e be)innin)6 "e e<!i emen an1 &'r3ri&e& in "e )ame will no )i2e "e 3layer& a )oo1 )amin) e<3erien!e(
A )ame & a e 1e*ine& an obLe! a a )i2en 3oin in ime in "e )ame( For e<am3le6 in a !ar ra!in) )ame6 yo' mi)" "a2e a bran1 new !ar a& well a& a bro.en 1own !ar( /o' wan o 1e*ine "e 1i&&imilar 3ro3er ie& *or bo " "e !ar&( Ob2io'&ly6 a 3layer w"o )e & "e bro.en !ar nee1& o *in1 "e !ar mal*'n! ionin)( T"ere*ore6 yo' nee1 o 1e*ine "e 3ro3er ie& o* "i& !ar o in!l'1e *la ire&6 bro.en & eerin) w"eel6 an1 &o on( Howe2er6 *or a bran1 new !ar6 "e 3layer m'& *in1 "e !ar *'n! ionin) a i & be& an16 "ere*ore6 yo' m'& 1e*ine "e 3ro3er ie& a!!or1in)ly( T"e )ame & a e allow& yo' o ma.e &'!" 1e*ini7 ion&( /o' !an !rea e 1i**eren )ame & a e& an1 "en 1e*ine w"a ea!" obLe! in a )ame & a e 1oe& in "a & a e( /o' !an '&e )ame & a e& *or almo& e2ery "in) in "e )ame( /o' will nee1 )ame & a e& *or "e *ollowin)4 N Crea in) men'& N Ma.in) m'l i3le &!reen& N U&in) 1i**eren le2el& in "e )ame N $illin) a ba1 !"ara! er N Ma.in) a !"ara! er wal.6 r'n6 or 3er*orm o "er a! ion& Le '& learn abo' "e !on!e3 o* )ame & a e& "ro')" a &im3le e<am3le( Ima)ine "a yo'r )ame )oe& "ro')" a &e o* a! ion&4 :( T"e !"ara! er on "e &!reen in ro1'!e& "im&el*( 8( T"e !"ara! er mo2e& *orwar1( A( T"e !"ara! er mo2e& ba!.war1( ;( T"e !"ara! er &ay& Ibye(J C( T"e )ame en1&( Ea!" o* "e&e a! ion& 3ro2i1e& "e !'e *or "e )ame o 3ro!ee1 *'r "er an16 "ere*ore6 &i)nal& a )ame & a e( Fi)'re ;7: ill'& ra e& "e )ame & a e &eB'en!e *or "e 3re2io'& e<am3le(
www.it-ebooks.info
From "e )i2en e<am3le6 yo' !an in*er "a any )ame !on&i& & o* a &erie& o* )ame & a e&( T"e e<am3le a&&'me& "e 2al'e o* "e )ame & a e a& n'meri! an1 "a "e 2al'e & ar & a ,ero( In ea!" )ame & a e6 a 3ar o* "e )ame !o1e i& e<e!' e1 be*ore "e 2al'e o* "e )ame & a e 2ariable i& in!remen e1 o &i)nal "e !ommen!emen o* "e ne< )ame & a e(
TA2$ 1OT$
In )ame 3ro)rammin)6 "ere are many way& o '&e a )ame & a e an1 e2en more way& o im3lemen i in a )ame( /o' !an mana)e )ame & a e& '&in) a &im3le Boolean 2al'e "a i& a binary 2ariable wi " wo 3o&&ible 2al'e& !alle1 I r'eJ or I*al&eJM or6 yo' !an e2en a.e a12an a)e o* !om3le< 3olymor3"i&m6 in w"i!" yo' !an '&e a !la&& a& more "an one y3e "ro')" in"eri an!e(
C$8T-"-CAT-O1 8$A AB <hat is the role of game states in managing gameflowB (.9
MA1AG-1G GAM$"/O< /o' !an !on rol "e )ame*low "ro')" )ame & a e&( Game & a e& are !"ara! eri,e1 by a !ombina ion o* 2i&'al6 a'1io6 an1 anima ion !'e& "a ma.e "e )ame 3ro!ee1( To en&'re "a "e )ame r'n& &moo "ly an1 !on rib' e& o a )oo1 )ame*low6 yo' nee1 o o3 imi,e "e )ame & a e&(
E2ery elemen in a )ame*low i& 1e*ine1 *or 1i**eren )ame & a e&( For yo'r )ame o "a2e a )oo1 )ame*low6 yo' nee1 )ame & a e& o !a3 're "e 3layerH& a en ion6 &'& ain in ere& 6 an1 !on in'e mo i2a in) "e 3layer a e2ery 3oin o* ime in "e )ame( For ea!" )ame & a e6 yo' m'& 3ro2i1e &ome "in) "a i& wor "y o* "e 3layerH& a en ion( A "e &ame ime6 yo' m'& en&'re "a yo' are no b'r1enin) "e 3layer wi " oo many a&.& in a )i2en )ame & a e( In &"or 6 )ame*low !on&i1era ion& !an be im3lemen e1 "ro')" )ame & a e&( For e<am3le6 &'37 3o&e "a in a )ame*low6 yo' wan "e )ame o be!ome 3ro)re&&i2ely !"allen)in)( In yo'r )ame6 "e 3layer !"ara! er & ar & o' "a2in) a ran)e o* wea3on& o !"oo&e *rom( For "i& o "a33en6 in )ame & a)e 96 yo' 1e*ine all "e wea3on& o be enable1( Howe2er6 o !on rol "e )ame*low an1 o ma.e i !"allen)in)6 a& yo' mo2e o "e ne< )ame & a e6 yo' 1e*ine only a *ew &ele! e1 wea3on& o be enable1( In "i& way6 yo' !rea e )ame & a e& wi " !'& omi,e1 1e*ini ion& an1 o3era ion& *or elemen &6 &'!" a& !"allen)e&6 &!ri3 e1 e2en &6 rial an1 error6 3layer 2o!ab'lary6 an1 o "er )ame*low *ea7 're&( T"i& allow& yo' o !on rol "e )ame*low o ma.e "e )ame !"allen)in) an1 in ere& in)(
MA1AG-1G +$8"O8MA1C$ For yo'r )ame o 3ro2i1e "e be& 3o&&ible )amin) e<3erien!e6 yo' nee1 o ma.e &'re "e )ame r'n& &moo "ly( B' "e "ea2y memory reB'iremen o* "e )ame !an 3o&e !"allen)e&
www.it-ebooks.info
I& , 2esso* %
o "e )ameH& &moo " *'n! ionin)( A )ame "a '&e& many )ame elemen & or in2ol2e& many a! ion& "a33enin) a "e &ame ime ma.e& "e )ame memory7"ea2y be!a'&e "e )ame reB'ire& a lo o* memory *or 3ro!e&&in) "e&e elemen &( A& a re&'l 6 3er*orman!e i&&'e& mi)" irri a e "e 3layer an1 "am3er "e )ame*low( /o' nee1 o ' ili,e e2ery elemen o* "e )ame !on&!io'&ly( T"i& en&'re& "a yo' a2oi1 1'3li!a ion6 w"i!" in 'rn re1'!e& "e memory reB'iremen ( For e<am3le6 !on&i1er "a in a )ame & a e "e 3layer "a& o L'm3 o2er a *ew & one&( /o' nee1 o !rea e only a& many & one& a& are reB'ire1 o 3o&e an in ere& in) !"allen)e o "e 3layer( Too many & one& no only irri a e "e 3layer6 b' al&o ma.e yo'r )ame !on&'me more memory( T"i& !on&i1era ion o* "ow o be& '&e ea!" elemen in a )ame & a e i& !alle1 o3 imi,7 in) "e )ame & a e( %ee1le&& o &ay6 ea!" )ame & a e "a& o be o3 imi,e1( O3 imi,in) a )ame & a e reB'ire& yo' o en&'re "a e2ery elemen in "e )ame & a e 1oe& w"a i i& &'33o&e1 o 1o( T"i& mean& "a yo' nee1 o &3e!i*y "e 3ro3er ie& o* ea!" elemen in a manner "a be& ' ili,e& "a elemen ( A& a )ame 1e2elo3er6 yo' m'& en&'re "a yo' o3 imi,e "e )ame & a e& o en&'re "a 3layer& )e a !"an!e o enLoy "e )ame wi "o' any "in1ran!e&( T"e mo& ime7!on&'min) a&. in a )ame i& ren1erin)( Ren1erin) en!a3&'la e& "e *ollowin) !on!e3 &4 N S!ene "ierar!"y N Frame ra e 2aria ion& N Gra3"i!& 3i3eline To o3 imi,e "e ren1erin) 3ro!e&& o* yo'r )ame6 yo' m'& .ee3 in min1 "e !on&i1era ion& re)ar1in) "e 3re2io'& !on!e3 &(
0C$1$ ?-$8A8C?A
C$8T-"-CAT-O1 8$A A ?ow is scene hierarchy helpful in optimiGing game statesB (.9
S!ene "ierar!"y re*er& o "e ree & r'! 're arran)emen o* lo)i!al an1 &ome ime& &3a ial re37 re&en a ion o* a )ra3"i!al &!ene( An o3era ion 3er*orme1 on a )ro'3 o* no1e& in "i& & r'! 're a**e! & all i & member&( For e<am3le6 i* "e li)" &o'r!e *or a &!ene !"an)e& *rom 1ayli)" o &'n&e ambien!e6 "en all "e obLe! & in "e )ame worl1 "a are ill'mina e1 by 1ayli)" will !"an)e o re*le! "e e**e! o* "e re2i&e1 li)" ( S!ene "ierar!"y i& '&e*'l *or o3 imi,in) "e ren1erin) an1 *or !olli&ion 1e e! ion6 w"i!" in 'rn o3 imi,e& "e *rame ra e( T"e "i)"er "e *rame ra e6 "e &moo "er "e )ame3layK "a i&6 "e 2i&'al6 a'1io6 an1 anima ion !'e& are al&o &moo "( T"ere*ore6 &!ene "ierar!"y i& an im3or an !on&i1era ion in o3 imi,in) )ame & a e&( I "el3& yo' o mana)e "e memory allo!a ion an16 "ere*ore6 "el3& yo' 1e&i)n a )ame "a reB'ire& le&& memory o r'n &moo "ly( S!ene "ierar!"y '&e& in& an!in) o re1'!e memory !o& & an1 in!rea&e &3ee1( T"i& i& 3o&&ible be!a'&e o* "e 3aren 7!"il1 ree & r'! 're o* a &!ene "ierar!"y( T"e no1e& in a &!ene "ierar!"y & an1 *or obLe! & in a &!ene( For e<am3le6 a !"ara! er ri1in) a "or&e !an be 1e*ine1 in "e )ame o "a2e a lo)i!al rela ion7 &"i3 wi " "e "or&e D&ee Fi)'re ;78E( In &'!" an in& an!e6 "e &!ene "ierar!"y "a& wo no1e&6 one ea!" *or "e !"ara! er an1 "e "or&e( I al&o &3e!i*ie& "e mo2emen o* "e !"ara! er a& "e "or&e mo2e& in AD &3a!e( /o' m'& '&e &!ene "ierar!"y o o3 imi,e "e )ame & a e w"en4 N /o' nee1 o *reB'en ly !rea e an1 1e& roy obLe! & N /o' "a2e &imilar obLe! & in a &!ene N Ea!" obLe! "a& a re&o'r!e "a i& &low o a!B'ire an1 !an be re'&e1
www.it-ebooks.info
www.it-ebooks.info
/o' alrea1y .now "a *rame ra e i& "e ra e a w"i!" an ima)e i& re*re&"e1 an1 "i& ra e i& e<3re&&e1 in *rame& 3er &e!on1 D*3&E6 w"i!" i& "e n'mber o* *rame& 1i&3laye1 3er &e!on1 by a 1i&3lay 1e2i!e( U&'ally6 o "er 3ro!e&&e& r'n be"in1 "e &!ene w"en an ima)e i& re*re&"e1( T"e&e in!l'1e !olli&ion 1e e! ion an1 ne wor. 3ro!e&&in)( Li.e &!ene "ierar!"y6 *3& al&o a**e! & 3layer e<3erien!e( I a**e! & )ame 3er*orman!e in wo way&4 N Low *3& ma.e& mo ion a33ear wi " !on&i1erable 1elay6 w"i!" a**e! & "e 3layerH& !a3a!i y o in era! wi " "e )ame( N An *3& "a 2arie& a lo be ween &e!on1& 1'e o "e loa1 o* "ea2y !om3' a ion ma.e& "e mo ion &eem !"o33y or La))e1( For )ame& "a reB'ire 3layer& o ra!. anima ion& an1 rea! B'i!.ly6 *3&7in1'!e1 1elay& or "in1ran!e& o member& 1i&r'3 "e )ame*low( T"ere*ore6 yo' m'& !on&i1er *3& w"ile !re7 a in) an o3 imi,e1 )ame & a e( Al "o')" more an1 more )ame 1e2elo3er& are a1o3 in) a "i)"er 2al'e o* *3&6 i mi)" no be a 3ra! i!al !"oi!e in all in& an!e&( T"i& i& be!a'&e "o')" a "i)"er *3& mi)" )'aran ee a *a& er mo ion6 i !anno remo2e an in3' la)( In3' la) i& "e 1elay be ween 3layer !omman1 an1 !om3' er *ee1ba!.( A "i)"er *3& 1oe& no al&o )'aran ee *l'i1 mo2emen &(
G8A+?-C0 +-+$/-1$ A )ra3"i!& 3i3eline re*er& o "e !'rren me "o1 o* 1rawin) ima)e& on a &!reen "ro')" a !on2er&ion o* 2e! or )ra3"i!& *orma or )eome ry in o ra& er or 3i<el ima)e&( T"e AD )eom7 e ry i& )i2en a& in3' a one en1 o* "e 3i3elineM "e AD en)ine 3ro!e&&e& "e )eome ry an1 )i2e& "e o' 3' a& a 8D ima)e "a i& 3re&en e1 on "e &!reen( U&in) "e AD 3i3eline 1oe& no o3 imi,e )ame3lay( /o' will nee1 o o3 imi,e ea!" & a)e o* "e 3i3eline(
T"e & a)e& in a )ra3"i!& 3i3eline an1 "e B'e& ion& an&were1 a ea!" & a)e are4
N Vi&ibili y4 -"a &"o'l1 1i&3lay on "e &!reenR N Cli33in)4 -"a i& in "e 2iewin) area o* "e !ameraR
IA , 2esso* %
N C'llin)4 I& "e ima)e o be 3la!e1 *a!in) "e !ameraR N O!!l'&ion4 I& "e obLe! "i11en *rom "e !ameraH& 3oin o* 2iewR N Re&ol' ion4 -"a i& "e re&ol' ion o* "e 1i&3layR N Tran&*orma ion an1 li)" in)4 How will "e obLe! & an1 !"ara! er& in "e )ame be mo2in)6 &!ale16 li)" e16 an1 &o onR N Ra& eri,a ion4 How will "e )ame3lay elemen & be 1rawn on "e &!reen '&in) 3i<el&R Fi)'re ;7A 1i&3lay& "e )ra3"i!& 3i3eline in a 3ro!e&& *low!"ar ( T"ere i& a 1ire! rela ion&"i3 be ween "e 1e ail& in "e AD )eome ry an1 "e amo'n o* memory reB'ire1 o 3er*orm "e o3era ion& on "e AD )eome ry( Similar o &!ene "ierar!"y6 "e )ra3"i!& 3i3eline al&o nee1& o be !on&i1ere1 i* yo' wan o re1'!e "e memory reB'ire1 *or "e &moo " r'nnin) o* "e )ame(
"igure *-( The graphics pipeline flowchart
6isibility Clipping Culling
8esolution
Occlusion
8asteriGation
C$8T-"-CAT-O1 8$A AB <hat are the different methods a!ailable in the 41A "ramework for a gameKs main loopB (.9
A "e "ear o* a )ameH& !o1e i& i & main loo3 Dor )ame loo3E6 w"i!" i& re&3on&ible *or !oor1i7 na in) "e a! ion& o* "e )ameH& 3ro)ram( T"e main loo3 i& &imilar in i & *'n! ionin) o "a o* "e ner2o'& &y& em o* o'r bo1y( Bo " relay &i)nal& an1 me&&a)e& o an1 *rom 1i**eren 3ar & o* "e &y& em "ey are 3ar o*( In i & ba&i! *orm6 "e main loo3 3er*orm& wo *'n! ion&4 N E<e!' e& "e a! 'al )ame3lay4 T"i& *'n! ion in2ol2e& mo2in) obLe! &6 !"an)in) "e )ameH& & a '& an1 le2el&6 an1 all "e o "er a! ion& "a !on& i ' e "e a! 'al )ame( T"i& i& "e !ore *'n! ion o* "e )ame6 an1 i e<e!' e& in a loo3( N Draw& "e )ame !om3onen &4 T"i& *'n! ion in2ol2e& 1rawin) )ame obLe! & li.e & a i! mo1el&6 anima e1 mo1el& or !"ara! er&6 an1 &3ri e& on "e &!reen( T"i& "el3& "e 3layer o 2iew all "e 3o en ial )ame !om3onen & on "e &!reen( T"i& *'n! ion e<e!' e& in a loo3( Be!a'&e a )ame loo3 a.e& in 3layer in3' 6 )ame loo3& in*l'en!e "e )ame & a e&( A )ame & a e !an !"an)e 1e3en1in) on "e '&er in3' ( T"e )ame loo36 "ere*ore6 3lay& an im3or an 3ar in !a3 'rin) "e '&er in3' an1 '31a in) "e )ame & a e(
www.it-ebooks.info
I i& a12an a)eo'& o '&e a )ame loo3( Com3' er &y& em& r'n on "e 3rin!i3le "a 'nle&& "e '&er 3ro2i1e& an in3' 6 "e &o* ware 1oe& no nee1 o 1o any "in)( Howe2er6 )ame& m'& r'n !on in'o'&ly w"e "er or no "e 3layer ma.e& a mo2e( /o' !an '&e )ame loo3& o !on in'e "e )ame( A &im3le 3&e'1o !o1e *or a main loo3 !an be4
While #pla0er does not e/it% 2pdate Ao0stic+. 2pdate 1" according to pla0er position. 2pdate 6h0sics and :ound 9ngine. Calculate culling and clipping. :et proper shader to obAects and set <ender states. ,raw game obAects. ' pla0er position according to input from +e0board or mouse or
T"e 1i&a12an a)e o* '&in) a ba&i! main loo3 i& "a i 1oe& no "an1le ime6 an1 a )ame reB'ire& ime7ba&e1 3ro!e1're& *or mo2emen an1 anima ion( I* we 1o no "an1le ime6 "e )ame will r'n &lower or *a& er 1e3en1in) on "e )ame 3la *orm( Loo3& *or !on&ole )ame& !an ' ili,e "e 3ro!e&&in) re&o'r!e& ea&ily( Howe2er6 loo3& *or )ame& on -in1ow&7ba&e1 !om3' er& an1 !on&ole& nee1 o o3era e wi "in "e limi & &e by "e 3ro!e&& &!"e1'ler( Generally6 all )ame& are ma1e o r'n a a *i<e1 *3&K'&'ally a @9 *3&( By 1e*a'l 6 "e #%A Framewor.H& Game !la&& mana)e& a main loo3( T"e #%A Framewor. 3ro2i1e& "e *ollowin) me "o1& *or "e main loo3 o in era! wi " "e )ame 3la *orm4 N 2pdate N ,raw Le '& loo. a ea!" o* "e&e me "o1& in 1e ail(
7+ AT$ M$T?O T"e 2pdate me "o1 i& !alle1 w"ene2er "e )ame lo)i! nee1& o be 3ro!e&&e1( T"i& me "o1 a.e& an in3' 3arame er o* Game4ime y3e( T"i& 3arame er )i2e& yo' "e ime "a "a& 3a&&e1 &in!e "e la& !all o "e 2pdate me "o1(
/o' reB'ire "e !o1e o !all "e 2pdate me "o1 *or4 N Mana)in) "e )ame & a e N Pro!e&&in) 3layer in3' N U31a in) &im'la ion 1a a /o' nee1 o o2erri1e "i& me "o1 *or in!l'1in) "e )ame lo)i! "a i& &3e!i*i! o yo'r )ame( T"e *ollowin) i& "e &.ele al & r'! 're o* "e Game.2pdate me "o1(
protected o3erride 3oid 2pdate game logic #Game4ime here */ game4ime%
8A< M$T?O T"e ,raw me "o1 i& !alle1 w"ene2er i i& ime o 1raw a *rame( /o' nee1 o o2erri1e "i& me "o1 wi " )ame7&3e!i*i! !o1e *or 1rawin) *rame&( T"i& me "o1 a.e& an in3' 3arame er o* Game4ime y3e( T"i& 3arame er )i2e& yo' "e ime 3a&&e1 &in!e "e la& !all o "e ,raw me "o1(
www.it-ebooks.info
I% , 2esso* %
T"e *ollowin) i& "e &.ele al & r'! 're o* "e Game.,raw me "o14
protected o3erride 3oid ,raw #Game4ime here game4ime% */
rendering
TA+$0 O" GAM$ /OO+0 How o* en "e 2pdate me "o1 i& !alle1 in a )ame i& 1e*ine1 by "e y3e o* )ame loo3 '&e1( T"ere are wo y3e& o* main loo3&4
N Fi<e1 & e3 N Variable & e3 In "e *i<e1 & e3 )ame loo36 "e )ame !o1e !all& "e 2pdate me "o1 a *i<e1 in er2al&( /o' !an &3e!i*y "i& in er2al in "e Game.4arget9lasped4ime 3arame er 1e!lara ion( In "e #%A Framewor.6 "e 1e*a'l *or Game.4arget9lapsed4ime i& :0@9 " o* a &e!on1( T"e 2pdate me "o1 will be !alle1 on!e "e Game.4arget9lapsed4ime 2al'e i& me ( A* er e<e!' in) "e 2pdate me "o16 i* i i& no ime o !all 2pdate a)ain6 "e !o1e will mo2e on o "e ,raw me "o1( I* 2pdate a.e& lon)er an1 i i& ime o !all "e 2pdate me "o1 a)ain6 "e !o1e will no !all "e ,raw me "o1( T"i& mean& "a "e )ame !an &low 1own an1 mi)" irri a e "e 3layer( For e<am3le6 ima)ine a &i 'a ion in w"i!"6 ba&e1 on "e 3layerH& in3' 6 "e 3layer !"ara! er m'& &"ow &ome mo2emen on "e &!reen( Howe2er6 w"en "e Game.4arget9lasped4ime i& me e2en be*ore "e 3layer in3' !an be !a3 're16 "e ,raw me "o1 i& no !alle1 an16 "ere*ore6 al "o')" "e 3layer i& en erin) "e .ey o ma.e "e !"ara! er mo2e6 "e or &"e !anno &ee "e !"ara! er mo2e on "e &!reen( In "e 2ariable & e3 )ame loo36 "e )ame !o1e !all& "e 2pdate an1 ,raw me "o1& !on in7 'o'&ly re)ar1le&& o* 4arget9lapsed4ime( T"i& mean& "a "e 3layer !an &ee "e !"ara! er mo2e on "e &!reen re)ar1le&& o* w"e "er "e 4arget9lapsed4ime "a& been me or no ( Anima ion& an1 mo2emen o3era ion& are ba&e1 on 3re!i&e imin)M "ere*ore6 "e 2ariable & e3 )ame loo3 i& &'i able *or )ame& wi " anima ion& an1 mo2emen o3era ion&( A 2ariable & e3 )ame loo3 a.e& "e Game4ime.9lapsedGame4ime 3arame er on w"i!" "e )ame lo)i! an1 anima ion !o1e i& ba&e1( T"e Game4ime.9lapsedGame4ime i& "e amo'n o* ime ela3&e1 &in!e "e la& '31a e( In #%A6 yo' !an ma.e yo'r )ame '&e a 2ariable ime & e3 by &e in) "e "s*i/ed4ime:tep 3ro3er y o* "e Game !la&& o *al&e( T"e *ollowin) !o1e &e & "e Game."s*i/ed4ime:tep 3ro3er y o *al&e in "e Game."nitialize me "o1(
protected o3erride 3oid @ "nitialize#% false;
To ma.e a &3ri e mo2e !on&i& en ly w"en yo' '&e a 2ariable & e3 )ame loo36 yo' nee1 o &3e!i*y "e 1i& an!e "e &3ri e mo2e& in erm& o* )ame 'ni & 3er 'ni ime( T"e amo'n a &3ri e mo2e& in an '31a e will "en be a' oma i!ally !al!'la e1 a& "e ra e o* &3ri e mo2emen m'l i3lie1 by "e ela3&e1 ime( Table ;7: 3re&en & "e 1i**eren!e be ween "e wo )ame loo3& a a )lan!e(
www.it-ebooks.info
"$AT78$0 I Assumes each update is for a fi%ed time I +osition of a sprite @ position of the sprite ; distance mo!ed per update
+8O0 I $asier to calculate the physics associated with mo!ement I $asier to record actions per time step
CO10 I 1ot suitable for time-based animations I Minor physics errors are introduced that can multiply into big coding flaws I ?ard to replay or record actions as time steps !ary I Minor physics errors are introduced that can multiply into big coding flaws
6ariable 0tep
I Calls 2pdate and ,raw continuously I +osition of a sprite @ position of the sprite ; distance mo!ed per updateF time$lapsed
Mo& )amin) 3roLe! & "a2e "eir own 2i&'al 1e&i)n eam( T"e main re&3on&ibili y o* "i& eam i& o '&e i & ar i& i! &.ill& o en&'re "a "e 1e&i)n o* !"ara! er& or obLe! & *i & well in o "e 2i&'al 1e&i)n o* "e )ame( On!e "e obLe! & an1 !"ara! er& *or a )ame are 1e&i)ne1 an1 ill'& ra e16 "e 2i&'al 1e&i)n eam nee1& o 1raw "em '&in) "e a33ro3ria e 8D an1 AD &o* ware6 &'!" a& A' o1e&. Maya6 A' o1e&. Ma<6 A' o1e&. #SI6 Mo1o6 an1 &o on( On!e obLe! & are !rea e16 yo' &"o'l1 e<3or "em o #%A Framewor. ;(9 '&in) "e &3e!i*i! *ile *orma & &'!" I(<J or I(*b<J( T"e obLe! & an1 !"ara! er& are "en *'r "er en"an!e1 by a33lyin) e< 're& or a11in) a li)" &o'r!e( Li)" in) i& a )rea me1i'm *or *'r "er 1e2elo3in) "e loo. an1 *eel o* "e en2iron7 men an1 "e !"ara! er& in "e )ame( I ma.e& "e obLe! & an1 !"ara! er& !ome ali2e 1'rin) "e )ame3lay( -"a e2er yo' &ee on "e &!reen i& alway& in 8D be!a'&e "e !om3' er &!reen 1oe& no "a2e "ree 1imen&ion&( /o' will '&e "e 8D ima)e& or AD )eome ry in*orma ion o* "e 2i&'al ima)e& *or 3ro!e1're& &'!" a&4
www.it-ebooks.info
I$ , 2esso* %
N Tran&*ormin) obLe! & N Anima in) "e !"ara! er& N Crea in) "e *eel o* "e !"ara! er
Transforming Ob:ects
Tran&*orma ion mean& !on2er in) "e )eome ri!al 2er i!e& o* obLe! & an1 !"ara! er& o 3ro3er 3o&i ion& on "e &!reen( T"e ran&*orma ion 3ro!e&& in2ol2e& a &e o* a! i2i ie& "a are 3er*orme1 on "e&e 2er i!e& in rela ion o "ree &3a ial re*eren!e&4 worl16 2iew6 an1 3roLe! ion( -"en obLe! & are !rea e1 on any AD &o* ware6 "ey are !rea e1 in obLe! &3a!e( In "e obLe! &3a!e6 yo' ini ially !rea e yo'r obLe! by &e in) D96 96 9E a& "e !en er o* "e obLe! an1 1e*in7 in) "e 2er e< 3o&i ion& rela i2e o "e !en er( /o' nee1 o 3la!e "e&e obLe! & wi "in "e )ame worl1 a &ome 1i& an!e or a &ome an)le wi " re&3e! o ea!" o "er6 w"i!" i& !alle1 ran&*orm7 in) obLe! & *rom obLe! &3a!e o worl1 &3a!e( /o' nee1 a ma ri< o ran&*orm obLe! & in "e #%A Framewor.( A ma ri< i& a wo71imen&ional )ri1 o* n'mber& "a "el3& o ran&*orm !oor1ina e& o* a mo1el in "e obLe! &3a!e in o !oor1ina e& in "e )ame worl1( T"e *ollowin) &"ow& a ; ( ; ma ri<(
(
TA2$ 1OT$
In )eome ry6 a !oor1ina e &y& em i& a &y& em "a '&e& !oor1ina e& "a 'niB'ely 1e ermine
"e 3o&i ion o* a 3oin or o "er )eome ri! obLe! ( In #%A Framewor.6 "e obLe! & are re37 re&en e1 '&in) a ri)" 7"an1e1 Car e&ian !oor1ina e &y& em( T"a mean& "e 3o&i i2e P7a<i& 3oin & owar1 "e ob&er2er w"en "e 3o&i i2e #7a<i& an1 "e 3o&i i2e /7a<i& 3oin ri)" an1 '36 re&3e! i2ely(
C$8T-"-CAT-O1 8$A A <hat are the different types of matrices that the 41A "ramework *.E uses for transformationB *.;
MAT8-C$0 -1 41A T"e #%A Framewor. reB'ire& "ree 1i**eren ma ri!e& *or ran&*orma ion be*ore "e "ree7 1imen&ional mo1el i& ren1ere1 on "e 8D &!reen( /o' m'& *ir& 'n1er& an1 "e ba&i! ran&7 *orma ion "a "a33en& w"en an obLe! or a mo1el i& ren1ere1 on "e &!reen( T"e *ollowin) are "e &eB'en!e o* a! ion& o* "e )eome ry o* a mo1el be*ore "e !oor1ina e& o* "e mo1el are ran&*orme1 in o 8D 3i<el& on "e &!reen( :( Fir& 6 yo' !rea e "e AD mo1el in an e1i or &'!" a& Maya an1 1e*ine "e mo1el by .ee3in) D96 96 9E a& i & !en er( T"e !oor1ina e& o* "e 2er i!e& are wi " re&3e! o "e !en er o* "e mo1el( T"i& i& !alle1 "e obLe! &3a!e( 8( To ran&*orm "e !oor1ina e& *rom "e obLe! &3a!e o "e )ame worl16 .nown a& "e worl1 &3a!e6 yo' nee1 o 3ro2i1e a worl1 ma ri<( T"e #%A '&e& "i& worl1 ma ri< o !on2er "e 2er i!e& in "e obLe! &3a!e o "e worl1 &3a!e( T"e !oor1ina e& o* "e worl1 &3a!e are wi " re&3e! o "e w"ole )ame worl1( T"e worl1 ma ri< ell& "e 3o&i ion o* "e mo1el in "e )ame en2ironmen ( /o' nee1 o !al!'la e "e worl1 ma ri< be*ore yo' ren1er any obLe! in "e )ame worl1( A( T"e 2er i!e& in "e worl1 &3a!e nee1 o be ran&*orme1 &o "a "ey lie in "e !amera &3a!e .nown a& "e 2iew &3a!e6 w"i!" i& "e line7o*7&i)" o* "e 3layer or "e 3layer !"ara! er( To a!"ie2e "i&6 yo' nee1 o 3ro2i1e a ma ri<6 .nown a& 2iew ma ri<6 "a
www.it-ebooks.info
"el3& "e #%A !on2er "e 2er i!e& in "e worl1 &3a!e o "e 2iew &3a!e( T"e 2iew ma ri< ell& "e 3o&i ion o* "e 3layer wi " re&3e! o "e )ame worl1( /o' nee1 o !al!'la e "e 2iew ma ri< w"ene2er "e !amera !"an)e& i & 2iew or 3o&i ion( ;( Finally6 "e #%A nee1& o 3roLe! "e AD !oor1ina e& in "e 2iew &3a!e on o "e *la 8D &!reen6 w"i!" i& !alle1 "e 3roLe! ion &3a!e( For "i&6 yo' nee1 o 3ro2i1e a ma ri< !alle1 "e 3roLe! ion ma ri< o "e #%A( T"i& ma ri< "el3& "e #%A !on2er "e AD !oor1ina e& in o &!reen !oor1ina e&( /o' normally &e "e 3roLe! ion ma ri< only on!e a "e ime o* ini iali,a ion( T"i& ran&*orma ion ell& "e 3o&i ion on "e &!reen w"ere "e 2er i!e& o* "e mo1el &"o'l1 a33ear( To anima e an obLe! 6 yo' ran&*orm "e !oor1ina e& o* "e obLe! *or e2ery *rame( T"i& ran&*orma ion nee1& o be in rela ion o "ree &3a ial re*eren!e&6 namely6 "e worl1 &3a!e6 "e 2iew &3a!e6 an1 "e 3roLe! ion &3a!e( T"e ran&*orma ion o* "e !oor1ina e& '&'ally "a33en& in "e )ra3"i!& 3i3eline( Howe2er6 yo' nee1 o !rea e )ame7&3e!i*i! !o1e *or "e 1e&ire1 anima ion( T"e #%A Framewor. ;(9 3ro2i1e& "e ma ri< & r'! 're o "el3 yo' o !rea e "e worl1 ma ri<6 2iew ma ri<6 an1 "e 3roLe! ion ma ri<( T"e #%A ma ri< i& a ; ( ; ma ri<( Table ;78 li& & &ome o* "e me "o1& a2ailable in "e ma ri< & r'! 're(
Table *-9 +ublic Methods of the Matri% 0tructure
TA2$ 1OT$
M$T?O
Create-oo+1t
$0C8-+T-O1
This method creates a !iew matri%. Aou need to set the !iew matri% for an ob:ect whene!er there is a change in the camera position. This method creates a world matri%. This method creates a perspecti!e pro:ection. This method creates a translation matri%# which when applied to the geometry of the model# transforms it into the world space.
6$CTO80 -1 41A /o' '&e 2e! or& o re3re&en a 1ire! ion an1 "e &!ale o* )eome ry( T"e #%A Framewor. ;(9 3ro2i1e& !la&&e&6 namely Vector26 Vector56 an1 VectorC6 o re3re&en a 2e! or or "e !oor1ina e& o* a 2er e<( T"e Vector2 !la&& re3re&en & a 2e! or wi " wo !om3onen & D# an1 /E( T"e Vector5 !la&& re3re&en & a 2e! or wi " "ree !om3onen & D#6 /6 an1 PE( T"e VectorC !la&& re3re&en & a 2e! or wi " *o'r !om3onen & D-6 #6 /6 an1 PE( Table& ;7A6 ;7;6 ;7C6 an1 ;7@ li& &ome o* "e 3ro3er ie& an1 me "o1& o* "e&e 2e! or !la&&e&(
Table *-( 0ome of the +ublic +roperties of the Vector2 0tructure
"-$/
;ne 2nit) 2nitY Dero
$0C8-+T-O1
This property returns Vector2 with one in all of its components. This property returns 4-unit Vector2 =;# E>. This property returns A-unit Vector2 =E# ;>. This property returns Vector2 with Gero in all of its components.
www.it-ebooks.info
I! , 2esso* %
Table *-* 0ome of the +ublic +roperties of the Vector5 0tructure
"-$/
;ne 2nit) 2nitY 2nitD Dero
$0C8-+T-O1
This property returns Vector5 with one in all of its components. This property returns 4-unit Vector5 =;# E# E>. This property returns A-unit Vector5 =E# ;# E>. This property returns Q-unit Vector5 =E# E# ;>. This property returns Vector5 with Gero in all of its components.
"-$/
;ne 2nit) 2nitY 2nitD 2nitW Dero
$0C8-+T-O1
This property returns VectorC with one in all of its components. This property returns 4-unit VectorC =;# E# E# E>. This property returns A-unit VectorC =E# ;# E# E>. This property returns Q-unit VectorC =E# E# ;# E>. This property returns <-unit VectorC =E# E# E# ;>. This property returns VectorC with Gero in all of its components.
M$T?O
,ot &ormalize 4ransform
A++/-CAT-O1 This method calculates the dot product two !ectors. This method creates a unit !ector from the specified !ector. This method transforms the gi!en !ector class or an array of !ectors by a specified matri%.
Tran&*ormin) obLe! & i& "e ini ial & e3 *or 2ario'& o3era ion&6 &'!" a&4 N Formin) obLe! & N De*ormin) obLe! & N Mo2in) obLe! & N In&er in) 3oin 1i& an!e be ween obLe! & N Crea in) 3lane& N Mo1i*yin) .ey*rame in er3ola ion
"O8M O.5$CT0
C$8T-"-CAT-O1 8$A A ?ow can you form your game ob:ects in 41A "rameworkB *.9
E2ery obLe! in !om3' er )ra3"i!& !an be &3li in o rian)le&( A rian)le i& "e 3rimi i2e 3ar o* any &"a3e( For e<am3le6 a bo< or e2en a !ir!le !an be *orme1 '&in) rian)le&( To *orm 8D ima)e& o* "e AD obLe! & yo' !rea e *or "e )ame6 yo' nee1 o brea. "e obLe! in o rian)le&( /o' "en in3' "e AD rian)le in*orma ion in "e )ra3"i!& 3i3eline an1 "en "e #%A Framewor. !on2er & "e in*orma ion o 1raw "e 8D ima)e( T"e #%A Framewor. ;(9 3ro2i1e& 3rimi i2e y3e en'mera ion6 w"i!" yo' !an '&e o 1raw 3rimi i2e &"a3e& &'!" a& rian)le&( T"e Framewor. al&o 3ro2i1e& me "o1& &'!" a& ,raw2ser6rimiti3es6 ,raw2ser"nde/ed6rimiti3es6 an1 ,raw6rimiti3es in "e Graphics,e3ice !la&& o ren1er "e 3rimi i2e )eome ry( T"e&e me "o1& '&e "e 3rimi i2e
www.it-ebooks.info
TA2$ 1OT$
Primi i2e &"a3e& o "er "an rian)le& are line&6 3oin &6 an1 3oly)on&(
y3e en'mera ion& an1 ell "e )ra3"i!& 1e2i!e "ow o in er3re "e 2er i!e& & ore1 in a 2er e< array( T"e en'mera ion& in!l'1e4 N 6rimiti3e40pe.-ine-ist N 6rimiti3e40pe.4riangle-ist N 6rimiti3e40pe.-ine:trip N 6rimiti3e40pe.4riangle:trip %ow le '& &ee "ow o 1raw a rian)le '&in) "e 6rimiti3e40pe.4riangle-ist en'mera ion in "e *ollowin) & e3&( T"e !o1e in "e & e3 '&e& "e Graphics,e3ice. ,raw2ser6rimiti3es me "o1 o ren1er "e rian)le( 8A< A T8-A1G/$ >3T 83A<;. To 1raw a rian)le6 3er*orm "e *ollowin) & e3&4 1. De!lare "e *ollowin) 2ariable in yo'r Game !la&&( T"e Verte/6ositionColor '&e1 in "e !o1e i& a & r'! 're o "ol1 3o&i ion an1 !olor in*orma ion o* a 2er e<( T"e !o1e 1e!lare& an array o* "e Verte/6ositionColor & r'! 're a& yo' nee1 "ree 2er i!e& o 1raw a rian)le(
/*,eclare 3erte/ properties */ Verte/6ositionColorEF 3ertices; /* 4he .asic9ffect is an builtBin class in )&1 which is used to contain basic rendering effect.*/ .asic9ffect basic9ffect ;
A.
Crea e a me "o1 !alle1 "nitializeVertices in "e Game !la&& o 1e*ine "e 3ro37 er ie& o* "e 2er i!e&(
public 3oid "nitialize3ertices #% and color
/*,efines the 3erte/ properties such as the position information associated with each Vertices. We need this information to draw and update the triangle */ 3ertices @ new Verte/6ositionColorE5F;
/* 6osition and color info for Gst 3erte/ .*/ 3erticesE8F.6osition @ new Vector5#B8.Hf$ B8.Hf$ 8f%; 3erticesE8F.Color @ Color.<ed; /* 6osition and color info for 2nd 3erte/ .*/ 3erticesEGF.6osition @ new Vector5#8$ 8.Hf$ 8f%; 3erticesEGF.Color @ Color.Green; /* 6osition and color info for 5rd 3erte/ .*/ 3erticesE2F.6osition @ new Vector5#8.Hf$ B8.Hf$ 8f%; 3erticesE2F.Color @ Color.Yellow; /*&ow define 0our .asic9ffect while drawing the triangle.*/ basic9ffect ' @ new obAect as its going to be used
.asic9ffect#Graphics,e3ice%;
"nitialize3ertices#%; '
www.it-ebooks.info
www.it-ebooks.info
1&& , 2esso* % %. O2erri1e "e Game.,raw me "o1 o 1raw "e rian)le a& in "e *ollowin)(
protected o3erride 3oid ,raw#Game4ime game4ime%
/*:et the culling state for ,e3ice to Cull!ode.&one so that triagle will alwa0s be 3isible*/ <asterizer:tate state @ new <asterizer:tate#%; state.Cull!ode @ Cull!ode.&one; Graphics,e3ice.<asterizer:tate @ state; //:et the basic effect parameter to show the color of each 3erte/. basic9ffect.Verte/Color9nabled @ true; /*&ow iterate through all passes of current4echniIue of basic effect and draw the triangle */ foreach #9ffect6ass pass in basic9ffect.Current4echniIue.6asses%
pass.1ppl0#%; /* ,raw the triangle using ,raw2ser6rimiti3es function of the Graphics,e3ice*/ Graphics,e3ice.,raw2ser6rimiti3es#Verte/6ositionColor. #6rimiti3e40pe.4riangle-ist$ 3ertices$ 8$ G$ Verte/6ositionColor.Verte/,eclaration%; ' '
Fi)'re ;7; &"ow& "e )ame &!reen 1i&3layin) "e rian)le6 w"i!" i& "e o' 3' o* "e 3re2io'& !o1e(
www.it-ebooks.info
/o' !an !rea e a "'man !"ara! er '&in) "e me "o1& li& e16 b' i a.e& a lo o* ime( 4riangle-ist an1 -ine-ist are no 3ra! i!al me "o1& *or !rea in) !"ara! er&6 &o "ey are no '&e1 *or "i&( A& alrea1y 1i&!'&&e16 "e 2i&'al 1e&i)n eam !rea e& a AD mo1el o* a )ame !"ara! er '&in) A' oDe&. Maya or o "er &imilar mo1elin) &o* ware( /o' nee1 o e<3or "e mo1el '&in) a *ile *orma &'!" a& (< or (*b< o '&e "em in "e #%A en2ironmen ( /o' !an "en '&e "e !odel !la&& a2ailable in "e #%A Framewor. o loa1 "e "'man !"ara! er 1ire! ly *rom "i& AD mo1elin) &o* ware( T"e *ollowin) !o1e a&&'me& "a "e reB'ire1 )ame mo1el6 a !ar in "i& !a&e6 i& e<3or e1 in o "e &3e!i*ie1 3roLe! *rom "e a33ro3ria e AD en2ironmen in "e (< *orma ( To e<3or a mo1el in o "e #%A en2ironmen 6 3er*orm "e *ollowin) & e3&( :( Ri)" !li!. "e Con en no1e in "e Sol' ion E<3lorer( T"en !li!. A11 . E<i& in) I em a& &"own in Fi)'re ;7C( 8( In "e A11 E<i& in) I em 1ialo) bo< "a i& 1i&3laye16 &ele! "e reB'ire1 mo1el in "e &3e!i*ie1 *ile *orma a& &"own in Fi)'re ;7@( Fi)'re ;7= &"ow& "e !ar mo1el '&e1 in "i& e<am3le( T"e !o1e loa1& "e AD !ar mo1el in o "e )ame worl1 a r'n ime( /o' !an in!l'1e "e )i2en !o1e in "e Game.-oadContent me "o14
!odel current!odel @ Content.-oad#!odel.#=Car.fb/>%;
In "e Game.,raw me "o16 ren1er "e !ar mo1el '&in) "e *ollowin) !o1e4
protected o3erride 3oid ,raw#Game4ime game4ime%
//"nitialize View matri/ for ,rawing the obAect !atri/ 3iew!atri/ @ !atri/.Create-oo+1t#new Vector5#8.8f$ 28.8f$ 28.8f%$Vector5.Dero$ Vector5.2p%; /*"nitialize proAection matri/ for ,rawing ;bAect*/ "igure *-@ The content node displaying the Add menu !atri/ proAection!atri/ @ !atri/.Create6erspecti3e*ield;f View##float%!ath.6" / C.8f$ G.55f$ 8.8Gf$ G888.8f%;
www.it-ebooks.info
1&A , 2esso* %
"igure *-L The Add $%isting -tem dialog bo%
"igure
*-)
/*:et the Culling mode so that unnecessar0 triangles will not be processed . Cull!ode is defined as a member of <asterize:tate in )&1 which defines the current render state of ,e3ice*/ <asterizer:tate state @ new <asterizer:tate#%; state.Cull!ode @ Cull!ode.CullCounterCloc+wise*ace; graphics.Graphics,e3ice.<asterizer:tate @ state; current!odel.,raw#!atri/."dentit0$ 3iew!atri/$ proAection!atri/%; '
$"O8M-1G O.5$CT0 Some ime&6 yo' will nee1 o !"an)e "e &"a3e o* a )ame mo1el *rom i & ori)inal &"a3e a& a re&'l o* an e2en ( For e<am3le6 in a !ar ra!in) )ame6 a&&'me "a a 3layer !"ara! erH& !ar "a& !ra&"e1( In "i& !a&e6 yo' nee1 o &"ow "e im3a! o* "e !ra&" by 1e*ormin) "e area o* "e !ar a**e! e1 by "e !ra&"( For in& an!e6 yo' !an &"ow a 1en in "e *ron b'm3er( In "i& way6 yo' !an 3ro2i1e a !on2in!in) loo. o* 1ama)e(
De*orma ion )enerally *in1& '&e& in )ame&( /o' !an '&e 1e*orma ion6 *or e<am3le6 o ma.e a !"ara! er *a or "in6 o !rea e o!ean wa2e&6 or &im3ly o !"an)e "e a33earan!e o* an obLe! ( -"a e2er "e en1 re&'l 6 o 1e*orm "e obLe! 6 yo' "a2e o mani3'la e "e )eome ry an1 "e e< 're in*orma ion( To 1o "i&6 yo' !"an)e "e AD )eome ry in*orma ion o* "e obLe! an1 "en &en1 "e re2i&e1 in*orma ion *or ran&*orma ion in o 8D 3i<el&( De*ormin) obLe! & i& ma1e ea&y by "e '&e o* &"a1er&(
8$"
For more in*orma7 ion abo' &"a1er&6 re*er o "e &e! ion6 ICrea in) "e Feel o* "e C"ara! er6J in "i& le&&on(
C$8T-"-CAT-O1 8$A A ?ow will you mo!e your game ob:ectsB *.9
MO6-1G O.5$CT0 All )ame& !on ain bo " & a i! obLe! & an1 mo2eable obLe! &( S a i! obLe! & in yo'r )ame !an be ree&6 & one&6 wall&6 an1 &o on( Howe2er6 mo2emen o* & a i! obLe! & !an al&o !"an)e in a!!or7 1an!e wi " "e )ame7&3e!i*i! reB'iremen &( For e<am3le6 in a ma,e )ame6 "e wall& !an mo2e6 or in a !ar7ra!in) )ame6 "e & one& !an mo2e a& a !ar ra!e& by(
Mo2eable obLe! & in a )ame !an be "'man !"ara! er&6 animal&6 or 2e"i!le&( T"e mo2eable obLe! &6 a& "e name &'))e& &6 nee1 o be in mo ion 1e3en1in) on "e )ame & oryline( -"en yo' mo2e obLe! &6 yo' nee1 o e&&en ially 3ro2i1e "e #%A Framewor. wi " "e !"an)e1 3o&i ion 2er i!e& o* "e obLe! 6 an1 "e )ra3"i!& 3i3eline will "en ran&*orm "e mo ion on "e &!reen( Howe2er6 yo' &"o'l1 !on&i1er o "er elemen & w"en yo' mo2e "e obLe! ( For e<am3le6 yo' mi)" nee1 o !on&i1er w"e "er "e obLe! will !olli1e wi " ano "er obLe! on "e &!reen6 or w"e "er "e li)" e**e! on "e obLe! nee1& o be re2i&e1( T"e *ollowin) !o1e &am3le mo2e& an obLe! 4
protected o3erride 3oid 2pdate#Game4ime game4ime%
O
//2pdate position in e3er0 frame Vector5 position @ model"nitial6osition 7 5.8f *game4ime*an0,irection ; //Create translation matri/ from that position worldmatri/ @ !atri/.create4ranslation#position%; ' protected o3erride 3oid ,raw#Game4ime game4ime%
//"nitialize effect and draw model .asic9ffect effect @ new .asic9ffect#%; effect.World model.,raw#%; ' C$8T-"-CAT-O1 8$A A <hy do you need to calculate the point distance between ob:ectsB *.9 @ world!atri/ ;
-10$8T-1G +O-1T -0TA1C$ .$T<$$1 O.5$CT0 -"en 1e&i)nin) "e obLe! & in a )ame6 i i& e&&en ial o !al!'la e "e !on& an mo2emen ran&i ion& o* "e in!l'1e1 obLe! &( An obLe! a.e& &ome ime o mo2e *rom one 3oin o ano "erM a mo2emen ne!e&&i a e& "a yo' m'& a!!o'n *or "e 1i& an!e !o2ere1(
www.it-ebooks.info
1&% , 2esso* %
$ee3in) ra!. o* "e 1i& an!e !o2ere1 allow& yo' o 3ro3erly 3o&i ion "e obLe! on "e &!reen6 a2oi1in) !olli&ion& wi " o "er obLe! &( I al&o allow& yo' o main ain a !on& an &3ee1 o* mo2emen ( For e<am3le6 ima)ine a )ame &!enario in w"i!" a 3layer i& 3layin) a)ain& a robo ( I* "e 3layer *ire& a b'lle on &i)" in) "e robo 6 "e anima ion o* "e b'lle on "e &!reen m'& imi a e real li*e( A& &'!"6 i nee1& o ra2el "e 1i& an!e an1 3a " a& 3er balli& i! 3"y&i!&( T"e !al!'la ion 1e3en1& on "e .in1 o* wea3on '&e1 by "e 3layer( De3en1in) on "e !al!'la ion6 an a&&o!ia e1 .ill ran)e *or "e b'lle !an be 1e ermine1( I* "e robo *all& in "e .ill ran)e6 "e 3layer will be &'!!e&&*'l in .illin) "e o33onen ( /o' nee1 o !al!'la e 1i& an!e& *or 3er*ormin) o3era ion&6 &'!" a& mo2in)6 ro a in)6 an1 &!alin) yo'r obLe! & wi "in a 3lane( In "e #%A Framewor.6 yo' !an '&e "e b'il 7in Vector2. ,istance *'n! ion o !al!'la e "e 1i& an!e be ween wo obLe! &( /o' !an al&o '&e "e ,istance me "o1 o* "e !ath?elper !la&& o !al!'la e "e 1i& an!e an1 analy,e i a)ain& "e ime a.en o en&'re !on& an &3ee1 o* obLe! mo2emen (
C8$AT-1G +/A1$0
C$8T-"-CAT-O1 8$A A <hat is the importance of planes in transforming ob:ectsB *.9
A 1i&!'&&ion on ran&*orma ion o* obLe! & i& no !om3le e wi "o' men ionin) 3lane& an1 a&&o!ia e1 ran&*orma ion&( In "e #%A Framewor.6 yo' !an 3er*orm o3era ion& &'!" a& ro a ion6 ran&la ion6 an1 &!alin) only w"en "e obLe! i& 1e*ine1 wi "in a 3lane( -"en 1e*inin) a 3lane6 yo' nee1 o &3e!i*y "e normal 2e! or6 w"i!" i& "e 3er3en1i!'7 lar 2e! or o "e 3lane6 an1 i & minim'm 1i& an!e o "e !oor1ina e& o* "e ori)in o* "e 3lane( In 8D an1 AD & r'! 're&6 "e !oor1ina e& are re3re&en e1 a& D96 9E an1 D96 96 9E6 re&3e! i2ely( So6 o !rea e a 3lane6 yo' reB'ire i & an)le o* ro a ion Dnormal 1ire! ionE an1 "ei)" D1i& an!e o "e 3oin & on "e !oor1ina e a<e&E( E2ery 3lane "a& a 'niB'e !ombina7 ion o* normal an1 1i& an!e 2al'e&( Fi)'re ;7> ill'& ra e& "e 3lane a& re3re&en e1 by "e #%A Framewor.(
The plane is tangent to a sphere ha!ing its center at the origin =E# E> and a radius =marked as <ista*ce in the diagram>.
In "e #%A Framewor.6 we '&e "e 6lane & r'! 're o 1e*ine a 3lane( T"e 6lane & r'!7 're 3ro2i1e& *iel1& an1 member&( Table ;7= an1 Table ;7> li& "e *iel1& an1 me "o1& o* "e 6lane & r'! 're6 re&3e! i2ely(
www.it-ebooks.info
"-$/
, &ormal
$0C8-+T-O1
This field pro!ides the distance of the 6lane along its normal !ector from the origin. This field pro!ides the normal !ector of the 6lane. The normal !ector is a Vector5 type.
M$T?O
,ot ,otCoordinate
A++/-CAT-O1 Calculates the dot product of a specified VectorC and the current plane. 8eturns the dot product of a specified Vector5 and the 1ormal !ector of the current plane along with the constant !alue of the plane. 8eturns the dot product of a specified Vector5 and the 1ormal !ector of the current plane. etermines whether two instances of a plane are eJual. Checks whether a plane intersects a bounding !olume. Changes the coefficients of the 1ormal !ector of a plane to make it of unit length. Transforms a normaliGed plane by a matri% or Juaternion.
,ot&ormal
8$"
For more in*orma ion on ro a in) an obLe! in a 3lane6 &ee "e &e! ion6 IS!alin) an1 Ro a in) Ma ri!e&6J la er in "i& !"a3 er(
TA2$ 1OT$
T"ree !on!e3 &Kyaw6 3i !"6 an1 rollKare "e an)le& o mea&'re "e mo2emen o* an obLe! "a "el3& o 'n1er& an1 "e ro a ion o* an obLe! in a 3lane( /aw mean& ro a in) a /7a<i& "a 3oin & '36 3i !" mean& ro a in) a #7a<i& "a 3oin & ri)" 6 an1 roll mean& ro a in) a P7a<i& "a 3oin & owar1& "e ob&er2er( T"e #/P are or "o)onal o ea!" o "er( /o' !an '&e ma ri!e& o 3er*orm any o* "e&e ro a ion&( Ma ri!e& are al&o '&e1 *or &!alin) an1 ran&la ion o3era ion& on an obLe! in a 3lane(
/o' !an !rea e .ey7 *rame anima ion& '&in) Sil2erli)" a& an #AML *ile(
MO8$ -1"O8MAT-O1
"or more information about creating keyframe animations# refer to the C2eyframe AnimationsD section in the M0 1 /ibrary.
www.it-ebooks.info
1&$ , 2esso* %
Ea!" .ey*rame in!l'1e& 3arame er& &'!" a& 3o&i ion6 ro a ion6 an1 &!ale& o* an obLe! ( To !rea e in7be ween&6 "e #%A Framewor. a.e& "e 3arame er& *rom "e wo .ey*rame& an1 "en 3re1i! & "e 3o&i ion& "a lie wi "in "e 3robable 3a " o* anima ion( For e<am3le6 ima)ine anima in) a &3a!e&"i3 mo2in) *rom "e '33er7le* !orner o* "e &!reen o "e lower7ri)" !orner o* "e &!reen( T"e 1i& an!e i& .nown an1 !an be e<3re&&e1 by !"an)in) "e ma ri< a33lie1 w"en 1rawin) "e &3a!e&"i3( I* "e ma ri< i& !"an)e1 in a &in)le '31a e o3era ion6 "o')"6 "e &3a!e&"i3 L'm3& *rom one !orner o "e o "er( A &moo " anima ion reB'ire& mo2emen a!ro&& m'l i3le *rame&6 ea!" in1i2i1'al mo2emen &maller "an "e w"ole !orner7 o7!orner mo2e( Ra "er "an &3e!i*yin) ea!" in erme1ia e 3o&i ion6 "e in erme1ia e lo!a ion& are in er3ola e1 by "e &y& em *or ea!" *rame( -"en ran&*ormin) obLe! &6 yo' mi)" wan o 1i&3lay "e ran&*orma ion on "e &!reen "ro')" anima ion( For e<am3le6 &'33o&e a !ar !ra&"e& an1 yo' wan o &"ow "e 1en & on "e !ar bein) *orme1 in an anima ion( To brin) reali&m o "e anima ion6 yo' m'& mo1i*y "e .ey*rame in er3ola ion o* "e ima)e&( /o' !an mo1i*y "e .ey*rame in er3ola ion "ro')" &3e!i*i! me "o1& in "e #AML *ile( A .ey*rame in er3ola ion me "o1 o* an anima ion 1e&!ribe& "e ran&i ion o* "e anima ion be ween "e wo .ey*rame& 1'rin) a 3erio1 o* ime( /o' !an 1e*ine "e .ey*rame in er3ola ion me "o1 wi " re*eren!e o "e anima ion( So6 "e y3e o* in er*rame 1e3en1& on "e in er3ola7 ion me "o1 "a i '&e&( Table ;7? li& & "e "ree in er3ola ion me "o1& an1 "eir *ea 're&(
Table *-& 2eyframe -nterpolation Methods
"$AT78$ The indi!idual interframes mo!e with constant speed. The animation mo!es from one keyframe to the ne%t without any interpolation. -n such cases# no interframe is created and the animation consists of showing only the two keyframes on the screen. The animation displays realistic mo!ement of ob:ects within the specified duration. The 2ey0pline property makes its function uniJue when compared with the other keyframes. The animation with the splined keyframe proceeds Juickly at the start# then slows down in between# and then again speeds up towards the completion.
$4AM+/$ O" 0+AC$0?-+ A1-MAT-O1 The spaceship tra!erses diagonally at a constant speed. The spaceship disappears from the first corner and appears at the second corner.
iscrete
0plined
The spaceship mo!es Juickly at the start# slows towards the center# and then speeds up towards the second corner# gi!ing a realistic feel of an actual spaceship in mo!ement# slowing occasionally to a!oid accidents on the route.
/o' !an al&o !rea e .ey*rame anima ion& '&in) A' oDe&. Maya or A' oDe&. Ma< or any AD So* ware( On!e yo' !rea e .ey*rame anima ion&6 yo' nee1 o e<3or "em o (*b< *orma ( /o' !an "en loa1 "e &3e!i*ie1 mo1el in (*b< *orma in o "e #%A Framewor. '&in) "e *ollow7 in) !o1e( /o' nee1 o 3ro2i1e "e *ollowin) !o1e in "e Game.-oadContent me "o14
!odel mesh @ Content.-oad#!odel.##*ilepath.%;
www.it-ebooks.info
MO6$M$1T -"en anima in) a !"ara! er6 yo' m'& !are*'lly 1e&i)n e2ery a! ion or mo2emen ( Mo2e7 men o* a !"ara! er6 e&3e!ially o* a li2in) bein)6 1i**er& *rom "e mo2emen o* o "er obLe! & in a )ame(
In )eneral6 anima in) a !"ara! er in2ol2e& ro a ion an1 mo2emen or ran&la ion o* "e !"ara! er( %ow6 le '& &ee "ow o anima e a )ame mo1el '&in) !o1e &am3le&( T"e *ollowin) !o1e &am3le 1e!lare& an in& an!e o* "e !odel !la&& an1 loa1& "e )ame mo1el in o "e !odel obLe! (
/* ,eclare the 5, model and animation pla0er to pla0 animation in the Game class. 1nimation6la0er is an builtBin class in )&1 which is used to pla0 animation.*/ !odel current!odel; 1nimation6la0er animation6la0er; !atri/ cameraView!atr/; !atri/ proAection!atri/; Vector5 6osition; /* &ow load the model and get the reIuired information to pla0 an animation in the -oadContent method of the Game class */ protected o3erride 3oid -oadContent#%
//-oad model current!odel @ Content.-oad#!odel.#0our model imported from !a0a in fb/ format%; /*&ow retrie3e s+inning data . We need to get the s+inning information as it is reIuired to initialize the 1nimation6la0er obAect e3entuall0 will pla0 the animation .*/ :+inning,ata s+inning,ata @ current!odel.4ag as :+inning,ata;
which
www.it-ebooks.info
1&! , 2esso* %
//initialize animation pla0er which will be used to pla0 animation animation6la0er new 1nimation6la0er#s+inning,ata%; /*get desired animation information using the 1nimationClip obAect */ 1nimationClip clip @ s+inning,ata. 1nimationClipsE=idle>F; //pla0 animation animation6la0er.:tartClip#clip%; /*initialize 3iew and proAection matri/ for drawing the cameraView!atr/ @ !atri/.Create-oo+1t#new Vector5#8.8f$ 28.8f$ 28.8f%$ Vector5.Dero$ Vector5.2p%; / * "nitialize proAection matri/ for ,rawing ;bAect */ proAection!atri/ H !atri/.Create6erspecti3e*ield;fView##float%!ath.6" / C.8f$ G.55f$ 8.8Gf$ G888.8f%; '
model*/
On!e yo' 3lay "e anima ion6 yo' nee1 o '31a e i e2ery *rame( /o' !an 1o i by !allin) "e 2pdate me "o1 o* "e 1nimation6la0er obLe! in "e Game.2pdate me "o1( T"e *ollowin) !o1e r'n& "e anima ion4
protected o3erride 3oid 2pdate#Game4ime game4ime%
%ow6 yo' nee1 o 1raw "e mo1el o !"e!. w"e "er anima ion i& 3layin) or no ( T"i& 3ar i& bi ri!.y( To 'n1er& an1 "i&6 yo' nee1 o .now &ome ba&i!& o* anima ion( In real li*e6 a& bone& in "e bo1y mo2e6 m'&!le an1 &.in mo2e alon) wi " i ( Similarly in "e AD en2ironmen 6 3layin) "e anima ion !"an)e& "e bone o* "e !"ara! er( In "e Game.,raw me "o16 yo' re rie2e "i& bone in*orma ion an1 mo2e "e 3ar & o* "e !"ar7 a! er '&in) "e ran&*orma ion ma ri< o* "e a&&o!ia e1 bone( T"e *ollowin) !o1e 1raw& "e mo1el4
6rotected o3erride 3oid ,raw #Game4ime gametime%
//:et bone matri/ !atri/EF bones @ animation6la0er.Get:+in4ransforms#%; //"terate each mesh part in the model foreach #!odel!esh mesh in current!odel.!eshes%
www.it-ebooks.info
//:et
bone
information
effect.:et.one4ransform s#bones%; /*:et other tranformation matrices */ effect.world @ !atri/."dentit0; effect.View @ effect.6roAection @ proAection!atri/; effect.9nable,efault -ighting#%; ' mesh.,raw#%; ' ' cameraView!atr/;
To ro a e "e !"ara! er &im'l aneo'&ly6 1e!lare "e *ollowin) 2ariable in yo'r Game !la&&4
!atri/ rotation ;
@!atri/."dentit0;
6osition @Vector5.Dero;
%ow in "e Game.2pdate me "o16 !rea e a ro a ion ma ri< on "e .ey 3re&& o* IDJ4
if #+e0:tate."sJe0,own#Je0s.,%% rotation *@ !atri/.Create*rom1/is1ngle#Vector5.2p$ B!ath?elper.6i / 2H.8f%; '
/o' !an al&o ran&la e "e !"ara! er w"ile wal.in)( Fir& 6 yo' 3lay Iwal.J anima ion o* "e !"ara! er6 an1 "en mo1i*y "e 1nimationClip obLe! a& &"own below(
1nimationClip clip @ s+inning,ata.1nimationClipsE=wal+>F;
www.it-ebooks.info
11& , 2esso* %
In "e 2pdate loo36 on any .ey 3re&&6 3ro2i1e "e *ollowin) !o1e4
6osition ;@ Vector5 #8$ 8$ 2.8f * game4ime%; In "e ,raw me "o16
An ar i& 3ro2i1e& "e anima ion name& &'!" a& Ii1leJ an1 Iwal.J "a are '&e1 in "e !o1e( An anima or !an &e "e name o* anima ion6 w"ile anima in) "e !"ara! er in Ma<6 Maya6 or any AD &o* ware( He !an al&o &e "e anima ion name6 w"ile e<3or in) "e anima ion o any #%A &3e!i*i! *orma ( To .now "e anima ion& a2ailable in any e<3or e1 obLe! 6 yo' !an o3en "e (< or (*b< *ile in a %o e3a1 a33li!a ion an1 !"e!. *or anima ion name&(
"8AM$ 8AT$
C$8T-"-CAT-O1 8$A A ?ow does fps affect animationB *.;
A& alrea1y 1i&!'&&e16 *rame ra e i& "e &3ee1 a w"i!" "e ima)e i& re*re&"e1( A *rame re*er& o a &in)le ima)e 3ro1'!e1 by "e ima)in) or a 1i&3lay 1e2i!e( Frame& re*er& o 'niB'e !on&e!' i2e ima)e& an1 &e!on1 L'& re*er& o "e 'ni o* ime in w"i!" "ey are 1i&3laye1( For e<am3le6 an anima ion "a i& lo!.e1 a :8 *3& a.e& one &e!on1 o 2iew e2ery :8 !on&e!' i2e 'niB'e ima)e&( A *rame ra e a**e! & "e anima ion in 2i1eo )ame& in wo way&( Fir& 6 w"en *3& i& &e low6 i 1oe& no e**e! i2ely 3ro1'!e "e ill'&ion o* mo2emen ( Se!on16 w"en *3& i& no !on&i& en 1'e o in!rea&e1 ime in "e !om3' a ion o* a *rame an1 1i**er& lar)ely *rom one &e!on1 o "e ne< 6 i 3ro1'!e& a Ler.y mo ion or anima ion( T"e *rame ra e !an 2ary *rom )ame o )ame( I 1e3en1& on "e & yle o* "e )ame( An a! ion )ame mi)" reB'ire *rame ra e& lo!.e1 be ween A9 *3& an1 @9 *3&6 be!a'&e "e&e )ame& in2ol2e "e 3layer& o ra!. "e anima e1 !"ara! er& or obLe! & B'i!.ly an1 rea! *a& er( T"i& al&o "el3& !"an)eo2er "e *rame& &o B'i!.ly "a i will no be ea&ily 2i&ible an1 will a33ear a& i* "e !"ara! er 3er*orm& reali& i!ally(
0+8-T$ A1-MAT-O1 Generally6 w"en yo' anima e an obLe! 6 yo' ma.e "e reB'ire1 !"an)e& o "e 3o&i ion6 a33earan!e6 an1 o "er mo1i*i!a ion& man'ally o ea!" ima)e( B' !on&i1er a &i 'a ion in w"i!" yo' nee1 o ma.e a &imilar !"an)e on a n'mber o* !o3ie& o* "e &ame obLe! ( +'& "in.in) abo' i ma.e& yo' *eel e<"a'& e1(
E&&en ially6 &3ri e anima ion wor.& on "e 3rin!i3le "a anima ion in 8D )ame& !an be &e by !rea in) a )ro'3 o* ima)e& "a 2ary only &li)" ly *rom ea!" o "er( T"e 1i**eren!e& in "e ima)e& &"o'l1 be &'!" "a "e "'man eye !anno 1i& in)'i&" "e&e 1i&&imilari ie&( To !rea e "e &3ri e anima ion o* a &3a!e&"i36 *or e<am3le6 yo' *ir& 3re3are "e bare mini7 m'm n'mber o* *rame& reB'ire1 *or anima ion( /o' "en ma.e "e&e *rame& mo2e aro'n1 one a* er ano "er in a !on in'o'& mo ion( /o' 1o no nee1 o man'ally re1raw "e *rame& *or ea!" loo3( T"e *ollowin) i& "e &am3le &3ri e anima ion !o1e *or a ro a in) !'r&or( T"e !o1e 1e!lare& "e reB'ire1 2ariable& in "e Game !la&&.
/*"nitialize sprite batch to hold sprite information*/
4e/ture2, te/ture"mage;
www.it-ebooks.info
www.it-ebooks.info
control
the
T"e *ollowin) !o1e loa1& "e e< 're in "e Game.-oadContent me "o14
protected o3erride 3oid -oadContent#% //-oad sprite te/ture te/ture"mage @ manager.-oad#4e/ture2,.#te/ture6ath%; '
In "e Game.2pdate me "o16 anima e "e &3ri e by &e in) "e current*rame o 9 D*or e<am3le6 "e *ir& )ri1 o* "e ima)e in "e e< 'reE an1 ren1erin) "e )ri1( /o' !an !"e!. "e 2ariable time:ince-ast*rame *or a 3re1e*ine1 timedela06 w"i!" i& in "i& !a&e "e 2al'e in "e seconds6er*rame( -"en "e ime limi i& !ro&&e16 mo2e o "e ne< )ri1 by in!remen in) "e 2al'e o* "e current*rame an1 ren1er "e )ri1( T"i& &eB'en!e !on in'e& 3ro1'!in) an e**e! o* an anima in) !'r&or( -"en yo' rea!" "e en1 o* "e )ri1 o* a line6 mo2e o "e ne< line( -"en all )ri1& are !o2ere16 re&e "e !o'n er o 3oin o "e *ir& )ri1 a)ain( Fi)'re ;7? &"ow& "e ori)inal e< 're &"ee *or anima in) !'r&or(
www.it-ebooks.info
11A , 2esso* %
Fi)'re ;7:9 &"ow& "ow "e e< 're &"ee i& 1i2i1e1 wi " a )ri1 o* line& 3ro)ramma i!ally( By loo.in) a "e )ri1 in Fi)'re ;7?6 yo' !an in*er "a "e &i,e o* "e e< 're &"ee !an be &e o Poin DC6 @E( A& in Fi)'re ;7?6 "e #7a<i& "a& *i2e )ri1&6 an1 "e /7a<i& "a& &i< )ri1&(
"igure *-;E The te%ture sheet with grid
6rotected o3erride 3oid 2pdate#Game4ime gametime% //"ncrease current frame time:ince-ast*rame ;@game4ime; if #time:ince-ast*rame . seconds6er*rame% time:ince-ast*rame B@ seconds6er*rame; /*"ncrement counter as dela0 is o3er .*/ ;;current*rame.); /*Chec+ if all the grids in the horizontal direction in a line are co3ered*/ if /*"f 0es$ mo3e the counter to the ne/t line .*/ current*rame.) @ 8; ;;current*rame.Y; /*Chec+ if all the lines are also co3ered*/ if #current*rame.Y .@ sheet:ize.Y% /*"f 0es$ set the counter to first line again .*/ current*rame.Y @ 8; ' ' #current*rame.) .@ sheet:ize.)%
/*Get mouse cursor position for drawing the sprite at that point on the screen*/ !ouse:tate current!ouse:tate @ !ouse.Get:tate#%; position @@ current!ouse:tate.Y%; new Vector2#current!ouse:tate.)$
/*Create a <ectangle obAect to specif0 the particular area of te/ture 0ou want to draw using the information sa3ed in the current*rame 3ariable */ <ectangle rect @ new <ectangle#current*rame.) frame:ize.Y$ frame:ize.)$ frame:ize.Y%; sprite.atch..egin#%; sprite.atch.,raw#te/ture"mage$ Color.White%; sprite.atch.9nd#%; ' position$ rect$ * frame:ize.)$ current*rame.Y *
0CA/-1G A1 8OTAT-1G MAT8-C$0 A& alrea1y 1i&!'&&e16 "e ma ri< & r'! 're in #%A !on ain& ; ( ; elemen & *or "e ma ri< 2al'e&( /o' !an '&e ma ri!e& *or enlar)in) "e obLe! & in an anima ion an1 *or ro a in) "e obLe! & aro'n1 "e a<e&( T"e&e are re*erre1 o a& &!alin) an1 ro a in) ma ri!e&6 re&3e! i2ely( /o' !an al&o '&e a ma ri< *or !al!'la in) "e 1i& an!e be ween wo obLe! & an1 !"an)in) "e 3o&i ion& o* bo " 1e3en1in) on "e !al!'la e1 1i& an!e6 a& in w"en yo' nee1 o 1e3i! wo !ar& !olli1in)( Table ;7:9 li& & &ome o* "e me "o1& a2ailable in "e ma ri< & r'! 're *or &!alin)
an1 ro a in) 3'r3o&e&(
Table *-;E 8otating and 0caling Methods of the Matri% 0tructure
"-$/
Create:cale Create<otation)
$0C8-+T-O1
This method creates a scaling matri% that can be used to scale an ob:ect. This method creates a matri% that can be used to rotate a set of !ertices around the 4-a%is. Aou can specify the rotation angle in radians. This method creates a matri% that can be used to rotate a set of !ertices around the A-a%is. Aou can specify the rotation angle in radians. This method creates a matri% that can be used to rotate a set of !ertices around the Q-a%is. Aou can specify the rotation angle in radians.
Create<otationY
Create<otationD
www.it-ebooks.info
www.it-ebooks.info
11% , 2esso* %
To 1o'ble "e &i,e o* an obLe! 6 in or1er o loo. bi)6 yo' '&e "e &!alin) ma ri<( T"e *ollowin) ma ri< )enera e& a &!alin) ma ri< *or all "ree a<e&( Fi)'re ;7:: &"ow& "e &!alin) o* an obLe! '&in) "e &!alin) ma ri<(
!atri/ result; !atri/.Create:cale#2.8f$ 2.8f$ 2.8f$ out result%; "igure *-;; 0caling an ob:ect using the scaling matri%
T"e ro a in) ma ri< a33lie& "e &in an1 !o& *'n! ion& an1 &i)ni*ie& "e in1i2i1'al ro a ion aro'n1 "e a<e& o2er an an)le "e a D7E( T"e *ollowin) !o1e &am3le '&e& "e !atri/ !la&& *or ro a ion( Fi)'re ;7:8 &"ow& "e ro a ion o* an obLe! '&in) "e ro a ion ma ri<(
!atri/ rotationmatri/; //create rotation matri/ around ) a/is rotationmatri/ @ !atri/.Create<otation)#2.8f%; //create rotation matri/ around Y a/is rotationmatri/ @ !atri/.Create<otationY#2.8f%; //create rotation matri/ around D a/is rotationmatri/ @ !atri/.Create<otationD#2.8f%;
T"e ran&la ion ma ri< !al!'la e& "e 1i& an!e be ween wo obLe! & an1 a!!or1in)ly ran&*orm& or mo2e& "e wo obLe! & on "e &!reen( T"e *ollowin) !o1e &am3le in "e Game.2pdate me "o1 mo2e& obAectG owar1& obAect2( Fi)'re ;7:A &"ow& "e mo2emen o* an obLe! '&in) ma ri< ran&la ion( T"e !o1e '&e& "e &ormalize me "o1 o* "e Vector5 & r'! 're o !rea e a 'ni 2e! or *rom "e 1ire! ion o* "e obAectG in "i& !a&e( T"e re&'l an 2e! or i& a 'ni 2e! or 3oin in) in "e &ame 1ire! ion a& obAectG(
//Get the direction in which obAectG has to mo3e . Vector5 direction K ;bAect26osition B ;bAectG6osition; /"n 5, world$ before using an0 3ector we need to normalize it. !athematicall0 normalized 3ector of V K V 3ector / !agnitude of V 3ector . "t also can be treated as the 2nitVector of V. */
www.it-ebooks.info
www.it-ebooks.info
11$ , 2esso* %
In real li*e6 w"en we loo. a a 3er&on6 we a.e in m'!" more "an "e 3er&onH& 3"y&i!al !"ara! eri& i!&( T"e way "e &"a1ow *all& be&i1e "e 3er&on or "e way "e &'nli)" "i & "e 3er7 &onH& "air !an in*l'en!e o'r 3er!e3 ion o* "e 3er&on( For e<am3le6 ima)ine "a yo' are loo.in) a a 3er&on w"o i& an)ry an1 owerin) abo2e yo'( I* "e blo!.& "e &'n an1 !a& & a &"a1ow o2er yo'6 yo' will na 'rally *eel &!are1Ka 3er!e3 ion o* *ear "a i& in!rea&e1 by "e &"a1ow !a& on yo'( I i& "ere*ore im3or an o !on&i1er &'!" elemen & w"en !rea in) a )ame worl1 "a i& a& !lo&e o reali y a& 3o&&ible( T"e y3e o* )ame "a yo' are 1e2elo3in) 1i! a e& w"e "er yo' m'& !on&i1er !rea in) "e *eel o* "e !"ara! er in yo'r )ame( For &ome .in1& o* )ame&6 yo' !an a2oi1 em3"a&i,in) "e !"ara! erH& *eel in "e )ame( For e<am3le6 in Co'n er S ri.e6 "e 3layer i& !on!erne1 only wi " .illin) "e o33onen an1 winnin) "e )ame( T"ere*ore6 "e *eel o* "e !"ara! er wa& no a !on&i1era ion in "a 3ar i!'lar )ame( In !on ra& 6 "e &e in) *or "e 2i1eo )ame &"own in Fi)'re ;7:; i& !ree3y an1 1ar.( T"ere*ore6 "ere i& am3le '&e o* 2ario'& e!"niB'e& o !rea e a *eel o* "e !"ara! er an1 "e )ame a& &'!"( For &'!" )ame&6 yo' !an !rea e obLe! & an1 !"ara! er& ea&ily6 b' "e !"allen)e lie& in )i2in) li*e6 or in o "er wor1&6 !rea in) "e *eel o* "e !"ara! er(
"igure *-;* ark and creepy !ideo game screen contrast
C$8T-"-CAT-O1 8$A A ?ow can you manage the appearance of te%turesB *.;
A++/A-1G "-/T$80 TO T$4T78$0 To ma.e an ima)e reali& i!6 yo' '&e e< 're&( A e< 're i& a 8D ima)e "a i& a33lie1 o a )ame obLe! or !"ara! er o 1e*ine i & &'r*a!e( Some ime& !rea in) a e< 're alone i& no &'**i7 !ien ( /o' nee1 o a33ly *il er& o yo'r e< 're o !rea e a reali& i! *eel( For e<am3le6 le '& &ay "a yo' "a2e !rea e1 an ima)e o* a ro')"6 ro!.y errain an1 "e 3layer !"ara! er i& mo2in) on "i& errain( -"en6 in yo'r )ame6 yo' &"ow a !lo&e7'3 o* "e !"ara! er "i in) "e ro!.y )ro'n1 an1 in 3ain6 yo' will nee1 "e ro!.y errain o a33ear a& a !oar&e6 )rainy &'r*a!e o !om3le e "e reali&m o* 3ain on "e !"ara! erH& *a!e(
Howe2er6 yo' mi)" *in1 "a "e #%A Framewor. 1i&3lay& a ra "er bl'rry6 &moo " errain e< 're in& ea1 o* a 3i<ela e16 ro')" loo.( T"i& 3roblem o* e< 're& lo&in) "eir a33earan!e i& no 1'e o an i7alia&in)6 b' i& a! 'ally 1'e o "e in er3re a ion "a "e "ar1ware ma.e& o* "e e< 're&( An i7alia&in) i& a &o* ware e!"niB'e "a 1imini&"e& "e La))e1 e1)e& o 3ro1'!e &moo " e1)e&( T"e !om3' er &!reen '&e& 3i<el& o 1raw obLe! &( Howe2er6 real7worl1 obLe! & are 1rawn '&in) line& an1 !'r2e&M "ere*ore6 we alway& )e La))e1 e1)e& w"ile 1rawin) "em on "e &!reen( An i7alia&in) remo2e& "e e1)e& by bl'rrin) "em(
TA2$ 1OT$
T"e #%A Framewor. "el3& '& mana)e "e a33earan!e o* "e e< 're& "ro')" "e '&e o* *il7 er&( A *il er i& a me "o1 or e!"niB'e "a enable& yo' o !"an)e "e a33earan!e o* e< 're& on ima)e&( /o' mi)" nee1 o .ee3 a33lyin) 1i**eren *il erin) me "o1& wi "in a )ame o !rea e a *eel o* "e !"ara! er( A any 3oin 6 yo' !an '&e "e 4e/ture*ilter *iel1 o &ee "e !'rren *il erin) me "o1 '&e1 in "e )ame( /o' nee1 o 'n1er& an1 "e 2ery ba&i! in3' *or a *il er o wor.6 w"i!" i& "e e< 're !oor1ina e& o* "e e< 're on w"i!" "e *il er i& o be a33lie1( T"e e< 're !oor1ina e& are re3re&en e1 a& e<el&6 or e< 're elemen ( A e< 're !on&i& & o* an array o* 3i<el& "a are re*erre1 o a& e<el&( A e<el i& "e &malle& 'ni o* e< 're "a "e GPU !an 3ro!e&&( A e<el )i2e& "e !oor1ina e& o* "e e< 're a.7
TA2$ 1OT$
in) D96 9E in "e '33er le* an1 Dw6 "E in "e lower ri)" 6 w"ere w i& "e wi1 " an1 " i& "e "ei)" o* "e e< 're ima)e( T"e "ei)" an1 wi1 " are re3re&en e1 alon) a U an1 V a<i&6 re&3e! i2ely6 an1 are !alle1 UV !oor1ina e&( /o' !an lo!a e "e *orma o* "e e<el in "e :urface*ormat !la&& en'mera ion o* a 4e/ture2, !la&& obLe! ( -"en yo' wor. wi " e< 're&6 yo' 1e ermine w"ere in a 3ar i!'lar &3a!e a e< 're will be a33lie16 w"i!" i& !alle1 e< 're ma33in)( Moreo2er6 yo' al&o nee1 o 1e ermine w"e "er yo' nee1 o a33ly a *il er on "e e< 're or no ( T"i& 1e!i&ion 1e3en1& on "e e<el in*orma ion( -"en "e e< 're i& oo lar)e or oo &mall *or "e )i2en &"a3e6 "en yo' nee1 o '&e *il er& o ei "er ma)ni*y or &"rin. "e e< 're( T"e :ampler:tate !la&& in "e #%A Framewor. 1oe& all "e 3ro!e&&in) a' oma i!ally "ro')" &am3lin)( -"en yo' '&e "e :ampler:tate !la&&6 yo' allow #%A o 1e ermine "ow o &am3le a e< 're or6 in &im3le wor1&6 '&e a 3ar i!'lar e< 're( -"en yo' '&e "e :ampler:tate !la&&6 i* "e e< 're i& oo bi) or oo &mall *or "e ima)e6 a33ro3ria e *il er& are a' oma i!ally a33lie1 on "e e< 're( A ma)ni*i!a ion *il er enlar)e& "e e<7 're by re3ea in) "e &ame e<el 2al'e& *or m'l i3le 3i<el&6 w"i!" !an re&'l in a bl'rre1 o' 3' ( A *il er "a &"rin.& "e e< 're i& more !om3le<( T"i& *il er a11& m'l i3le e<el 2al'e& in o one e<el 2al'e( T"i& !an !a'&e an i7alia&in) or La))e1 e1)e& on "e *inal ima)e( T"ere*ore6 a be er way o &"rin. a e< 're i& o '&e a mi3ma3(
TA2$ 1OT$
A mi3ma3 i& a &eB'en!e o* e< 're& "a 3ro2i1e& e< 're in*orma ion in 1i**eren le2el&( Ea!" le2el o* a mi3ma3 3ro2i1e& a 3ro)re&&i2ely lower re&ol' ion o* "e &ame ima)e( A b'il 7in *orm'la en&'re& "a ea!" le2el i& a &maller &i,e "an i & 3re2io'& le2el( -"en "e e< 're nee1& o be &"r'n.6 "e #%A Framewor. will a' oma i!ally a.e "e mi37 ma3 le2el "a i& !lo&e& o "e reB'ire1 &i,e( Si,e "ere re*er& o "e ima)e re&ol' ion( In earlier 2er&ion& o* #%A6 yo' nee1e1 o man'ally &e "e wo *il er& &e3ara ely( In #%A ;(96 "owe2er6 "e :ampler:tate !la&& allow& yo' o &e "e 3arame er& *or ma)ni*i!a ion an1 &"rin.a)e o* e< 're& '&in) "e *ilter 3ro3er y( -e nee1 o &e "e 3arame er& *or "i& *ilter 3ro3er y in "e 4e/ture*ilter !la&& 1e!lara ion 3ar o* "e !o1e( T"i& *ilter 3ro3er y in!l'1e& "e *ollowin) 2al'e&4 N Linear N Poin N Ani&o ro3i! N -inear!ip6oint N 6oint!ip-inear
www.it-ebooks.info
11! , 2esso* %
N N N N
Ea!" o* "e&e 2al'e& 1ire! & "e GPU o "e y3e o* *il erin) i nee1& o '&e w"en 1rawin) "e ima)e( Ba&i!ally6 "ree y3e& o* e< 're *il erin) are '&e1 in "e #%A Framewor.4 N Poin *il erin)4 -"en !"oo&in) be ween wo e<el&6 "e GPU !an !"oo&e ei "er o* "e wo( T"e e< 're *ea 're& o* "e !"o&en e<el are '&e1 o 1raw "e e< 're on o "e 3i<el( T"i& y3e o* *il erin) !a'&e& abr'3 !"an)e& in "e e< 're o* "e *inal ima)e( Poin *il erin) i& "e mo& ba&i! y3e o* e< 're *il erin)( N Linear *il erin)4 U&in) linear *il erin)6 "e GPU !an !al!'la e a e<el 2al'e *rom "e )i2en wo e<el& an1 '&e "i& re&'l an e<el o !rea e "e *inal ima)e( T"i& *il erin) )i2e& a &moo "er *ini&" o "e ima)e !om3are1 o 3oin e< 're *il erin)( Howe2er6 linear *il erin) !an !a'&e a La))e1 e1)e *ini&" an1 i& no &'i able *or low 1i& an!e e< 're&( N Ani&o ro3i! *il erin)4 Mo& e< 're *il erin) me "o1& '&e a &B'are *il erin) 3a ern "a i& a33lie1 in all 1ire! ion& in "e &ame manner( A *il erin) 3a ern 1e*ine& "ow "e ima)e e<el& are bl'rre1( A &B'are *il erin) 3a ern6 or i&o ro3i! *il erin)6 !an !a'&e alia&in) or a La))e1 loo. a !'r2e&( In !on ra& 6 ani& ro3i! *il erin) '&e& a non&B'are *il erin) 3a ern "a "el3& yo' a2oi1 "e La))e1 *ini&"( T"i& .in1 o* *il erin) i& 3ar i!'larly &'i e1 *or 1e ailin) 1i& an e< 're&6 &'!" a& mo'n ain& in "e ba!.)ro'n1 or a lon)6 win1in) roa1( Howe2er6 ani&o ro7 3i! *il erin) reB'ire& a lo o* memory an1 mi)" !a'&e "e )ra3"i!& 3er*orman!e o la)( Table ;7:: 3re&en & "e 1i**eren *il er 3ro3er y 2al'e& a2ailable in "e #%A Framewor. an1 "eir !orre&3on1in) *il erin) me "o1 1ire! ion& o "e GPU(
Table *-;; "ilter +roperty 6alues with Corresponding irections
-8$CT-O10
/inear filtering +oint filtering Anisotropic filtering Magnify30hrinkH /inear filtering .etween Mipmap le!elsH +oint filtering Magnify30hrinkH +oint filtering .etween Mipmap le!elsH /inear filtering 0hrinkH /inear filtering MagnifyH +oint filtering .etween Mipmap le!elsH /inear filtering 0hrinkH /inear filtering MagnifyH +oint filtering .etween Mipmap le!elsH +oint filtering 0hrinkH +oint filtering MagnifyH /inear filtering .etween Mipmap le!elsH /inear filtering 0hrinkH +oint filtering MagnifyH /inear .etween Mipmap le!elsH +oint filtering
!in-inear!ag6oint!ip6oint
!in6oint!ag-inear!ip-inear
!in6oint!ag-inear!ip6oint
www.it-ebooks.info
-"en yo' '&e "e :ampler:tates !la&&6 yo' nee1 o !on&i1er "e 1e*a'l & a e an1 mo1i*y i i* reB'ire1 *or yo'r )ame( T"e *ollowin) !o1e &am3le &e & "e 3ro3er y 2al'e& *or "e :ampler:tates !la&&(
Graphics,e3ice.:ampler:tatesE8F
:ampler:tate.-inearWrap;
4e/ture*ilter.-inear ;
@ @ @ @
C ;
Graphics,e3ice.:ampler:tateE8F.!a/1nisotroph0
TA2$ 1OT$
:ampler:tate &"o'l1 be
T"e 1e*a'l & a e& *or "e :ampler:tate !la&& are4 :( I '&e& linear *il erin)( 8( I 1oe& no '&e mi3ma33in)( A( I &e & "e ma<im'm ani& ro3"y 2al'e o ;(
/-G?T-1G Li)" in) i& one o* "e mo& im3or an an1 in*l'en ial )ame 1e&i)n !om3onen & "a en"an!e& "e ae& "e i!& o* yo'r )ame 2i&'al&( I "a& "e 3ower o ma.e or brea. "e 2i&'al "eme an1 "e a mo&3"ere o* a )ame( -i "o' "e li)" in) e**e! 6 "e !om3le e )ame en2ironmen wo'l1 loo. *la an1 'nin ere& in)( Li)" in) ma.e& "e 2i&'al& loo. &!ary or !o,y( I a')men & "e "ree71imen&ional *eel o* "e obLe! & an1 !rea e& !om3o&i ion an1 balan!e o lea1 "e 3layerH& eye& aro'n1(
Li)" in) i& an im3or an ool o !rea e "e *eel o* a !"ara! er6 be!a'&e !er ain 3er!e3 ion& a&&o!ia e1 wi " a !"ara! er !an be *orme1 "ro')" "e !le2er '&e o* li)" in)( For e<am3le6 mo& 2illain !"ara! er& in )ame& are *ea 're1 o remain or mo2e "ro')" &"a1ow& o "i)"li)" "eir 1ar. na 're( Game& &'!" a& DOOM A6 Re&i1en E2il6 an1 Silen Hill are &e in a )loomy6 1ar. worl1( T"e '&e o* re1'!e1 li)" 6 &"a1ow&6 an1 1'll !olor one& "el3 o !rea e a !ree3y *eelin) in "e 3layer( On "e o "er "an16 *an a&y7ba&e1 )ame&K&'!" a& S'3er Mario6 Ala1in6 an1 My& ery I&lan1Kare bri)" an1 !olor*'l wi " "e '&e o* li)" o !rea e an a12en 'ro'& en2ironmen ( A *ew a&3e! & o* li)" in) !an be a11re&&e1 1'rin) !"ara! er 1e&i)n i &el*( For e<am3le6 a 2illain !"ara! er mi)" wear 1ar.7!olore1 !lo "in) *or ea&e in blen1in) wi " "e &"a1ow&( Li)" in) a& a !on&i1era ion 1oe& no en1 wi " !"ara! er 1e&i)n( In *a! 6 i mo2e& wi " "e !"ara! er6 B'i e li erally( -"en a !"ara! er mo2e&6 "e e**e! o* li)" *allin) on "im or "er m'& al&o be !a3 're1 reali& i!ally in "e )ame( For e<am3le6 i* "e 2illain !"ara! er mo2e& *rom "e &"a1ow& in o li)" 6 "e !"ara! er m'& imme1ia ely re*le! "e !"an)e in erm& o* be!omin) more 2i&ible( In DOOM6 "ere are m' a e1 e2il !"ara! er& in e2ery !orner o* "e &3a!e&"i36 b' &ome "in) "a& )one wron) an1 "e li)" o* "e en ire &3a!e&"i3 i& *li!.erin)( Some o* "e 3a&&a)e& are !om3le ely 1ar. an1 "e 3layer !"ara! er nee1& o '&e "i& or "er *la&"li)" o &ee w"ere "e !"ara! er i& )oin)( A a 3oin w"en "e 3layer !"ara! er "ear& &ome "in) an1 1ire! & "e li)" o i 6 "e !"ara! er &ee& an e2il !"ara! er abo' o 3o'n!e( T"i& i& an e<am3le in w"i!" "e li)" elemen 3lay& a 2i al role in !rea in) a *ear *a! or an1 b'il1in) "e &'&3en&e in "e )ame *or "e 3layer( Pro2i1in) 3ro3er li)" in) in )ame& in2ol2e& !al!'la in) "e re&'l in) !olor o* "e &'rro'n1in) obLe! & or !"ara! er& w"en li)" *all& on "em( To1ay6 )ame en)ine& 3ro2i1e 3re1e*ine1 3ro37 er ie& an1 *'n! ion& "a yo' !an '&e o !rea e li)" in) in )ame&( T"e #%A Framewor. '&e& a b'il 7in *orm'la "a "el3& yo' 3re1i! "e amo'n o* 1ire! ional li)" *allin) on an obLe! ( T"i& "el3& yo' o "en 1e*ine "e 3arame er& o* "e re&'l in) !olor& o en&'re a &moo " e**e! o* "e li)" on "e obLe! (
www.it-ebooks.info
1A& , 2esso* %
To 'n1er& an1 "i& e!"niB'e6 le '& !on&i1er a rian)le( Fi)'re ;7:C 1i&3lay& an ill'& ra e1 e<am3le o* "i& e!"niB'e(
"igure *-;@ -llustration of an e%ample showing the working of lighting in 41A
9 (
6erte% normal
In Fi)'re ;7:C6 a 1ire! ional li)" 6 &'!" a& &'nli)" 6 *all& on one &i1e o* "e rian)le( %o e "a "e &i1e *a!in) "e &'n i& bri)" er or6 in )ra3"i!al erm&6 m'& be &een more "an "e o "er &i1e( To re3re&en "i& in erm& o* "e ima)e !olor6 "e #%A Framewor. reB'ire& wo in3' &K "e 1ire! ion o* "e li)" an1 "e InormalJ a ea!" 2er e<( Ver e< normal mean& a Vector5 !om3onen "a i& 3er3en1i!'lar o "e 2er e<( Ea!" 2er e< i& a&&o!ia e1 wi " 2er e< normal in*orma ion( In #%A6 i i& Vector5 obLe! ( T"e #%A Framewor. '&e& i & b'il 7in *orm'la o !al!'la e "i& amo'n o* li)" a' oma i!ally6 &a2in) yo' a lo o* man'al !al!'la ion&( /o' &im3ly nee1 o 3ro2i1e "e #%A Framewor. "e an)le "a "e re*le! e1 ray will ma.e wi " "e li)" ray6 or an)le o* in!i1en!e( T"e #%A en)ine 3roLe! & "e amo'n o* li)" o be re*le! e1 a& a 2e! or( T"i& 2e! or o' 3' i& '&e1 a& an in3' 3arame er *or ren1erin) !olor( T"e #%A Framewor. allow& yo' o &"are a 2e! or !ommon amon) wo 2er i!e& o en&'re a &moo " e**e! ( /o' !an "ere*ore a2oi1 e1)e1 li)" in) or &"ar3 !olor !on ra& &( T"e #%A Framewor. !on&i1er& any &'r*a!e o be ma1e '3 o* rian)le&6 w"i!" mean& "a yo' !an '&e "e b'il 7in *orm'la *or !al!'la in) "e amo'n o* li)" no L'& on rian)le&6 b' al&o on a !"ara! erH& *a!e( T"i& enable& yo' o )i2e a &moo "6 reali& i! *eel o yo'r !"ara! er( For AD !"ara! er& an1 obLe! &6 "e #%A *ramewor. '&e& 3er73i<el li)" in)( In "i& e!"niB'e6 "e li)" &o'r!e i& a 3oin in AD &3a!e an1 &"ine& li)" in e2ery 1ire! ion( E2ery obLe! an1 !"ara! er in "e AD &3a!e i& li by a !er ain amo'n o* li)" ( T"e #%A Framewor. !al!'la e& "i& amo'n o* li)" by m'l i3lyin) "e 2e! or& o* "e normal an1 "e 1ire! ion o* li)" *or ea!" 3i<el o* "e ima)e( T"e re&'l i& "e amo'n o* li)" re*le! e1 owar1 "e !amera( #%A Framewor. 3ro2i1e& an b'il 7in ,irectional-ight !la&& o 3ro1'!e "e li)" in) e**e! ( Dire! ional li)" "a& a 1ire! ion b' no 3o&i ion( I 1oe& no "a2e a *allo** 2al'e( S'nli)" or moonli)" i& !on&i1ere1 a& 1ire! ional li)" ( Howe2er6 in a AD worl16 3oin li)" an1 &3o li)" !an al&o be '&e1( Poin li)" "a& a 3o&i ion b' no 3ar i!'lar 1ire! ion be!a'&e i !an emi li)" in all 1ire!7 ion&( Some ime&6 i i& al&o re*erre1 o a& Omni li)" ( I i& alway& a&&o!ia e1 wi " a *allo** 2al'e( T"e in en&i y o* li)" 1e!rea&e& a& i mo2e& away *rom "e &o'r!e( A !an1le !an be !on&i1ere1 a& a 3oin li)" ( S3o li)" "a& a 3o&i ion an1 1ire! ion( I &3rea1& i & li)" in a !one7&"a3e1 area alon) a &3e!i*ie1 1ire! ion( I i& al&o a&&o!ia e1 wi " a *allo** 2al'e( I "a& wo *allo** 2al'e&4 one i& a linear *allo** "a 1e ermine& "e amo'n o* li)" 1e!rea&e1 in "e 1ire! ion o* li)" 6 an1 wo i& a *allo** 2al'e "a 1e!i1e& "e amo'n o* li)" a "e e1)e& o* "e !one( Fla&" li)" !an be !on&i1ere1 a& &3o li)" ( T"e *ollowin) &"ow& a &am3le &3o li)" an1 3oin li)" !la&& 1e!lara ion(
www.it-ebooks.info
www.it-ebooks.info
falloff ; //user defined 3ariable that contains the fall off 3alue.
Vector5 position; Vector5 direction; Color color ; float cone1ngle; float linear*alloff; linear fall off 3alue. float off 3alue. '
//user
defined
3ariable
that contains
the
Fi)'re ;7:@ &"ow& a !"ara! erH& *a!e an1 arm li '3 '&in) 3er73i<el li)" in)(
"igure *-;L An e%ample of per-pi%el lighting in 41A
U&'ally6 yo' 1e*ine a li)" &o'r!e an1 a !"ara! er or obLe! ( O* en6 yo' en1 '3 re3li!a in) a lo ( To &im3li*y yo'r AD li)" in) wor. in #%A6 yo' !an '&e .asic9ffects6 a &im3le e**e! a2ailable wi " Mo1el& in #%A ;(9( T"i& e**e! !an &'33or '3 o "ree 1ire! ional li)" & an1 i& "e 1e*a'l e**e! in '&e w"en yo' ren1er yo'r AD mo1el& or re3re&en a ion& *or !"ara! er&6 &e &6 an1 3ro3& wi "in "e )ame( /o' !an '&e "i& *ea 're i* yo' wan a n'mber o* !"ara! er&
1AA , 2esso* %
an1 obLe! & o "a2e "e &ame li)" in) e**e! *rom a &in)le li)" &o'r!e( For e<am3le6 yo' !an &"ow all "e !"ara! er& an1 obLe! & 'n1er "e &'n in "e &ame o3en errain(
0?A $80 Li)" an1 &"a1ow are wo &i1e& o* a !oin( To)e "er6 "e&e elemen & brea "e li*e in o an ima)e(
C$8T-"-CAT-O1 8$A A ?ow will you create shadows of your game ob:ects in 41A *.EB *.;
Al "o')" li)" in) i& "e ool "a allow& yo' o re7!rea e "e 3er*e! li)" in) e**e! in yo'r )ame6 &"a1er& allow yo' o e**e! !"an)e& o "e !"ara! eri& i!& o* a &'r*a!e o !om3le e "e ill'&ion !rea e1 "ro')" li)" in)( A &"a1er i& "e &'r*a!e 3ro3er y o* an obLe! or !"ara! er( I in!l'1e& !"ara! eri& i!& &'!" a& !olor6 &"ine6 re*le! ion6 re*ra! ion6 ro')"ne&&6 an1 &o on o* a 3ar i!'lar &'r*a!e( A &"a1er 3ro)ram i& e<e!' e1 by "e )ra3"i!& 3ro!e&&in) 'ni DGPUE *or ea!" 2er e< or 3i<el o e**e! &3e!i*i! !"an)e& o "e &'r*a!e 3ro3er y( S"a1er& o**er *le<ibili y in erm& o* )ra3"i!& 3ro!e&&in)( /o' !an '&e "e Hi)" Le2el S"a1in) Lan)'a)e DHLSLE6 w"i!" i& a 3ro3rie ary &"a1in) lan)'a)e 1e2elo3e1 by Mi!ro&o* *or '&e wi " Dire! AD *or &"a1er 1e2elo3men ( HLSL i& &imilar o C( Li.e in C 3ro)rammin)6 yo' !an al&o 1e!lare 2ariable&6 *'n! ion&6 1a a y3e&6 an1 '&e if/else/ for/do/while loo3& '&in) "e HLSL( T"e GPU r'n& &"a1er& on "e )ra3"i!& !ar1 o* "e en1 '&erH& "ar1ware(
MO8$ -1"O8MAT-O1
"or more information on ?/0/ synta% and supported data types and functions# refer to the section# C8eference for ?/0/#D in the M0 1 /ibrary.
/o' !an !rea e &"a1er& '&in) "e Vi&'al S '1io E1i or in an e**e! *ile( An e**e! *ile "a& an e< en&ion (*< an1 i& a e< *ile( I !on ain& "ree main &e! ion&4 one i& *or 2ariable 1e!lara ion&6 "e &e!on1 i& *or e!"niB'e& an1 3a&&e&6 an1 "e "ir1 i& *or *'n! ion&( Te!"niB'e& an1 3a&&e& !on ain "e 1e*ini ion o* 2er e< an1 3i<el &"a1er *'n! ion& "a 1e*ine& "ow an obLe! i& o be ren1ere1( An e**e! *ile !an !on ain one or more e!"niB'e&( A e!"7 niB'e !an "a2e more "an one 3a&&( T"e *ollowin) i& "e &am3le e!"niB'e in an e**e! *ile(
techniIue pass techniIueG 6G Verte/:hader 6i/el:hader ' ' @ @ compile compile 3sL2L8 psL2L8 V:#%; 6:#%;
/o' !an '&e &"a1er& in all AD 1rawin)& !rea e1 in "e #%A Framewor.( T"e #%A Framewor. &'33or & only HLSL( T"ere are wo .in1& o* &"a1er& in #%A6 2er e< &"a1er an1 3i<el &"a1er( T"e 2er e< &"a1er a.e& "e AD 3o&i ion o* "e 2er e<6 m'l i3lie& i wi " a ma ri<6 an1 "en ran&*orm& i in o 8D &!reen !oor1ina e&( T"i& *ea 're &3ee1& '3 "e )ame6 a& le&& ime i& a.en *or 3ro!e&&in) 8D !oor1ina e& by "e GPU( /o' !an '&e "e 2er e< &"a1er o ma.e a !"ara! er *a er or "inner6 &"or er or aller6 or ma.e any o "er mo1i*i!a ion& "a 1eal wi " "e 3o&i ion o* "e 2er i!e&( /o' !an !on rol "e o' 3' "a a 2er e< &"a1er will 3re&en o "e 3i<el &"a1er( For "i&6 yo' &im3ly 1e*ine "e 1a a in "e & r'! 're o* "e 2er e< &"a1er an1 "en ma.e "e &"a1er re 'rn "e 2al'e o* "e 1a a a& o' 3' ( T"e *ollowin) &"a1er !o1e &am3le ill'& ra e& "i&4
www.it-ebooks.info
how
'; //,efine custom Verte/ output method.4his one is same as Verte/ input structure .4his structure holds the processed 3erte/ information from 3erte/ shader stage . struct V:L;24 floatC 6osition ( 6;:"4";&8; float2 4e/Coord ( 49)C;;<,8; '; //,eclare te/ture te/ture gLt/:cene; //,efine :ampler state of te/ture /*4his holds the information how to appl0 te/ture to obAect . You can define different !ip!ap filter for te/ture and also te/ture addressing mode . */ sampler gL4e/ture @ samplerLstate
4e/ture @ #gLt/:cene%; !1G*"-49< @ -"&91<; !"&*"-49< @ -"&91<; !"6*"-49< @ -"&91<; 1ddress2 @ Wrap; 1ddressV @ Wrap; '; /*Verte/ shader to process V:L.asic!esh#V:L"& input% the 3erte/ information.*/ V:L;24
V:L;24 output; //4ransform from obAect space to world space floatC world6osition @ mul#floatC#input.6osition$G%$ World%; /*4ransform 3ertices from world space to View :pace b0 multipl0ing it with View !atri/*/ floatC 3iew6osition @ mul#world6osition$ View%; /*4ransform 3ertices from View space to :creen :pace b0 multipl0ing it with 6roAection !atri/*/ output.6osition @ mul#3iew6osition$ 6roAection%;
www.it-ebooks.info
1A% , 2esso* %
/*Cop0 the te/ture information as it is */ output.4e/Coord @ input.4e/Coord; return output;
'
T"e 3i<el &"a1er 1raw& ea!" 3i<el o* "e &!reen '&in) "e !oor1ina e& i re!ei2e& *rom "e 2er7 e< &"a1er( T"e 3i<el &"a1er !al!'la e& only "e !olor *or ea!" 3i<el( T"e *ollowin) !o1e &am3le ill'& ra e& a 3i<el &"a1er( T"e 3i<el &"a1er a.e& "e !oor1ina e& *rom "e 2er e< &"a1er an1 re 'rn& "e !olor o* "e !oor1ina e&( In "e &am3le !o1e6 yo' &ee "a C;-;<8 i& a11e1 a* er "e *'n! ion name( I i& a &eman i!6 ellin) yo' "a "e o' 3' !on ain& only C;-;< in*orma ion(
floatC 6:L.asic!esh#V:L;24 input%(C;-;<8 //:ampling the te/ture floatC output @ te/2,# gL4e/ture$ input.4e/Coord %; return output; '
Finally6 1e*ine "e 2er e< &"a1er an1 3i<el &"a1er *'n! ion& in&i1e a e!"niB'e( T"i& ell& '& "a "e techniIueG will '&e "e V:L.asic!esh#% *'n! ion a& "e 2er e< &"a1er6 "e 6:L.asic!esh#% *'n! ion a& "e 3i<el &"a1er6 an1 "e &"a1er reB'ire& &"a1er mo1el 8(9 or "i)"er(
techniIue pass 4echniIueG 6assG Verte/:hader @ compile 3sL2L8 V:L.asic!esh #%; 6i/el:hader @ compile psL2L8 6:L.asic!esh #%; ' '
Le '& now 'n1er& an1 "ow "e #%A Framewor. allow& yo' o im3lemen &"a1er&( Loa1in) an1 '&in) a &"a1er in "e #%A Framewor. !on&i& & o* a *ew &im3le & e3&4 :( /o' nee1 o *ir& ma.e yo'r &"a1er( For "i&6 ri)" 7!li!. "e Con en %o1e an1 !li!. A11 . %ew I em( In "e A11 %ew I em 1ialo) bo< "a o3en&6 !"oo&e "e E**e! File *rom "e li& o* em3la e& D&ee Fi)'re ;7:=E( An e**e! *ile i& o3ene1 wi " "e 1e*a'l name E**e! :( Ty3e "e &"a1er !o1e in "e E**e! :(*< *ile( 8( Gi2e an a&&e name o yo'r &"a1er *ile( Generally6 "e a&&e name i& "e &ame a& "e (*< *ile name( Howe2er6 yo' !an e1i "e a&&e name a& yo' wan ( Fi)'re ;7:> &"ow& "e E**e! :(*< *ile an1 "e Pro3er ie& 3a)e li& in) "e E**e! :(*< *ile 3ro3er ie& in "e Vi&'al S '1io De2elo3men En2ironmen ( A( To loa1 "e e**e! *ile in #%A6 yo' ne< nee1 o '&e an in& an!e o* "e 9ffects !la&&( T"e 9ffects !la&& in "e !icrosoft.)na.*ramewor+.Graphics loa1& an1 !om3ile& yo'r &"a1er&( ;( T"en6 yo' nee1 o '&e "e Content 3ro3er y o ini iali,e "e &"a1er( T"e *ollowin) !o1e loa1& "e &"a1er '&in) "e in& an!e o* an e**e! !la&&(
9ffect effect the asset name.
Content.-oad#9ffect.#=9ffectG>%; //9ffectG
is
C( /o' m'& &ele! "e e!"niB'e "a yo' wan o '&e( A e!"niB'e re3re&en & "e *'n! ion o* a 3ar i!'lar e**e! & *ile( For e<am3le6 yo'r &"a1er !an '&e a e!"niB'e !alle1 S'nli)" o ma.e "e ima)e a33ear bri)" er on "e &!reen( T"e *ollowin) !o1e loa1& "e e!"niB'e techniIueG *rom "e E**e! :(*< *ile(
www.it-ebooks.info
www.it-ebooks.info
1A$ , 2esso* %
effect.Current4echniIue @ effect.4echniIuesE=techniIueG>F;
TA2$ 1OT$
-"en yo' !om3ile yo'r )ame !o1e by 3re&&in) F@ in Vi&'al S '1io6 yo'r &"a1er *ile will al&o !om3ile a' oma i!ally(
@( /o' "en m'& 3a&& "e 3arame er& yo' wan o &e in yo'r &"a1er '&in) "e 9ffect6arameter obLe! ( T"e&e 3arame er& !a3 're "e o' 3' o* "e &"a1er( =( Finally6 yo' nee1 o ren1er or 1raw "e obLe! or !"ara! er '&in) a loo3( T"e *ollowin) & e3& alon) wi " "e !o1e 1i&!'&& "ow o 1raw a mo1el in "e #%A Framewor. '&in) "e &"a1er DE**e! :(*<E !rea e1 abo2e( 70$ 0?A $80 >3T 83A<;. To 1raw a mo1el '&in) "e &"a1er6 1o "e *ollowin)4
A. In "e Game.-oadContent me "o16 loa1 "e mo1el an1 "e &"a1er( T"e !o1e '&e&
"e !ar mo1el "a wa& 1i&!'&&e1 in "e IForm ObLe! &J &e! ion(
current!odel @ Content.-oadM!odelN#=Car.fb/>%; current9ffect @ Content.-oadM9ffectN#=9ffectG.f/>%;
@. In "e Game.,raw me "o16 1raw "e mo1el( Be*ore 1rawin) "e mo1el6 &e "e 3aram7
e er& "a were ini ially 1e!lare1 in "e &"a1er *ile( T"e 3arame er& in!l'1e Iworl16J I2iew6J an1 I3roLe! ion(J %o e "a "e&e are '&er71e*ine1 2ariable& o* y3e ma ri<( In HLSL6 ma ri!e& are 1e*ine1 a& a *loa ; ( ; y3e an1 i i& eB'i2alen o #%A ma ri<(
protected o3erride 3oid ,raw#Game4ime game4ime%
/*4o draw a model using the abo3e shader $ we need to acess !odel!esh6art of each !odel!esh of current!odel which can be done li+e this .*/ !odel!esh mesh @ current!odel.!eshesE8F; !odel!esh6art mesh6art @ mesh.!esh6artsE8F; //"nitialize View matri/ for ,rawing 3iew!atri/ @ !atri/.Create-oo+1t#new Vector5#8.8f$ 28.8f$ 28.8f%$ Vector5.Dero$Vector5.2p%; //"nitialize proAection matri/ for ,rawing !atri/ proAection!atri/ @ !atri/.Create6erspecti3e*ield;fView##float%!ath.6" / C.8f$ G.55f$ 8.8Gf$ G888.8f%; the obAect !atri/
;bAect
/*&ow set the parameters of shader. :et the world matri/ to "dentit0 as we want to see the car at ;rigin*/ current9ffect.6arametersE=World>F.:etValue#!atri/."dentit0%; /*:et the matri/ .*/ current9ffect.6arametersE=View>F.:etValue#3iew!atri/%; /*:et the 6roAection matri/ .*/ current9ffect.6arametersE=6roAection>F.:etValue #proAection!atri/%; /*&ow set the current 4echniIue of :hader . 9ach 4echniIue defines a Verte/ shader and 6i/el shader.9ffectG.f/ has a techniIue named techniIueG*/
3iew
www.it-ebooks.info
/*1fter setting the techniIue$ we need to iterate through all pass a3ailable in that techniIue . 9ffect.f/ shader file has onl0 one pass.*/ for #int i @ 8; i # current9ffect.Current4echniIue.6asses.Count; /*9ffect6ass.1ppl0 will update the de3ice to begin using the state information defined in the current pass*/ current9ffect.Current4echniIue.6assesEiF.1ppl0#%; /*We need to set the Culling mode so that unnecessar0 triangles will not be processed. Cull!ode is defined as a member of <asterize:tate in )&1 which defines the current render state of ,e3ice*/ <asterizer:tate state @ new <asterizer:tate#%; state.Cull!ode @ Cull!ode.CullCounterCloc+wise*ace; graphics.Graphics,e3ice.<asterizer:tate @ state; /* ,raw the car model using the ,raw"nde/ed6rimiti3es method using the 4riangle-ist primiti3e. .ecause$ when 0ou e/port an0 model created in a 5, software using the .fb/ or ./ file format$ the file contains the information of the model in terms of the primiti3e shape triangle. 4herefore 0ou can use the primiti3e methods of the graphics obAect to render the model */ graphics.Graphics,e3ice.,raw"nde/ed6rimiti3es# 6rimiti3e40pe.4r iangle-ist$ 8$ 8$ mesh6art.&umVertices$ mesh6art.:tart"nde/$ mesh6art.6rimiti3eCount%; ' i;;%
-"en yo' '&e li)" in)6 yo' )e "e 3arame er& *or "e amo'n o* li)" "a will 1e*ine "e o "er &'r*a!e 3ro3er ie&6 &'!" a& &"ine6 !olor6 an1 &o on( /o' !an '&e "e&e 3arame er& o 1raw "e obLe! or !"ara! er( -"en yo' !ombine li)" in) wi " &"a1er&6 yo' !an in3' "e 3arame er& *rom li)" in) o !rea e "e ri)" e**e! o* li)" on "e ima)e( T"e ri)" .in1 o* li)" an1 &'r*a!e 3ro3er ie& re*le! in) "e e**e! o* li)" will brin) "e !"ara! er o* yo'r )ame o li*e( Generally6 &'r*a!e i& alway& a&&o!ia e1 wi " ma erial 3ro3er y( Li)" i& alway& re*le! e1 or ab&orbe1 a!!or1in) o "e &'r*a!e ma erial( De3en1in) on "e &'r*a!e ma erial6 "ere are wo y3e& o* li)" in) !al!'la ion&4
N Di**'&e N S3e!'lar Dblinn an1 3"on)E
www.it-ebooks.info
www.it-ebooks.info
1A! , 2esso* %
Fi)'re ;7:? &"ow& an ima)e wi " "e 1i**'&e an1 &3e!'lar blinn li)" in) e**e! &(
"igure *-;& $%amples of different lighting effects
S"a1er& are im3or an w"en yo' '&e &"a1ow& *or yo'r ima)e& be!a'&e "e &"a1ow B'ali y 1e3en1& on "e obLe! ( For e<am3le6 a ran&3aren obLe! m'& "a2e a li)" er &"a1ow "an an o3aB'e obLe! ( T"ere are &im3le & e3& o a11 &"a1ow&4 :( /o' nee1 o *ir& 1raw all "e obLe! & an1 "e !"ara! er in bla!. !olor aro'n1 "e &ame li)" &o'r!e on o a e< 're( T"i& ima)e i& !alle1 a !a& or ma3( 8( /o' "en '&e a &"a1er o !on2er "e !a& or ma3 in o a &"a1owH& ima)e( A( Finally6 yo' nee1 o blen1 "e &"a1owH& ima)e wi " "e )ro'n1 or e< 're on w"i!" "e obLe! & an1 !"ara! er& lie( To ren1er "e &!ene6 yo' nee1 "e 2iew an1 3roLe! ion ma ri!e& o* !amera( Similarly *or &"a17 ow6 yo' nee1 "e 2iew an1 3roLe! ion ma ri!e& *or "e li)" obLe! ( So6 *ir& 6 !rea e "e 2iew an1 3roLe! ion ma ri!e& o* li)" ( %e< 6 ren1er "e &!ene wi " "a li)" 2iew an1 3roLe! ion ma ri!e&( T"en 3er*orm "e &"a1ow !al!'la ion( View an1 3roLe! ion ma ri< !an be !rea e1 *or any obLe! in #%A( For e<am3le6 "e 2iew ma ri< o* &3o li)" !an be !rea e1 a& &"own in "e *ollowin)4
!atri/ 3iew!atri/ @ !atri/.Create-oo+1t#spot-ight6osition$ spot-ight,irection$ Vector5.2p%; !atri/ proAection!atri/ @ !atri/.Create6erspecti3e*ield;fView#cone1ngleof:pot-ight $ G.55f$ 8.8Gf$ G888.8f%; C$8T-"-CAT-O1 8$A A ?ow can you implement pro:ections in 41AB *.;
+8O5$CT-O10 Crea in) "e *eel o* a !"ara! er al&o in!l'1e& "e worl1 aro'n1 "e !"ara! er( T"i& i& be!a'&e
w"a e2er "e !"ara! er 1oe& or &ay& i& in re&3on&e o "e o!!'rren!e& aro'n1 "e !"ara! er( Reali&m o "e !"ara! erH& e<3erien!e& i& !rea e1 only i* "ere i& reali&m in "e worl1 aro'n1
www.it-ebooks.info
"e !"ara! er( For e<am3le6 o ma.e "e 3layer belie2e "a "e or &"e !an a! 'ally mo2e aro'n1 "e )ame worl1 in "e &ame way& a& "e 3layer 1oe& in "e real worl16 we nee1 o en&'re "a "e 3layer !"ara! erH& 2iew !"an)e& alon) wi " "e !"ara! erH& mo2emen a& i 1oe& in "e real worl1( T"a i&6 i* yo' mo2e !lo&e o a *lower in "e )ame worl16 "e *lower m'& a33ear lar)er in &i,e( In a )ame6 yo' nee1 o '&e 3roLe! ion& o e**e! &!alin) an1 2iew !"an)e& o "e !"ara! er or an obLe! H& en2ironmen ( /o' !an al&o '&e 3roLe! ion& o "row bloo1 &3la & on a wall w"en a 3layer !"ara! er & an1in) !lo&e o "e wall i& "i D&ee Fi)'re ;789E( T"i& brin)& in reali&m be!a'&e in "e real worl16 in &'!" a &i 'a ion6 "e !"ara! erH& bloo1 will &3la er bo " on "e wall an1 "e )ro'n1(
To 'n1er& an1 3roLe! ion&6 le '& re!all "e worl1 &3a!e6 2iew &3a!e6 an1 ProLe! ion &3a!e "a we 1i&!'&&e1 earlier in "i& le&&on( N -orl1 &3a!e4 /o'r )ame3lay a.e& 3la!e in "i& AD &3a!e( I !an '&e "e en ire &!reen &3a!e a2ailable( N View &3a!e4 T"i& AD &3a!e 1e*ine& "e 3ro3o&e1 2i&ible obLe! & an1 "ow "o&e obLe! & are 2i&ible *rom "e )ame !amera( View &3a!e 3er*orm& !'llin) an1 !li33in) o3era ion& on an obLe! ( N ProLe! ion &3a!e4 GPU '&e& "i& 8D &3a!e *or *inal ren1erin) or 1rawin) o* "e ima)e& on &!reen( T"i& &3a!e & ar & *rom D9:6 9:E in "e lower le* an1 en1& a D:6 :E or '33er ri)" o* "e &!reen( I i& "i& &3a!e "a i& 2i&ible o "e 3layer( T"ere*ore6 i i& im3or an *or yo' o en&'re "a all *inal ima)e& *all wi "in "i& &3a!e( For "i&6 "e AD !oor1ina e& o* "e )ame mo1el& &"o'l1 be ran&*orme1 in o 8D &!reen !oor1ina e&( In "e #%A Framewor.6 we !an '&e 3roLe! ion& "ro')" :prite.atch or "ro')" !rea ion o* a 3roLe! ion or &!alin) ma ri<( Bo " e!"niB'e& '&e "e "ree .in1& o* &3a!e "a are in2ol2e1 in )ame 1e2elo3men ( Al "o')" AD ima)e& )enerally reB'ire a 3roLe! ion ma ri< *or ran&*orma ional e**e! &6 8D ima)e& !an be ran&*orme1 ea&ily '&in) :prite.atch(
:prite.atch T"e :prite.atch !la&& "el3& yo' o 1raw a )ro'3 o* &3ri e& "a2in) "e &ame &e in)&( T"e :prite.atch !la&& i& '&e1 3rimarily *or ren1erin) 8D ima)e&( I "an1le& "e 3roLe! ion &3a!e a' oma i!ally *or yo'( To 1o "i&6 :prite.atch '&e& a 3roLe! ion ma ri< in ernally "a !on2er & "e !lien &3a!e o 3roLe! ion &3a!e( Clien &3a!e *or :prite.atch & ar & in "e '33er7le* !orner o* "e View3or or "e AD area in w"i!" "e )ame 1e2elo3er i& wor.in)(
1@& , 2esso* %
In :prite.atch6 one 'ni o* !lien &3a!e i& eB'al o one 3i<el in View3or ( :prite.atch &!ale& "e &i,e& an1 3o&i ion& o* e2ery &3ri e 1rawn( /o' !an mo2e an obLe! wi "in "e worl1 &3a!e '&in) :prite.atch.,raw( T"i& im3lie& "a a 8D !"ara! er or obLe! mo2emen an1 "e a&&o!ia e1 2iew an1 &!alin) !"an)e& are ea&ily ren1ere1 w"en yo' '&e :prite.atch( T"i& i& be!a'&e "e ran&*orma ion& !an be &im3ly )i2en in :prite.atch an1 "e !"an)e& o "e ima)e& are e**e! e1 be*ore "e ima)e& are 1rawn( T"i& ma.e& yo'r Lob ea&ier an1 *a& er(
+8O5$CT-O1 MAT8-4
A& alrea1y 1i&!'&&e16 "i& ma ri< !on2er & "e worl1 &3a!e o 3roLe! ion &3a!e in or1er o "el3 "e GPU 1raw "e ima)e( I* yo' '&e AD ima)e& an1 .asic9ffects6 yo' nee1 o 3ro2i1e a 3roLe! ion ma ri< o "an1le "e ran&*orma ion& an1 o "er &!alin) e**e! &( T"i& i& be!a'&e 'nli.e :prite.atch6 .asic9ffects 1oe& no "a2e any b'il 7in *'n! ionali y( T"ere are wo y3e& o* 3roLe! ion ma ri<6 or "o)ra3"i! an1 3er&3e! i2e( In )eneral6 w"en yo' loo. a a &!ene6 "e 1i& an obLe! & a33ear &maller "an "e obLe! & "a are !lo&e by( T"e 3er&3e! i2e 3roLe! ion main ain& "i& reali&m( T"i& 3roLe! ion &"ow& 1i& an obLe! & a& &maller an1 i )i2e& "e *eelin) o* 1e3 "( Howe2er6 an or "o)ra3"i! 3roLe! ion i)nore& "i& reali& i! e**e! o 3ro2i1e a!!'ra e mea&'remen &( T"a i&6 in an or "o)ra3"i! 3roLe! ion6 bo " "e 1i& an obLe! & an1 !lo&er obLe! & loo. "e &ame &i,e(
:prite.atch '&e& or "o)ra3"i! 3roLe! ion *or &!reen &3a!e ran&*orma ion a& 1e3 " i&
no reB'ire1( Mo1el& in AD ima)e& are ren1ere1 by '&in) 3er&3e! i2e 3roLe! ion a& 1e3 " i& im3or an ( T"e *ollowin) !o1e &am3le '&e& "e 3roLe! ion ma ri<4
!atri/.Create;rthographic;ffCenter z*ar6lane% #-eft$ <ight$ .ottom$ 4op$ z&ear6lane$
6erspecti3e 6roAection @ !atri/.Create6erspecti3e*ield;fView#!ath?elper.6i;3erC$ Graphics,e3ice.Viewport.1spect<atio$ G.8f$ G888f%; ;rthographic 6roAection @ !atri/.Create;rthographic;ffCenter#8$ Graphics,e3ice.Viewport.Width$ Graphics,e3ice.Viewport.?eight$ 8$ G.8f$ G888.8f%;
Similar o a 3roLe! ion ma ri<6 yo' !an al&o !rea e an1 '&e a worl1 ma ri< o ma.e "e obLe! mo2e wi "in "e worl1 &3a!e( /o' !an al&o !rea e a 2iew ma ri< o '&e a& a !amera an1 3an "e 2iew aro'n1 "e obLe! or !"ara! er( T"i& *ea 're !an be '&e*'l i* yo' wan "e !"ara! er o *ollow ano "er !"ara! er( De3en1in) on "e y3e o* )ame yo' are 1e2elo3in)6 &ome ime& yo' mi)" "a2e o blen1 "e wo .in1& o* e!"niB'e&( /o' !an "arne&& "e o3 imi,a ion o* :prite.atch wi " "e !'& omi,a ion o* 3roLe! ion ma ri!e& o !rea e "e ri)" *eel o* a !"ara! er( One e<am3le o* '&in) a blen1e1 a33roa!" i& w"en yo'r )ame 1oe& no *ollow "e &e 3arame er& 1e*ine1 by :prite.atch( :prite.atch a&&'me& "a "e en ire !lien &3a!e i& '&e1 by "e worl1 &3a!e( :prite.atch a.e& a "ori,on al 1ire! ion on "e /7a<i&M "ere*ore6 i* yo'r )ame "a& a 1i**eren orien a ion o* "e !oor1ina e 3lane6 yo' nee1 o !"an)e "e 1imen&ion& a!!or1in)ly by 3er*ormin) "e *ollowin) 3ro!e1're4 :( Crea e an a11i ional ma ri< o !on2er *rom worl1 &3a!e o !lien &3a!e( 8( In&er "i& ma ri< be ween "e 2iew an1 3roLe! ion ma ri!e&( A( T"en m'l i3ly wi " more in*orma ion abo' "e &!reen "a i& 3re&en e1 in View an1 3a&& "e o' 3' o :prite.atch(
www.it-ebooks.info
T"e *ollowin) !o1e & a emen i& an e<am3le o* an a11i ional ma ri<4
!atri/.Create:cale#3iewport.Width /G.Hf$ 3iewport.height /G.Hf$ Gf%; /*where 0ou are basicall0 scaling dimensions are G.H b0 G.H units.*/ up the image and the image
/o' !an al&o '&e :prite.atch wi " !'& om 2er e< &"a1er&( T"i& )i2e& yo' "e *le<ibili y o* !'& omi,in) "e o' 3' an1 "en '&in) "i& !'& omi,a ion wi " m'l i3le &3ri e&6 w"i!" in 'rn re1'!e& a lo o* ime an1 e**or ( /o' &"o'l1 al&o *a! or in any 3er&3e! i2e 1i& or ion "a !an "a33en6 e&3e!ially w"en yo' wor. wi " AD ima)e&(
C$8T-"-CAT-O1 8$A A <hat are the different primiti!e types a!ailable in 41A *.E B *.;
G$1$8AT-1G O.5$CT0 <-T? 70$8--1 $4$ +8-M-T-6$0 T"ro')"o' "e )ame6 ba&e1 on !"an)e& o "e 3layer !"ara! erH& en2ironmen 6 yo' nee1 o '31a e "e *eel o* "e !"ara! er( T"i& mean& "a yo' mi)" reB'ire a &ome 3oin in "e )ame o )enera e obLe! & '&in) a &e o* !oor1ina e& an1 3ro3er ie& "a yo' 1e*ine "a will 1ire! "e GPU o 1raw !'& om ma1e obLe! &(
T"e #%A Framewor. allow& yo' o !rea e !'& om7ma1e obLe! & '&in) "e 3rimi i2e me "o1& o* "e Graphics,e3ice !la&& &'!" a& "e ,raw2ser"nde/ed6rimiti3es( U&in) "i& me "o16 yo' !an 1ire! "e GPU on "ow yo' wan i o in er3re an16 "ere*ore6 1raw 2er i!e& & ore1 in an array( T"e re&'l an AD &"a3e i& !alle1 a 3rimi i2e( /o' !an '&e "e 3rimi i2e y3e en'mera ion 1i&!'&&e1 in "e IForm ObLe! &J &e! ion o 1raw "e reB'ire1 3rimi i2e )eome ry( To ren1er or 1raw 3rimi i2e&6 yo' m'& !rea e an e**e! an1 a ran&*orma ion ma ri<( For "i&6 yo' nee1 o '&e a .asic9ffect in& an!e( U&in) "e ,raw2ser"nde/ed6rimiti3es me "o1 o* "e Gra3"i!& 1e2i!e6 yo' !an !rea e &im3le 3oin &6 an1 line&6 o rian)le&6 e< 're1 B'a1rila eral&6 an1 "e mo& !om3le< AD &"a3e& 3o&&ible( T"e *ollowin) & e3& ill'& ra e "ow o 1raw line& '&in) "e ,raw2ser"nde/ed6rimiti3es me "o1( 8A< A /-1$ >3T 83A<;. To 1raw line& '&in) "e ,raw2ser"nde/ed6rimiti3es me "o16 1o "e *ollowin)4 1. De!lare "e *ollowin) 2ariable in yo'r Game !la&&( T"e Verte/6ositionColor '&e1 in "e !o1e i& a & r'! 're o "ol1 3o&i ion an1 !olor in*orma ion o* a 2er e<( T"e !o1e 1e!lare& an array o* "e Verte/6ositionColor & r'! 're6 a& yo' nee1 wo 2er i!e& o 1raw a line(
/*declare Verte/6ositionColorEF /*declare an arra0 of information used to decide how 3erte/ properties */ 3ertices; uint to hold indices ."ndices are the 3ertices will be connected to each other */
uintEF line-ist"ndices; /* 4he .asic9ffect is a builtBin which is used to contain basic rendering effect.*/ .asic9ffect basic9ffect ; class in )&1
"nitializeVertices in "nitialize3ertices
/*,efines the 3erte/ properties such as the position and color information associated with each Vertices. We need this information to draw and update the line */
www.it-ebooks.info
1@A , 2esso* %
3ertices @ new Verte/6ositionColorE2F; /* 6osition and color info for Gst 3erte/ .*/ 3erticesE8F.6osition @ new Vector5#B8.Hf$ B8.Hf$ 8f%; 3erticesE8F.Color @ Color.<ed; /* 6osition and color info for 2nd 3erte/ .*/ 3erticesEGF.6osition @ new Vector5#8$ 8.Hf$ 8f%; 3erticesEGF.Color @ Color.Green; /*"nitialize indices */ line-ist"ndices @ new shortE2F 8$ G';
/*&ow define 0our .asic9ffect obAect as itPs going to be used while drawing the triangle.*/ basic9ffect ' @ new .asic9ffect#Graphics,e3ice%;
%. O2erri1e "e Game.,raw me "o1 o 1raw "e line a& &"own in "e *ollowin)4
protected o3erride 3oid ,raw#Game4ime game4ime%
/*:et the culling state for ,e3ice to Cull!ode.&one so that line will alwa0s be 3isible*/ <asterizer:tate state @ new <asterizer:tate#%; state.Cull!ode @ Cull!ode.&one; Graphics,e3ice.<asterizer:tate @ state; //:et the basic effect parameter to show the color of each 3erte/. basic9ffect.Verte/Color9nabled @ true; /*&ow iterate through all passes of current4echniIue of basic effect and draw the line */ foreach #9ffect6ass pass in basic9ffect.Current4echniIue.6asses% pass.1ppl0#%; /* ,raw the line using ,raw2ser"nde/ed6rimiti3es function of the Graphics,e3ice*/ Graphics,e3ice.,raw2ser"nde/ed6rimiti3es#Verte/6osition Color.#6rimiti3e40pe.-ine-ist$ 3ertices$ 8$ 2$ "ndices$ 8$ G$ Verte/6ositionColor.Verte/,eclaration%; ' '
line-ist
/o' !an al&o '&e a 3rimi i2e y3e o* -ine:trip o 1raw line&( T"e 1i**eren!e i& "a wi " -ine:trip6 yo' are a! 'ally 1rawin) "e line a& a &erie& o* !onne! e1 line&(
www.it-ebooks.info
C8$AT-1G C70TOM 6$8T$4 A !'& om 2er e< allow& yo' o 1raw AD '&er71e*ine1 obLe! & wi " yo'r own !"oi!e o* !olor an1 li)" in) e**e! &( T"i& )i2e& yo' "e *le<ibili y o !rea e yo'r own !'& om 1a a y3e6 1e*ine i & 3ro3er ie& an1 e**e! &6 an1 "en '&e i o 1raw yo'r own AD obLe! &(
-"en yo' !rea e a !'& om 2er e<6 yo' m'& 1e*ine4 N Pro3er ie&K&'!" a& 3o&i ion6 !olor6 an1 normalK*or ea!" 2er e< N A 3'bli! me "o1 !alle1 :ize"n.0tes N An array o* y3e Verte/9lement o re3re&en ea!" 2er e< 3ro3er y Ea!" 2er e< !an "a2e 3ro3er ie& &'!" a& 3o&i ion6 !olor6 normal6 an)en 6 binormal6 an1 e<7 're !oor1ina e( U&in) Verte/9lement6 yo' !an 1e*ine "e 3ro3er ie& *or 2er i!e&( Doin) &o enable& yo' o a!!e&& 2al'e& o* "e 2er e< 3ro3er ie& an1 3ro!e&& "em '&in) S"a1er( For e<am3le6 yo' !an '&e "e normal 3ro3er y *or !al!'la in) li)" 6 or "e e< 're !oor1ina e& *or a33lyin) e< 're6 an1 &o on( On!e yo' !rea e yo'r !'& om 2er e<6 yo' !an '&e .asic9ffects o &e "e e**e! 3arame er& *or yo'r !'& om 2er e<( /o' al&o nee1 o ini iali,e "e 2iew an1 3roLe! ion ma ri!e& &o "a "e AD obLe! !an be 1rawn an1 &een on "e &!reen 3ro3erly( To '&e a !'& om 2er e< *or '&er7in1e<e1 3rimi i2e&6 &im3ly ini iali,e "e array o* '&er in1e<e& wi " "e !'& om 2er e<( T"i& "en 3a&&e& on "e 3ro3er ie& o* "e !'& om 2er e< on o "e '&er in1e< 3rimi i2e "a i& *inally 1rawn on "e &!reen(
,
www.it-ebooks.info
1@% , 2esso* %
Game 1e&i)ner& "a2e been '&in) .ey*rame anima ion& o anima e !"ara! er& an1 obLe! & in )ame& *or a)e& an1 are & ill '&in) "em6 albei wi " im3ro2e1 e!"nolo)y( T"e&e anima ion&6 al&o !alle1 &!ri3 e1 anima ion&6 are i1eal *or 3re1e ermine1 &eB'en!e& "a *orm a 3ar o* "e & oryline( To !rea e "e&e anima ion&6 yo' nee1 &.ille1 ar i& & o &!ri3 a 1e aile1 & oryboar1 an1 !rea e a n'mber o* .ey*rame& or line 1rawin)&( Ar i& & "en 1raw "e *rame& "a will )o in be ween "e .ey*rame&( T"e n'mber o* .ey*rame& an1 in7be ween *rame& 1e3en1& on "e le2el o* reali&m reB'ire1( T"ere*ore6 "e e**or &!ale& '3 in 3ro3or ion o !om3le<i y( To r'n "i& y3e o* anima ion6 "e 3ro1'! ion eam nee1& o & ay "i)"ly or)ani,e1 an1 ren1er "e *rame& &y& ema i!ally6 lea2in) no &!o3e *or error( Be!a'&e "e anima ion "a33en& by in er7 3ola in) .ey*rame&6 "e re&'l mi)" &"ow in2ali1 !on*i)'ra ion& D3a&&7 "ro')" obLe! &E an1 'nna 'ral or Ler.y mo ion( Game 1e&i)ner& are alway& in ere& e1 in 1e2elo3in) )ame !"ara! er& "a !an &im'la e a real "'man in erm& o* 2i&'al a33earan!e6 mo or &.ill&6 an1 D'l ima elyE rea&onin) an1 in elli7 )en!e( T"i& !on& an 1e&ire an1 nee1 le1 o "e a12en o* 3"y&i!&7ba&e1 anima ion&( P"y&i!&7ba&e1 anima ion6 in !on ra& o ra1i ional .ey*rame anima ion6 mimi!& real li*e more !lo&elyM "e reali&m re&'l & *rom 3"y&i!& mo1elin)( T"e re&'l an anima ion i& in era! i2eM "a i&6 "e 3layer !an !"an)e "e way "e obLe! or !"ara! er be"a2e& by !"oo&in) "e a33ro3ria e o3 ion&( T"i& !a3abili y6 w"en in!rea&e1 m'l i*ol1 in ma)ni '1e6 be!ome& ar i*i!ial in elli)en!e DAIE( De&3i e "e &o3"i& i!a e1 re&'l & "a !an be ob aine1 *rom 3"y&i!&7ba&e1 anima ion&6 "e&e anima ion& are &im3ler o 3ro)ram "an ra1i ional .ey*rame anima ion&( T"i& i& be!a'&e mo& o* "e 3ro!e&&in) i& a.en !are o* by "e 3"y&i!& en)ine "a r'n& on "e law& o* 3"y&i!&( Le '& 'n1er& an1 "e&e e!"nolo)ie& an1 "eir !on rib' ion o )ame 1e2elo3men (
www.it-ebooks.info
+?A0-C0 CO1C$+T0 Mo& o* "e 3"y&i!& &im'la ion& a33lie1 in )ame anima ion are ba&e1 on "e "ree %ew onH& law& o* mo ion( T"e *ollowin) li& 1i&!'&&e& &ome o* "e 3"y&i!& !on!e3 & ba&e1 on "e&e law& o* mo ion4
N Linear mo ion4 Linear mo ion i& mo2emen o* an obLe! alon) a & rai)" line wi " !on& an a!!elera ion or 2ariable a!!elera ion( An e<am3le o* linear mo ion in )ame& i& a )ame !"ara! er r'nnin) in a ra!e alon) a & rai)" ra!.( N An)'lar mo ion4 An)'lar mo ion i& mo2emen o* an obLe! alon) "e !ir!'m*eren!e o* a !ir!le wi " or wi "o' a !on& an an)'lar ra e or &3ee1 o* ro a ion( An e<am3le o* an)'lar mo ion in )ame& i& a !ar )oin) aro'n1 a !'r2e on a ra!e ra!. in a ra!in) )ame( N For!e4 For!e i& any 3ower "a 6 w"en e<er e1 '3on an obLe! 6 !a'&e& "e obLe! o 'n1er)o a !"an)e wi " re&3e! o i & mo2emen 6 1ire! ion6 or )eome ri!al & r'! 're( An e<am3le o* *or!e in )ame& i& ')7o*7war in a &3or & )ame in w"i!" wo eam& e<er *or!e by 3'llin) a o33o&i e en1& o* a ro3e wi " "e aim o* 1ra))in) "e o33onen eam o2er a !en ral line( N Iner ia4 Iner ia i& "e re&i& an!e o* an obLe! o any !"an)e in i & & a e o* mo ion( An e<am3le o* iner ia in a !ar ra!in) )ame i& "a w"en "e !ar 'rn& le* 6 "e 1ri2er !"ara! er in "e !ar i& 3'&"e1 o "e ri)" ( N Colli&ion4 A !olli&ion i& a 3"enomenon in w"i!" wo or more obLe! & !olli1e wi " ea!" o "er( An e<am3le o* !olli&ion i& a 3roLe! ile *ire1 *rom a wea3on & ri.in) "e ar)e mon& er in a war )ame( T"e 3"y&i!& !on!e3 & !an be a33lie1 o "e *ollowin) 3"y&i!al &y& em&4 N Ri)i1 bo1y 1ynami!&4 In 3"y&i!& &im'la ion6 ri)i1 bo1y 1ynami!& i& "e & '1y o* "ow o re3re&en an1 im3lemen "e anima ion o* ri)i1 bo1ie&( A ri)i1 bo1y i& a 3"y&i!al &y& em "a "a& *ini e &i,e an1 "a 1oe& no allow a !"an)e in i & ori)inal &"a3e w"en e< ernal *or!e& are a33lie1( For e<am3le6 in a &noo.er )ame6 "e able6 i & 3o!.e &6 an1 "e ball& are ri)i1 bo1ie&( N So* bo1y 1ynami!&4 So* bo1y 1ynami!& i& "e & '1y o* "ow o re3re&en an1 im3le7 men "e anima ion o* &o* bo1ie&( A &o* bo1y i& a 3"y&i!al &y& em "a "a& *ini e &i,e an1 "a !"an)e& i & ori)inal &"a3e w"en e< ernal *or!e& are a33lie1( /o' !an a33ly &o* bo1y 1ynami!& in yo'r )ame i* yo'r )ame !"ara! er ma.e& '&e o* !lo " an1 "a !lo "
1@$ , 2esso* %
"a& o re&3on1 ba&e1 on "e mo2emen o* "e )ame !"ara! er( So* bo1y 1ynami!& in2ol2e& many more !al!'la ion& "an ri)i1 bo1y 1ynami!&( T"ere*ore6 i reB'ire& a lo o* !om3' in) 3ower an1 i& le&& *reB'en ly '&e1 in low7en1 &y& em&( N Fl'i1 1ynami!&4 Fl'i1 1ynami!& i& "e analy&i& o* anima ion o* *l'i1&( A *l'i1 !an be a liB'i16 &'!" a& wa er6 or a )a&( In )ame&6 yo' !an a33ly *l'i1 1ynami!& w"ene2er yo' wan o im3lemen *l'i1 e**e! & &imilar o na 're( For e<am3le6 yo' mi)" wan o reali& i!ally imi a e ri&in) &mo.e or 'rb'len wa er *low( Howe2er6 &'!" &im'la ion reB'ire& &o'n1 .nowle1)e o* ma "ema i!al &.ill& an1 i& e<3en&i2e o im3lemen (
+?A0-C0 $1G-1$ In anima ion6 we '&e a 3"y&i!& en)ine o im3lemen a &im'la ion( A 3"y&i!& en)ine i& !om3' er &o* ware "a a.e& !are o* all ma "ema i!al !al!'la ion& *or im3lemen in) "e 3"y&i!& !on!e3 &( I ma.e& "e a&. o* a )ame 1e2elo3er ea&y by
N Mani3'la in) "e o' !ome w"en wo obLe! & in yo'r )ame !olli1e N A33lyin) )ra2i y on "e obLe! & in yo'r AD )ame worl1 N Cal!'la in) "e *or!e a33lie1 on an obLe! an1 mani3'la in) "e mo2emen o* "a obLe! ba&e1 on "e !al!'la ion& T"ere are wo y3e& o* 3"y&i!& en)ine&6 real7 ime an1 "i)" 3re!i&ion( Real7 ime 3"y&i!& en)ine& are no a!!'ra e6 an1 &o "ey are '&e1 in 2i1eo )ame& "a reB'ire &im3li*ie1 !al!'la ion&( Hi)" 3re!i&ion 3"y&i!& en)ine& 3ro2i1e 3re!i&e 3"y&i!& !al!'la ion& an1 are '&'ally '&e1 by &!ien i& & o !rea e 2ir 'al &im'la or&( T"ere are wi1e 2arie ie& o* real7 ime 3"y&i!& en)ine& a2ailable in "e mar.e *or Mi!ro&o* #%A ;(9( Some o* "em are4 N Far&eer P"y&i!& N +ello P"y&i!& N Bo<8D< N +i)Lib# N B'lle # N B'lle #%A A 3"y&i!& en)ine )enera e& a & ream o* anima ion 3oin & *or a )i2en anima ion in*orma ion( T"e anima ion in*orma ion !an be 1a a6 &'!" a& "e ini ial &3ee1 an1 an)le o* "e anima ion( /o' !an a!!e&& a 3"y&i!& en)ine *rom "e #%A Framewor. by !rea in) a &e3ara e in& an!e o* "e re&3e!7 i2e 3"y&i!& en)ine obLe! ( T"e *ollowin) !o1e &am3le a!!e&&e& "e Rig-ib) 6h0sics en)ine(
//"nclude necessar0 librar0. using using using using using Rig-ib).6h0sics; Rig-ib).Collision; Rig-ib).Geometr0; Rig-ib).!ath; Rig-ib).2tils;
//"nitialize 6h0sics s0stem 6h0sics:0stem ph0sic:0stem; //"nitialize ph0sics s0stem ph0sic:0stem @ new 6h0sics:0stem#%; //"nitialize Collision :0stem ph0sic:0stem.Collision:0stem @ new Collision:0stem:16#%; //"nitializing ph0sics sol3er ph0sic:0stem.9nable*reezing @ true; ph0sic:0stem.:ol3er40pe @ 6h0sics:0stem.:ol3er.&ormal;
www.it-ebooks.info
Li.e "e GPU6 w"i!" a.e& !are o* "e 3ro!e&&in) o* )ra3"i!& in m'l ime1ia a33li!a ion& &'!" a& 2i1eo )ame&6 o1ay6 a 3"y&i!& 3ro!e&&in) 'ni DPPUE i& a2ailable in "e mar.e ( A PPU i& a 1e1i!a e1 mi!ro3ro!e&&or 1e&i)ne1 e<!l'&i2ely *or "an1lin) 3"y&i!& !al!'la ion&( T"e i1ea be"in1 in ro1'!in) PPU i& o re1'!e "e loa1 on "e CPU o* 3er*ormin) ime7!on&'min) 3"y&i!& !al!'la ion&( Some o* "e !al!'la ion& "a a PPU 3er*orm& are ri)i1 bo1y 1ynami!&6 &o* bo1y 1ynami!&6 *l'i1 1ynami!&6 an1 !olli&ion 1e e! ion( A )eneral73'r3o&e !om3' in) on )ra3"i!& 3ro!e&&in) 'ni DGPGPUE i& ano "er "ar1ware 3ro!e&&in) 'ni "a 3ro2i1e& 3"y&i!& 3ro!e&&in)( A GPGPU i& a GPU !ar1 "a 3ro2i1e& &'33or *or 3"y&i!& !al!'la ion&( All )ra3"i!& !ar1& 3ro1'!e1 o1ay "a2e GPGPU(
CO//-0-O1 $T$CT-O1 70-1G 8$CTA1G7/A8 .O4 Colli&ion 1e e! ion '&in) re! an)'lar bo< in2ol2e& en!lo&in) AD mo1el& wi "in a re! an)'lar bo'n1in) bo< an1 1e erminin) w"e "er any wo re! an)'lar area& in yo'r )ame worl1 o'!" or o2erla3 ea!" o "er( T"e .ounding.o/ S r'! 're a2ailable in "e #%A Framewor. "el3& yo' !rea e a bo'n1in) bo< "a en!lo&e& yo'r )ame mo1el( A mo1el in #%A i& ma1e '3 o*
www.it-ebooks.info
1@! , 2esso* %
one or more me&"e&( Ea!" *a!e o* "e re! an)'lar bo< i& 3er3en1i!'lar o "e #6 /6 an1 P a<i&( Le '& now loo. a "ow yo' !an 1e ermine "e !olli&ion be ween wo )ame mo1el& '&in) "e .ounding.o/ S r'! 're( $T$CT CO//-0-O1 70-1G .O71 -1G .O4 >3T 83A<;. Tra!e "e 3o&i ion an1 "e mo2emen o* ea!" o* yo'r )ame mo1el& in "e )ame worl1( 1. Crea e "e bo'n1in) bo< *or ea!" mo1el o* yo'r )ame &!ene '&in) "e .ounding.o/ !la&&(
//Create bounding bo/es .ounding.o/ bG@new .ounding.o/#min6oint;f!odelG$ma/;int;f!odelG%; .ounding.o/ b2@new .ounding.o/#min6oint;f!odel2$ma/;int;f!odel2%;
A. In "e Game.2pdate me "o16 ran&*orm "e bo'n1in) bo< a!!or1in) o "e mo1elH& worl1 ma ri<(
//Get corner points of bounding bo/ Vector5EF obb @ new Vector5ETF; bG.GetCorners#obb%; /*4ransform corner points according to modelPs world matri/*/ Vector5.4ransform#obb$ ref modelGWorld!atri/$ obb%; //Create new bounding bo/ from transformed points bG@ .ounding.o/.Create*rom6oints#obb%;
%. C"e!. "e !olli&ion '&in) "e *'n! ion a2ailable in "e .ounding.o/ !la&&(
6ublic bool detectCollsion#.ounding.o/ obAectG$.ounding.o/ obAect2% /*Chec+ collision detection ."f both bounding bo/ intersects $ then collision happens*/ if#obAectG."ntersects#obAect2%% return true ; ' return false ;
\ One maLor 1i&a12an a)e in '&in) a bo'n1in) bo< i& "a w"en mo1el& 1o no *i e<a! ly in o yo'r bo'n1in) bo<6 i !an lea1 o *al&e 3o&i i2e& *or !olli&ion( In Fi)'re ;7886 yo' !an &ee "a al "o')" "e wo )ame mo1el& 1o no o'!" ea!" o "er6 "e wo re! an)'lar area& o* "e
www.it-ebooks.info
www.it-ebooks.info
bo<e& in er&e! ( To o2er!ome "i& 1i&a12an a)e in "e bo'n1in) bo< !olli&ion 1e e! ion me "o16 yo' !an '&e "e 3er73i<el !olli&ion 1e e! ion me "o1(
Ima)e& in !om3' er& are re3re&en e1 in 3i<el&( T"e !olli&ion71e e! ion me "o1 '&e& "e o2er7 la3 be ween 3i<el& o 1e e! !olli&ion( -"en "e wo re! an)'lar area& o* "e bo'n1in) bo< in er&e! 6 e2ery 3oin wi "in "e in er&e! in) bo'n1& )e & "e !olor o* "e o2erla33in) 3i<el&( In a11i ion6 "e o2erla33in) 3i<el& are no lon)er ran&3aren 6 "a i&6 i* "eir al3"a 2al'e& are no eB'al o ,ero( T"e&e wo *in1in)& !on*irm !olli&ion( Fi)'re ;78A &"ow& !olli&ion 1e e! ion '&in) "e 3er73i<el me "o1(
TA2$ 1OT$
Per73i<el !olli&ion i& a .in1 o* 8D !olli&ion 1e e! ion e!"niB'e( I i& no '&e1 *or AD( I i& a &low 3ro!e&&6 be!a'&e yo' nee1 o !om3are ea!" 3i<el o* e< 're( I* "e e< 're i& lar)e6 "en "e n'mber o* 3i<el& in!rea&e& an1 !olli&ion 1e e! ion ime al&o in!rea&e&( /o' nee1 o '&e bo'n1in) bo< *or !olli&ion 1e e! ion *or bo " 8D an1 AD(
On!e yo' "a2e 1e ermine1 "a wo )ame mo1el& "a2e !olli1e1 in o ea!" o "er6 yo' "en 1e!i1e "e re&3on&e "a nee1& o be &im'la e1 *ollowin) "i& !olli&ion(
C$8T-"-CAT-O1 8$A A <hat is collision responseB *.(
CO//-0-O1 8$0+O10$ -"en wo )ame mo1el& in yo'r )ame worl1 !olli1e6 "e re&'l an e2en 1e3en1& on "e na 're o* "e !olli&ion( For e<am3le6 !on&i1er a !ar ra!in) )ame( -"en a &3ee1in) !ar *a!e& an ob& a!le6 &'!" a& a bri!. wall on "e ra!e ra!.6 "e !ar imme1ia ely !"an)e& i & 1ire! ion o a2oi1 !olli&ion( B' i* "e wo )ame mo1el&K "e !ar an1 "e bri!. wallK!ome in o !on a! 6 "e re&'l an e2en i& "a "e !ar i& &li)" ly 1i&3la!e1 *rom i & 3o&i ion wi " a !"an)e in 2elo!7 i y( To !i e ano "er e<am3le6 le '& !on&i1er a b'lle & ri.in) a 2illainH& !"e& ( In "i& !a&e6 "e wo )ame mo1el& in2ol2e1 in "e !olli&ion are "e b'lle an1 "e 2illainH& !"e& ( T"e 2illain lyin) on "e )ro'n1 in1i!a in) "a "e i& 1ea1 i& "e re&'l an e2en o* "i& !olli&ion(
1%& , 2esso* %
esigning ADe&i)nin) AI in 2i1eo )ame& in!l'1e& me "o1& o 3ro1'!e "e 1el'&ion o* in elli)en!e in "e be"a2ior o* non3layer !"ara! er& D%PCE( Game& are )ainin) !ommer!ial 3o3'lari y wi " "e in!l'&ion o* "e AI *ea 're( Remember "a 3"y&i!al &im'la ion "el3& yo' !on& r'! a33ro<ima e mo1el& o* real7li*e 3"y&i!al &y& em& in yo'r )ame&( /o' '&e 3"y&i!& !on!e3 & *or yo'r )ame obLe! & o re3re7 &en a ran)e o* 3"y&i!al a! i2i ie&6 &'!" a& wal.in)6 'rnin)6 an1 !"an)in) *a!ial e<3re&&ion&( Al "o')" 3"y&i!&7ba&e1 anima ion "el3& yo' 3ro2i1e reali& i! mo ion o yo'r %PC&6 i 1oe& no 3ro2i1e a way o &im'la e "'man "in.in)( T"i& i& w"ere AI !ome& in o "e 3i! 're( In "e 3a& 6 )ame 3layer& mo& ly 3laye1 a)ain& %PC& w"o&e a! ion& were "ar17!o1e1( T"e&e %PC& 1i1 no 3ro2i1e eno')" !"allen)e& o "e )ame 3layer be!a'&e "e mo2emen & o* "e&e )ame en i ie& were 3re1e ermine1 an1 e< remely limi e1( By re3ea e1ly 3layin) "e )ame6 3lay7 er& !o'l1 ea&ily 3re1i! "e mo2emen o* "e %PC& an16 "ere*ore6 ea&ily win "e )ame( For e<am3le6 in S3a!e In2a1er&6 "e )ame 3layer "a& o &"oo "e alien& be*ore "ey rea!" "e bo om o &woo3 1own a "e 3layer( T"e mo2emen & o* "e&e alien& were "ar17!o1e1 an1 no 1e er7 mine1 1ynami!ally a r'n ime( T"i& wa& no B'i e !"allen)in) eno')" *or "e )ame 3layer&( -i " "e a12en o* 1i**eren )ame )enre&6 "e nee1 o &im'la e AI in %PC& "a& be!ome im3or an o en)a)e "e )ame 3layer&( To !i e an e<am3le6 a )ame "a em3loy& AI i& T"e Sim&( T"e !"ara! er& in "i& )ame 3o&&e&& in1i2i1'al !"ara! eri& i!&( T"ey !an a! a!!or1in) o "eir will an1 "a2e "eir own wan & an1 nee1&( T"e i1ea o* a33lyin) AI in )ame& i& o &im'la e reali& i! in elli)en be"a2ior o* %PC& &imi7 lar o "e be"a2ior o* a "'man( Crea in) 2iable AI i& one o* "e bi))e& !"allen)e& *or )ame 1e2elo3er& be!a'&e o1ay6 )ame 3layer& e<3e! in elli)en an1 1i**i!'l )ame&( To mee "eir e<3e! a ion&6 1e2elo3er& !anno i)nore "e AI !om3onen w"ile 1e2elo3in) )ame&(
71 $80TA1 -1G AIn )eneral6 "e *o!'& o* AI in )ame& i& in "e 1e&i)n o* a belie2able !"allen)in) o33onen *or "'man 3layer&( T"e .ey role o* AI in )ame& i& 1e!i&ion ma.in)( T"e AI in "e )ame ma.e& 1e!i&ion& '&in) &ele! i2e me "o1olo)y an1 a! & a!!or1in) o "e &ele! e1 o3 ion( Be!a'&e yo' are aware o* "e )ame r'le& an1 "e a2ailable )ame en i ie&6 yo' !an 3ro2i1e &!ri3 e1 an1 3re1e ermine1 1a a71ri2en al)ori "m& an1 &!ri3 e1 re&3on&e& o in!or3ora e AI in o yo'r )ame( T"ere*ore6 "e 3'r3o&e o* AI in )ame& i& no *or in elli)en!e6 b' *or 3ro2i1in) more reali& i! an1 !"allen)in) )ame en i ie& *or )ame 3layer&(
T"e main a&. be"in1 !rea in) a )ame AI in2ol2e& 'n1er& an1in) "e reB'iremen o* "e )ame o' !ome an1 "en b'il1in) "e &y& em o 3ro2i1e "a o' !ome( T"e *ollowin) !on en 1i&!'&&e& &ome o* "e & ra e)ie& in w"i!" yo' !an in!or3ora e AI in yo'r )ame&4 N Mo& ob2io'& a! ion & ra e)y4 /o' !an b'il1 "e AI in yo'r )ame ba&e1 on "e mo& ob2io'& a! ion o* "e )ame 3layer( For e<am3le6 !on&i1er a *ir& 73er&on &"oo er DFPSE )ame in w"i!" "e 3layer nee1& o *in1 a *lower "a2in) &3e!ial "ealin) 3ower& o !om7 3le e a le2el( To !om3le e "i& a&.6 "e 3layer mi)" nee1 o o2er!ome &e2eral !"allen)e&( For in& an!e6 "e mi)" nee1 o e&!a3e *rom "e a a!.& o* an %PC( To e&!a3e "e a a!.6 "e 3layer !"ara! er !"oo&e& o a.e !o2er be"in1 &ome b'&"e&( In "i& !a&e6 yo' !an 3ro7 )ram "e %PC o ei "er wai *or one min' e an1 "row a bomb or ran1omly *ire )'n7 &"o & owar1& "e b'&"e&( Ano "er o3 ion i& o 3ro)ram "e %PC o a.e a "i)"er )ro'n1 an1 &"oo "e 3layer !"ara! er "i1in) be"in1 "e b'&"( T"i& & ra e)y &"ow& "e &im3le& *orm o* &im'la in) AI in a )ame( N C"ara! eri,a ion7ba&e1 & ra e)y4 C"ara! eri,a ion7ba&e1 & ra e)y '&e& "e na 're o* "e be"a2ior o* "e %PC& in a )ame( For e<am3le6 i* an %PC r'n& o' o* wea3on& o a a!.
www.it-ebooks.info
"e o33onen 3layer !"ara! er6 yo' !an 3ro)ram "e %PC o a.e !o2er or !"oo&e wea3on& *rom "e & ore( N Con1i ion7ba&e1 & ra e)y4 T"i& & ra e)y in!or3ora e& AI ba&e1 on "e !'rren !ir!'m7 & an!e or !on1i ion6 w"i!" "e %PC i& & '!. wi "( For e<am3le6 i* an %PC i& 1e*ea e1 by "e 3layer !"ara! er an1 en1& '3 in 3ri&on6 yo' !an 3ro)ram "e %PC o e&!a3e *rom 3ri&on '&in) "e a33ro3ria e obLe! & in "e )ame en2ironmen ( For in& an!e6 yo' !an 3ro)ram "e )ame !"ara! er o '&e an e<3lo&i2e o brea. o3en "e 3ri&on wall an1 e&!a3e "ro')" "e brea!" in "e wall( T"i& way6 yo' !an im3ro2e "e B'ali y o* AI in yo'r )ame( N Pa "7*in1in) & ra e)y4 T"i& & ra e)y !an be '&e1 o ma.e an %PC *in1 a 3a " aro'n1 an ob& a!le( For e<am3le6 &ay in a role73layin) )ame6 "e 3layer !"ara! er ra3& yo'r %PC in a ma,e( /o' !an 3ro)ram yo'r %PC o mo2e "ro')" "e &"or e& 3o&&ible ro' e o )e o' o* "e ma,e( Howe2er6 1'rin) "i& 3ro!e&&6 yo' &"o'l1 al&o !on&i1er "e 3o&i ion o* "e 3layer !"ara! er an1 "e 3o&&ible ob& a!le& *rom "im( For in& an!e6 "e 3layer !"ara!7 er !o'l1 be *irin) a yo'r %PC( In "i& !a&e6 yo' &"o'l1 al&o 1e!i1e on "ow yo'r %PC &"o'l1 rea! ( S"o'l1 &"e *ire ba!. or a.e !o2erR T"ere are n'mero'& 3a "*in1in) al)o7 ri "m& a2ailable "a yo' !an ma.e '&e o* in yo'r )ame( A[ i& one &'!" al)ori "m( N R'bberban1 & ra e)y4 /o' !an '&e "i& & ra e)y in a ra!in) or &3or & )ame( T"i& & ra e)y in!or3ora e& AI by 3re2en in) "e 3layer !"ara! er *rom )e in) oo *ar a"ea1 o* "e %PC( For e<am3le6 in a !ar ra!in) )ame6 yo' !an 3ro)ram "e %PC 1ri2er o &3ee1 "e !ar in an e**or o mo2e a"ea1 o* "e 3layer !"ara! er( T"i& way6 yo' !an !"allen)e "e )ame 3layer by main ainin) "e !om3e i i2e *eel( %o e "a mo& )ame& in &ome way in2ol2e !"a&in) an1 e&!a3in) e2en &( $ee3in) "i& in min16 yo' !an 1e&i)n yo'r AI al)ori "m !on&i1erin) "e *ollowin) 3oin &4 N -"ile !"a&in) "e 3layer !"ara! er6 '&e "e mo& 1ire! an1 &"or e& way *or yo'r )ame !"ara! er( $ee3 "e )ame !"ara! erH& line o* &i)" & rai)" ( N C"oo&e an in er!e3 in) 3oin be ween "e 3layer !"ara! er an1 yo'r )ame !"ara! er ba&e1 on "i& or "er 3o&i ion6 1ire! ion6 an1 2elo!i y( N U&e 3re1e*ine1 !om3le< 3a ern& *or mo2emen o* yo'r )ame !"ara! er( By '&in) &'!" 3a ern&6 yo' !an 3ro2i1e "e ill'&ion o* in elli)en be"a2ior o yo'r )ame !"ara! er( T"e *ollowin) & e3& &"ow "e ba&i! *low o* AI in an FPS )ame4 :( De!i1e w"i!" AI &"o'l1 mo2e owar1& "e 3layer 1e3en1in) on "e 3o&i ion( 8( De!i1e "ow "e &ele! e1 AI &"o'l1 be"a2e 1e3en1in) on 2ario'& *a! or&6 &'!" a& "e a! ion 3er*orme1 by "e 3layer6 in elli)en!e o* "e AI6 an1 &o on( A( U&e a 3a "7*in1in) al)ori "m o ma.e "e AI mo2e owar1& "e 3layer( ;( A a!. "e 3layer(
A- $1G-1$0 To 1e&i)n AI in yo'r )ame6 yo' !an wri e yo'r own al)ori "m& or '&e AI en)ine& "a are &3e7 !i*i!ally 1e&i)ne1 *or #%A( In "e &ame way "a 3"y&i!& en)ine& 3ro2i1e a !om3le e &ol' ion *or 3ro2i1in) 3"y&i!&7ba&e1 anima ion in yo'r )ame&6 AI en)ine& 3ro2i1e &ol' ion& "a "el3 yo' o &im'la e AI in yo'r )ame( E<am3le& o* AI en)ine& "a are a2ailable *or #%A in!l'1e4
N S"ar3S eer N Sim3leAI N #%A Pa "*in1in) Library
CO10- $8AT-O10 "O8 A- $0-G1 AI mi)" a33ear 'nreal i* o2er1one( %o "'man 3layer i& 3er*e! ( T"ere*ore6 o &'33or "i& reali&m6 yo' &"o'l1 allow a !er ain amo'n o* im3er*e! ion in yo'r %PC&( Pro)ram yo'r
www.it-ebooks.info
1%A , 2esso* %
%PC& in &'!" a way "a "ey ma.e "e )ame 3layer& belie2e "a "ey are 3layin) a)ain& real o33onen & ra "er "an !om3' er7&im'la e1 !"ara! er&( For "i&6 yo' "a2e o allow yo'r %PC& o ma.e mi& a.e&( T"e )ame 3layer& &"o'l1 be able o 1e*ea yo'r %PC& a &ome 3oin in ime( Per*e! %PC& ma.e "e )ame 'nreal an1 borin) by no )i2in) "e "'man 3layer a !"an!e o win(
(:/22 ('MMA8;
-1 T?-0 /$00O1 AO7 /$A81$ H I I I I I I I I I I I I Gameflow is a seJuence of challenging tasks and corresponding rewards that make players en:oy the game and gi!e them a sense of accomplishment. Game states are characteriGed by a combination of !isual# audio# and animation cues that make the game go forward. An optimiGed game state ensures that all elements in the game state are utiliGed efficiently. 0cene hierarchy helps you design a game that reJuires less memory to run smoothly. "ps-induced delays or hindrances to members disrupt the gameflow. A graphics pipeline refers to the current method of drawing images on a screen through the con!ersion of !ector graphics format or geometry into raster or pi%el images. The main loop is a part of code that gets repeated throughout the duration of the game. -n 41A# Game.,raw and Game.2pdate form the main loop. The 2pdate method is used whene!er the game logic needs to be processed. The ,raw method is used whene!er it is time to draw a frame. -n the fi%ed step type# the game code calls the 2pdate method at fi%ed inter!als. -n the !ariable step game loop# the game code calls the 2pdate and <ender or ,raw methods continuously. The !arious processes in!ol!ed in designing an ob:ect or a character when de!eloping a game include creating comple% ob:ects from simple ob:ects# distorting an ob:ect when reJuired# making the ob:ect mo!e# creating plane structures# and applying a suitable interpolation method to animate the character appropriately. The process of animation reJuires careful attention and skill to bring out the li!eliness of a specific character. The !arious functions a!ailable for animating a character include mo!ement techniJues such as walking# rotating# and shifting from one place to another on the screen spaceR monitoring the interpolation to a specified duration for a particular frameR applying sprite animation to create the !isual effects in a gi!en scenarioR and transforming the ( graph of an ob:ect into the gaming world using matrices. -t is easy to create a feel of the character in the 41A "ramework using lighting because 41A has a built-in formula to calculate the amount of light that needs to be reflected off of a surface. The 41A "ramework allows for per-pi%el lighting# which ensures a smooth lighting effect on the surface. A filter is a method or techniJue that enables you to change the appearance of te%tures on images. The :ampler:tate class allows you to set the parameters for magnification and shrinkage of te%tures using the *ilter property. A shader is the surface property of an ob:ect. The !erte% shader takes the ( position of the !erte% and transforms it into 9 screen coordinates. The pi%el shader draws each pi%el of the screen using the coordinates it recei!es from the !erte% shader.
I I
I I I I I I
www.it-ebooks.info
I +ro:ections effect scaling and !iew changes to the character or ob:ectKs en!ironment. I The 41A "ramework allows you to create custom-made ob:ects through the use of the ,raw2ser"nde/ed6rimiti3es class ob:ect. I Aou can use physics simulation in your game to pro!ide realistic animation effects. I A real-time physics engine helps game de!elopers implement physics in their game animation. I 0ome of the different physics engines used for 41A include "arseer +hysics# 5ello +hysics# .o%9 4# 5ig/ib4# .ullet4# and .ullet41A. I A ++7 is a dedicated microprocessor designed e%clusi!ely for handling physics calculations. I A G+G+7 is a G+7 card that pro!ides support for physics calculations. I Collision detection in games in!ol!es determining whether two game models in your game world ha!e contacted each other. I Collision response in!ol!es determining the e!ent that needs to be simulated based on a collision. I .ounding bo% collision detection and per-pi%el collision detection are methods for detecting collisions in your game. I A- in games focuses on the design of belie!able challenging opponents for human players.
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.& 3ro2i1e1( :( Pro2i1in) 1i**eren & yle& o* 3layin) "e )ame a ea!" le2el main ain& "e QQQQQQ o* "e )ame( 8( T"e QQQQQQQQQQ y3e o* )ame loo3 i& be& &'i e1 *or ime7ba&e1 mo2emen an1 anima7 ion o3era ion&( A( /o' m'& '&e QQQQQQQQQQQQQ o !on rol "e )ame*low( ;( T"e QQQQQQQQQQQQQ me "o1 nee1& o be o2erri11en *or )ame7&3e!i*i! ren1erin) !o1e( C( /o' !an '&e "e QQQQQQQQQQ *'n! ion o* "e !ath?elper !la&& o !al!'la e "e 1i& an!e be ween obLe! &( @( /o' !an '&e "e QQQQQQQQQQ ma ri< o enlar)e obLe! & w"en !rea in) a )ame mo1el( =( T"e &malle& 'ni o* e< 're "a a GPU !an 3ro!e&& i& !alle1 aDnE QQQQQQQQQQ( >( ADnE QQQQQQQQQQQQQ i& '&e1 o &"rin. a e< 're wi "o' !a'&in) La))e1 e1)e& on "e *inal ima)e( ?( QQQQQQQQQQQQQ i& a mi!ro3ro!e&&or "a i& 1e&i)ne1 e<!l'&i2ely *or 3er*ormin) 3"y&i!& !al!'la ion&( :9( QQQQQQQQQQ !olli&ion 1e e! ion me "o1 !"e!.& *or "e ran&3aren!y o* 3i<el&(
Multiple Choice
Cir!le "e le er or le er& "a !orre&3on1 o "e be& an&wer( :( -"i!" o* "e *ollowin) are *ea 're& o* )ame*lowR DC"oo&e all "a a33ly(E a( C"allen)e b( Per*orman!e
www.it-ebooks.info
1%% , 2esso* %
!( S!ri3 e1 e2en & 1( Trial an1 error e( Player !omman1& *( Player 2o!ab'lary 8( -"i!" o* "e *ollowin) are & a)e& in "e )ra3"i!& 3i3elineR DC"oo&e all "a a33ly(E a( Vi&ibili y b( Re&i,in) !( Re&ol' ion 1( Tran&*orm an1 li)" in) A( -"i!" o* "e *ollowin) i& a )ame & a e in w"i!" "e elemen & are ' ili,e1 3ro3erlyR a( S ar b( O3 imi,e1 !( Forwar1 1( En1 ;( -"i!" o* "e *ollowin) wo'l1 yo' '&e in a )ame !o1e "a reB'ire& "e )ame loo3 o be ba&e1 on 4arget9lasped4imeR a( U31a e b( Fi<e1 & e3 !( Variable & e3 1( Ini iali,e C( -"i!" o* "e *ollowin) are me "o1& a2ailable *or "e main loo3 wi " "e #%A Framewor.R DC"oo&e all "a a33ly(E a( U31a e b( Draw !( In er3ola e 1( Ini iali,e @( -"i!" o* "e&e me "o1& are a&&o!ia e1 wi " "e 6lane !la&&R DC"oo&e all "a a33ly(E a( EB'al& b( Tran&la e& !( Tran&*orm 1( In er&e! & =( -"i!" o* "e *ollowin) will yo' '&e in "e :ampler:tate !la&& i* "e e< 're i& oo bi) or oo &mall *or yo'r ima)eR a( Mi3ma3& b( Fil er& !( ProLe! ion ma ri< 1( S"a1er& >( -"i!" o* "e *ollowin) are *il erin) me "o1& a2ailable wi " "e #%A Framewor.R DC"oo&e all "a a33ly(E a( Poin *il erin) b( Linear *il erin) !( Mi3ma3 *il erin) 1( Ani&o ro3i! *il erin) ?( -"i!" o* "e *ollowin) i& no a 3"y&i!& en)ineR a( Far&eer b( Bo<8D !( Mi!ro&o* #%A ;(9 Game S '1io 1( B'lle #%A
www.it-ebooks.info
:9( /o' 1e!i1e o '&e 3"y&i!& &im'la ion in yo'r )ame anima ion( -"i!" o* "e *ollowin) will "el3 yo' o im3lemen 3"y&i!& &im'la ionR a( Real7Time P"y&i!& En)ine b( Hi)" Pre!i&ion P"y&i!& En)ine !( Mi!ro&o* #%A ;(9 Game S '1io 1( All o* "e abo2e
, Competency
Assessment
0cenario *-;H efining Gameflow
/o' are 1e2elo3in) an FPS )ame( De*ine "e 2ario'& 3o&&ible *ea 're& o* "e )ame*low *or yo'r )ame(
, +roficiency
Assessment
0cenario *-(H Creating 0hadow
In yo'r a12en 're )ame6 yo' are reB'ire1 o 3ro2i1e an ill'&ion o* &"a1ow o* "e )ame obLe! &( E<3lain "e me!"ani&m o a!"ie2e "i& wi " a &am3le !o1e(
www.it-ebooks.info
/$00O1
:3; T38M(
!icrosoft.)na.*ramewor+."nput namespace sa!e-load 77- access mechanisms 7- asset
S e2e -a &on wor.& a Con& o&o Gamin) In!(6 an1 lea1& "e 1e2elo3men eam( Hi& !om3any i& 1e2elo3in) a *ir& 73er&on &"oo er DFPSE )ame *or !on&ole an1 !om3' er &y& em&( T"e member& o* "e eam "a2e 1e&i)ne1 "e )ameH& 2i&'al worl1( T"ey "a2e al&o 1e&i)ne1 2ario'& !om3onen & *or "eir )ame '&in) #%A ;(9( T"ey are now in "e 3ro!e&& o* 1e2elo3in) !o1e o loa1 or 3ro)ram "eir )ameH& '&er in er*a!e DUIE a&&e & in a &3e!i*i! &eB'en!e a& 3er "e )ame*low( In "i& 1e2elo3men 3"a&e6 "e eam member& !orrela e "e reB'ire1 a'1io an1 2i1eo a&&e & an1 3layerH& in3' wi " "e UI a&&e &( T"e eam al&o 1e!i1e& o 1e*ine "e be"a2ior o* "e UI a&&e & '&in) )ame & a e&( T"ey al&o 3ro)ramma i!ally !rea e "e UI a!!e&& me!"ani&m& *or "eir )ame(
, Managing
the 7- Assets
T"e '&er in er*a!e DUIE 1e&i)ne1 *or a )ame i& ma1e *'n! ional in "e )ame "ro')"
3ro)rammin)( To 3ro)ram "e *'n! ionali y o* "e UI in yo'r )ame6 yo' nee1 o loa1 "e UI in o yo'r )ame "ro')" "e #%A Framewor. !on en 3i3eline(
1%$
www.it-ebooks.info
C$8T-"-CAT-O1 8$A A <hat are the different acti!ities in!ol!ed in managing your gameKs 7assetsB ;.*
A& yo' !an re!all6 UI i& a !olle! i2e erm '&e1 o re*er o "e on&!reen elemen & "ro')" w"i!" a 3layer in era! & wi " "e )ame( T"e UI "el3& "e 3layer a!!e&& in*orma ion abo' "e )ame worl1 an1 "e & a '& o* "i& or "er !"ara! er( A& yo' learne1 in Le&&on A6 ICrea in) "e Game O' 3' De&i)n6J "e UI !on!e3 i& !are*'lly "o')" o' an1 "e 1e&i)n o* "e UI i& en2i&ione1 1'rin) "e )ameH& 1e&i)n 3"a&e( T"e UI a&&e & 1e&i)ne1 1'rin) "a 3"a&eK&'!" a& men'6 &3ri e&6 an1 GUI !on rol&Knee1 o be !rea e1 or loa1e1 in "e #%A Framewor. be*ore yo' !an a11 !o1e o ma.e "em *'n! ional in yo'r )ame( In o "er wor1&6 mana)in) "e UI a&&e & in2ol2e& a11in) "e UI a&&e & 1e&i)ne1 *or "e )ame in o "e )ame en2ironmen &o "a "e '&er !an a!!e&& "em in "e &eB'en!e en2i&ione1 1'rin) "e 1e&i)n 3"a&e( Mana)in) "e UI a&&e & mi)" in2ol2e "e *ollowin) a! i2i ie&4 N Loa1in) "e e<i& in) UI a&&e &6 &'!" a& an ima)e or &3ri e&6 on "e )ame &!reen N Con*i)'rin) a'1io6 2i1eo6 an1 3layer in3' & *or "e UI a&&e & N Crea in) men'& N Crea in) "e UI *or &a2e7loa1 Le H& loo. a "e&e a! i2i ie& in 1e ail(
UI 3lay& an im3or an role in any )ame( For e<am3le6 w"ile 3layin) "e )ame6 "e 3layer mi)" nee1 o .now abo' "i& "eal " & a '&6 &!ore6 amo'n o* amm'ni ion le* 6 an1 &o on( /o' !an 3ro2i1e "i& in*orma ion o "e 3layer "ro')" "e UI( For in& an!e6 yo' !an '&e a "eal " bar e< 're o in1i!a e "eal "6 e< o 1i&3lay "e &!ore6 an1 a men' o "el3 "e 3layer &ele! "e reB'ire1 wea3on or in2en ory o* "i& !"oi!e( Al erna ely6 yo' !an loa1 o "er )ame mo1el& o "e )ame en2ironmen ( T"e&e ar an1 1a a a&&e & !an be in 1i**eren *orma & &'!" a& (L3)6 (*b< DA' o1e&. FB# *ile *orma E6 or (&3ri e*on ( To a!!e&& "e&e )ame a&&e & a r'n ime *or imme1ia e '&e6 #%A Framewor. ;(9 3ro2i1e& yo' wi " "e !on en 3i3eline( /o' !an '&e "e ar or 1a a *ile& !rea e1 by a )ame ar i& 1ire! ly in yo'r #%A Game S '1io 3roLe! & by loa1in) "em in o "e !on en 3i3eline( T"e !on en 3i3eline allow& yo' o in!l'1e "e ne!e&&ary )ame a&&e & in "e *orm o* mana)e1 !o1e obLe! in "e )ameH& e<e!' able( To ma.e yo'r )ame a&&e & a2ailable o "e !on en 3i3eline6 yo' nee1 o loa1 "e reB'ire1 a&&e o "e )ame !on en 3roLe! ( T"e *ollowin) &e! ion 1e&!ribe& "e & e3& reB'ire1 o loa1 a UI a&&e o a )ame !on en 3roLe! ( /OA 7- A00$T >3T 83A<;. Crea e yo'r )ame 3roLe! an1 name i ISam3leGame(J A11 "e )ra3"i!& ele7 men & or "e UI a&&e & o yo'r )ame !on en by 3er*ormin) "e *ollowin) & e3&4 1. In Sol' ion E<3lorer6 ri)" 7!li!. "e Co*te*t 3roLe! an1 !li!. A++ J 34isti*g /tem D&ee Fi)'re C7:E( T"en !li!. 34isti*g /tem an1 brow&e o yo'r &a2e1 )ra3"i!&( A11 "e ne!e&&ary UI elemen &6 &'!" a& &3ri e&6 ima)e&6 an1 &o on( T"i& e<am3le &ele! & "e Ba!.)ro'n1(L3) ima)e *ile D&ee Fi)'re C78E( Fi)'re C7A &"ow& "e Con en no1e li& in) "e Ba!.)ro'n1(L3) *ile( %o e "a yo' !an & ore "e rela i2e )ra3"i!& !on en in 1i& in! *ol1er& *or "e ea&e o* mana)emen o* a&&e &( For e<am3le6 yo' !an !rea e a *ol1er !alle1 Ba!.)ro'n1& an1 a11 all ba!.)ro'n1 ima)e& o i ( For a 3ar i!'lar &!ene in "e )ame6 yo' mi)" '&e a 1i& in! *ol1er !alle1 &!ene:
www.it-ebooks.info
www.it-ebooks.info
1%! , 2esso* ?
"igure @-; The 0olution $%plorer showing the Add option
"igure @-9 The Add $%isting -tem dialog bo% listing the image file
www.it-ebooks.info
an1 a11 all &!ene: 1a a in&i1e i ( Main ainin) "e )ame !on en in 1i& in! *ol1er& "el3& yo' mana)e "e a&&e & in an e**i!ien manner( A. On!e yo' a11 "e reB'ire1 a&&e &6 yo' !an loa1 "em on o "e )ame !o1e by o2erri1in) "e -oadContent me "o16 a& &"own in "e *ollowin) !o1e( T"e -oadContent me "o1 loa1& "e reB'ire1 a&&e & in o yo'r )ame( T"e *ollowin) !o1e loa1& an ima)e *ile *or &e in) "e ba!.)ro'n1 o* a )ameH& i le &!reen( %o e "a "e !o1e '&e& =U> be*ore "e & rin) 3arame er o* "e Content.-oad me "o1( T"e '&e o* =U> 1oe& no allow I]J e&!a3e& an1 i& "'& m'!" ea&ier o 1e*ine "e 3a " o a *ile(
TA2$ 1OT$
-"en yo' a11 a )ra3"7 i!& *ile o yo'r )ame !on en 3roLe! 6 #%A Framewor. ;(9 a' oma 7 i!ally & ore& i in "e !on en 3i3eline( T"i& "el3& yo' in loa1in) "e reB'ire1 )ra3"i!& in yo'r )ame "ro')" "e !o1e(
protected
o3erride
3oid
-oadContent#%
/* the Content.-oad method loads a game asset that has been processed b0 the content pipeline */ 4e/ture2, bac+ground:creen @ Content.-oad#4e/ture2,.#U>.ac+ground>%; .ase.-oadContent#%;
%ow "a yo' "a2e &een "ow o loa1 an e<i& in) )ra3"i!& a&&e in o yo'r )ame6 le '& now loo. a "ow o !on*i)'re &o'n16 2i1eo6 an1 3layer in3' & wi " "e reB'ire1 UI a&&e in yo'r )ame(
C$8T-"-CAT-O1 8$A A ?ow would you load a background image to your game in 41A *.EB ;.)
Configuring Options
Correla in) "e a'1io6 2i1eo6 an1 "e 3layer in3' wi " "e UI a&&e & i& im3or an in any )ame(
1?& , 2esso* ?
C$8T-"-CAT-O1 8$A A <hat are the ways to associate audio# !ideo# and keyboard inputs with the 7assets of your gameB (.9
For e<am3le6 i* "e 3layer !li!.& a b' on6 "e 3layer *eel& )oo1 i* &"e "ear& a !li!. &o'n1( Similarly6 w"en "e 3layer !li!.& on a )ame a2a ar6 i mi)" be a )oo1 i1ea o 1i&3lay a 2i1eo in w"i!" "e a2a ar &3ea.& o "e 3layer li& in) "e 1i**eren a2a ar o3 ion&( A11i ionally6 yo' mi)" al&o nee1 o !a3 're "e .ey& "a a 3layer 3re&&e& *or a! i2a in) "e &3e!i*ie1 UI a&&e ( Le '& loo. a "e&e !on*i)'ra ion o3 ion&(
CO1"-G78-1G T?$ A7 -O "-/$ Le '& 'n1er& an1 "ow o !on*i)'re &o'n1 e**e! & in yo'r )ame( For e<am3le6 w"ile 3re&&in) any UI b' on6 "e 3layer mi)" "ear a !li!. &o'n16 w"i!" "el3& "e 3layer o 'n1er& an1 "a "e b' on "a& been !li!.e1( O "er e<am3le& o* '&in) &o'n1 in a UI are4
N -"en a 3layer i& !"oo&in) an a2a ar6 "e a2a ar mi)" &3ea. a 1ialo)( N -"en "e 3layer "a& a men' 1i&3laye16 &"e mi)" be able o "ear an ambien ba!.)ro'n1 ra!. 3layin) 'n il &"e en er& "e )ame3lay(
TA2$ 1OT$
A'1io in #%A Framewor. ;(9 i& wa2e7 ba&e1( /o' !an '&e "e :ound9ffect !la&& o '&e wa2e *ile& in yo'r )ame(
#%A Framewor. ;(9 3ro2i1e& &e2eral a'1io !la&&e& in "e !icrosoft.)na.*ramewor+. 1udio name&3a!e6 w"i!" yo' !an '&e o 3lay ba!. a'1io( T"e :ound9ffect6 :ound9ffect"nstance6 an1 ,0namic:ound9ffect"nstance !la&&e& 3ro2i1e e2ery "in) "a yo' nee1 o 3lay an1 & ream a'1io 1'rin) )ame3lay( T"e ea&ie& way o in!or3ora e ba!.)ro'n1 &o'n1 e**e! & *or yo'r UI a&&e & i& by '&in) "e :ound9ffect !la&&( /o' !an a11 a'1io *ile& L'& li.e yo' a11 any o "er )ame a&&e o "e 3roLe! ( T"e *ollowin) & e3& 1i&!'&& "e 3ro!e1're o a11 a'1io *ile& o yo'r )ame( A 0O71 $""$CT0
1. In Sol' ion E<3lorer6 ri)" 7!li!. "e Co*te*t 3roLe! an1 "en !li!. A++( Cli!. 34isti*g /tem an1 brow&e o "e lo!a ion w"ere yo' "a2e &a2e1 "e wa2e *ile& an1 &ele! "e i em( A. Loa1 "e wa2e *ile& in yo'r )ame '&in) "e -oadContent me "o1( T"e *ollowin) !o1e 3er*orm& "e 3re2io'& & e3&4
//:et the sound effects to use :ound9ffect sound;n!enu,ispla0;
>3T 83A<;. In or1er o a11 &o'n1 e**e! & o yo'r )ame 3roLe! 6 1o "e *ollowin)4
//!odif0 the -oadcontent method protected o3erride 3oid -oadContent#% /* Create a new :prite.atch$ which can be used to draw te/tures.*/ sprite.atch @ new :prite.atch#Graphics,e3ice%; sound;n!enu,ispla0 @ Content.-oad#:ound9ffect.#U>0our /; ' /*&ow in Game 2pdate loop 0ou can pla0 the audio for the respecti3e asset*/ protected o3erride 3oid 2pdate#Game4ime game4ime% 2" sound file name>%;
www.it-ebooks.info
base.2pdate#game4ime%; '
CO1"-G78-1G T?$ 6- $O "-/$ Li.e a'1io6 yo' !an al&o a11 2i1eo& o "e UI( For e<am3le6 yo' mi)" wan o in!l'1e a
2i1eo o* an a2a ar &3ea.in) a 1ialo) w"en 3re&en in) "e a2a ar o3 ion& *or "e 3layer o !"oo&e *rom( /o' mi)" e2en wan o in!l'1e a 2i1eo in "e ba!.)ro'n1 o* "e UI "a &im3ly r'n& o )i2e "e 3layer a )lim3&e o* w"a e<a! ly will "a33en in "e )ame( /o' !an a11 2i1eo !om3onen & L'& li.e any o "er UI a&&e & '&in) "e -oadContent me "o1( #%A Framewor. ;(9 allow& 2i1eo !om3onen & in -in1ow& Me1ia Vi1eo *orma ( /o' &im3ly "a2e o a11 "e 2i1eo *ile& o a 1i& in! *ol1er *or ea&e o* a!!e&&ibili y an1 "en loa1 i in "e )ame !o1e '&in) "e -oadContent me "o1( On!e yo' loa1 "e reB'ire1 2i1eo *ile o "e !on en 3i3eline6 yo' !an re3re&en "e 2i1eo *ile '&in) "e Video !la&& 3ro2i1e1 in "e !icrosoft.)na.*ramewor+.!edia name&3a!e( T"i& name&3a!e al&o 3ro2i1e& a Video6la0er !la&& o 3lay6 3a'&e6 an1 re&'me "e 2i1eo(
MO8$ -1"O8MAT-O1
"or more information on the capabilities of the 41A Game 0tudio for pro!iding the !ideo playback# refer to the CMedia O!er!iewD section in the M0 1 /ibrary.
T"e *ollowin) !o1e &am3le 1i&3lay& a 2i1eo( T"e !o1e !rea e& an obLe! o* "e Video !la&& o re3re&en "e &3e!i*ie1 2i1eo *ile( I "en !rea e& a Video6la0er obLe! o 3ro2i1e "e *'n! ionali y o* 3layin)6 3a'&in)6 an1 re&'min) "e 2i1eo( T"e !o1e '&e& "e #%A S3ri e o 1raw "e !'rren *rame o* 2i1eo on "e &!reen(
-1"O8MAT-O1MO8$ "or more information on Video and Video6la0er classes# refer to the !icrosoft.)na. *ramewor+.!edia section in the M0 1 /ibrary.
/*,efine an obAect for 3ideo pla0er and 3ideo .*/ !icrosoft.)na.*ramewor+.!edia.Video6la0er !icrosoft.)na.*ramewor+.!edia.Video 3ideo;bAect; /*."nitialize 3ideo pla0er in Game."nitialize#%*/ 3ideo6la0er @ new !icrosoft.)na.*ramewor+.!edia.Video6la0er#%; /*-oad the media file 0ou want to pla0 in 3ideo pla0er in Game.-oadContent#%*/ 3ideo;bAect@ content.-oad#!icrosoft.)na.*ramewor+.!edia.Video.#U=0our 3ideo file path>%; /* You can pla0 and stop 3ideo using following statements.*/ 3ideo6la0er.6la0#3ideo;bAect%; 3ideo6la0er.:top#%; 3ideo6la0er;
www.it-ebooks.info
1?A , 2esso* ?
/*4o draw the 3ideo on the screen*/ public 3oid ,raw#,raw:tate state%
Vector2 pos @ new Vector2#G8.8f$G8.8f%; 4e/ture2, te/ture @ 3ideo6la0er.Get4e/ture#%; //&ow draw it using /na sprite sprite.atch..egin#%; sprite.atch.,raw#te/ture$ sprite.atch.9nd#%; ' pos$ Color.White%;
/o' !an re rie2e '&er in3' & *rom "e re&3e! i2e in3' 1e2i!e &'!" a& a mo'&e or a .eyboar1 o ma3 "e !a3 're1 1a a o "e 1e&ire1 UI a&&e ( For e<am3le6 in an FPS )ame6 yo' !an ma3 "e !a3 're1 .ey& ro.e& wi " "e a! ion o* *irin) "e b'lle & *rom a )'n an1 3lay an a'1io *ile o 3ro2i1e "e &o'n1 e**e! o* "e )'n&"o &( Al erna ely6 o 1e e! w"i!" men' i em "e '&er "a& &ele! e1 '&in) "e .eyboar1 or a mo'&e6 yo' nee1 o re rie2e "e .ey7 & ro.e& or mo'&e !li!.& )enera e1 *rom "e .eyboar1 or a mo'&e( T"e me!"ani&m be"in1 a!B'irin) "e in3' *rom "e 3layer an1 "en '&in) i o ri))er !er ain a! ion& i& !alle1 "an1lin) "e in3' & a e&( #%A ;(9 in!l'1e& all "e *'n! ionali ie& reB'ire1 o !a3 're "e !'rren & a e o* "e in3' 1e2i!e&6 &'!" a& "e .eyboar16 mo'&e6 an1 Loy& i!.( /o' &im3ly nee1 o a!!e&& "e &3e!i*i! !la&&e& an1 & r'! 're& 3ro2i1e1 in "e !icrosoft.)na. *ramewor+."nput name&3a!e( T"e Je0board6 !ouse6 an1 Gamepad !la&&e& "el3 o re rie2e "e .ey& ro.e& *rom "e .eyboar16 b' on !li!.& *rom "e mo'&e6 an1 b' on 3re&&e& on "e #bo<A@9 !on roller6 re&3e! i2ely( T"e & r'! 're& in "e "nput name&3a!e "el3 yo' o 1e ermine "e !'rren & a e o* "e in3' ( For e<am3le6 "e Je0board:tate & r'! 're & ore& "e !'rren & a e o* "e .eyboar1 an1 "el3& yo' o 1e ermine "e .ey& ro.e& )enera e1 *rom "e .eyboar1( Table C7: 3re&en & &ome o* "e in3' & r'! 're& a2ailable in "e !icrosoft.)na. *ramewor+."nput name&3a!e(
0T87CT78$
Game6ad.uttons Game6adCapabilities Game6ad:tate Game6ad4humb:tic+s !ouse:tate Je0boardstate
$0C8-+T-O1
-dentifies whether buttons on the 4bo% controller are pressed or released -dentifies the capabilities and type of 4bo% controller escribes the current state of 4bo% controller 8epresents the position of left and right sticks 8epresents the current state of the mouse 8epresents the state of keystrokes recorded by a keyboard
www.it-ebooks.info
Han1lin) in3' & a e& in2ol2e& "ree ba&i! a&.&4 N Ga "erin) "e raw in3' *rom "e in3' 1e2i!e( N Ma33in) "e in3' an1 !onne! in) "e in3' wi " "e a33ro3ria e in3' "an1ler( N De*inin) "e in3' "an1ler !o1e "a will 1ire! "e )ame a& o w"a a! ion o 1o an1 w"en o 1o i ( T"e !icrosoft.)na.*ramewor+."nput name&3a!e al&o 3ro2i1e& en'mera ion& *or .ey& an1 )ame 3a1 b' on&( Howe2er6 i 1oe& no 3ro2i1e any en'mera ion *or "e mo'&e( /o' nee1 o 1e*ine "e en'mera ion *or mo'&e b' on& in yo'r )ame !o1e(
MO8$ -1"O8MAT-O1 "or more information on "nput namespace# refer to the C!icrosoft.)na.*ramewor+."nputD section in the M0 1 /ibrary.
T"e *ollowin) &e! ion& 1i&!'&& "e 3ro!e1're reB'ire1 o !a3 're "e & a e o* "e 1i**eren in3' 1e2i!e&(
$T$CT-1G T?$ 0TAT$ O" 2$A0 Player& !an '&e "e .eyboar1 o i&&'e !omman1& o "e 'ni & in a )ame m'!" more B'i!.ly "an by !li!.in) on "e i!on& on "e &!reen( For e<am3le6 in an FPS )ame6 3layer& !an 3re&& "e IAJ .ey !on in'o'&ly *or &"oo in) b'lle & *rom a )'n( Per*orm "e *ollowin) & e3& reB'ire1 *or 1e e! in) a .ey 3re&& '&in) "e Je0board !la&&(
$T$CT A 2$A +8$00 >3T 83A<;. Crea e yo'r 3roLe! an1 name i )&1Je0board?andler. 1. De!lare an in& an!e o* y3e Je0board:tate !la&&6 &ay La& $eyboar1S a e6 an1 allow i o "ol1 "e 2al'e o* "e la& & a e o* "e .eyboar1( Similarly 1e!lare ano "er in& an!e o* Je0board:tate6 &'!" a& CurrentJe0board:tate6 o "ol1 "e 2al'e o* "e !'rren & a e o* "e .eyboar1( A. A&&i)n a 2al'e o -astJe0board:tate in "e )ame !on& r'! or( @. Call "e Get:tate me "o1 o "ol1 "e !'rren .eyboar1 & a e( %. Com3are "e 2al'e& o* "e wo .eyboar1 & a e&( ?. U31a e "e -astJe0board:tate o "ol1 "e !'rren .eyboar1 & a e( T"i& & e3 en&'re& "a "e 2al'e o* "e !'rren & a e i& alway& !om3are1 wi " "e 2al'e o* "e 3re2io'& *rame & a e( T"e *ollowin) i& "e &am3le !o1e *or "e 3re2io'& & e3&(
namespace )&1Je0board?andler class Je0board?andler of Je0board:tate structure the current and
public Je0board:tate currentJe0board:tate; public Je0board:tate lastJe0board:tate; public get Je0board:tate Current:tate
www.it-ebooks.info
1?% , 2esso* ?
return currentJe0board:tate; ' ' public get return lastJe0board:tate; ' ' public Je0board?andler#%
Je0board:tate
-ast:tate
/* :a3e the current +e0board state */ currentJe0board:tate @ new Je0board:tate#%; ' public 3oid 2pdate#Game4ime game4ime%
/* get the new +e0board state and sa3e the old +e0board state */ lastJe0board:tate @ currentJe0board:tate; currentJe0board:tate @ Je0board.Get:tate#%; ' public 3oid clear6re3:tate#% lastJe0board:tate @ currentJe0board:tate; ' /* Chec+ public for bool an0 +e0 release */ Je0<eleased#Je0s +e0%
return currentJe0board:tate."sJe02p#+e0% VV lastJe0board:tate."sJe0,own#+e0%; ' /* Chec+ for an0 +e0 press */ public bool Je06ressed#Je0s +e0% VV
return currentJe0board:tate."sJe0,own#+e0% lastJe0board:tate."sJe02p#+e0%; ' /* chec+ for +e0 down */ public bool Je0,own#Je0s +e0% return currentJe0board:tate."sJe0,own#+e0%; ' ' '
www.it-ebooks.info
$T$CT-1G T?$ 0TAT$ O" MO70$ Per*orm "e *ollowin) & e3& o 1e e! "e !'rren & a e o* a mo'&e in3' 1e2i!e(
G$T T?$ MO70$ +O0-T-O1 >3T 83A<;. Crea e yo'r 3roLe! an1 name i )&1!ouse?andler( 1. Call !ouse.Get:tate o )e "e !'rren & a e o* "e mo'&e( A. U&e !ouse:tate.) an1 !ouse:tate.Y o )e "e 3o&i ion o* "e mo'&e in 3i<el&( T"e *ollowin) &am3le ill'& ra e& "e 3re2io'& & e3&( T"e *ollowin) !o1e !rea e& a "el3er !la&& "a )e & "e & a e o* "e mo'&e b' on& an1 "e 3o&i ion o* "e mo'&e on "e )ame &!reen(
namespace )&1!ouse?andler
public
class
!ouseCursor
/* te/ture for mouse cursor */ 4e/ture2, mouseCursor; /* sprite batch to draw the mouse te/ture */ :prite.atch sprite.atch; !ouse:tate pre3ious!ouse:tate$current!ouse:tate ; public !ouseCursor#4e/ture2, te/ture$ :prite.atch sprite.atch<ef% mouseCursor @ te/ture; sprite.atch @ sprite.atch<ef; /* sa3e current mouse state */ current!ouse:tate @ !ouse.Get:tate#%; ' public 3oid update#Game4ime game4ime%
/* Get the new mouse state and compare with the current mouse state. "f there is a difference$ store the new mouse state as current mouse state */ if #!ouse.Get:tate#% @@ current!ouse:tate% pre3ious!ouse:tate @ current!ouse:tate; current!ouse:tate @ !ouse.Get:tate#%; ' ' /* chec+ for left button press */ public bool is-eft.utton6ressed#% current!ouse:tate @ !ouse.Get:tate#%; if #current!ouse:tate.-eft.utton @@ .utton:tate. 6ressed% return true; '
www.it-ebooks.info
1?$ , 2esso* ?
return false; ' /* Chec+ for right button press */ public bool is<ight.utton6ressed#% current!ouse:tate @ !ouse.Get:tate#%; if #current!ouse:tate.<ight.utton @@ .utton:tate. 6ressed% return true; ' return false; ' /* chec+ for middle button press */ public bool is!iddle.utton6ressed#% current!ouse:tate @ !ouse.Get:tate#%; if #current!ouse:tate.!iddle.utton @@ .utton:tate. 6ressed% return true; ' return false; ' /* Chec+ if middle button is released */ public bool is!iddle.utton<eleased#% current!ouse:tate @ !ouse.Get:tate#%; if #current!ouse:tate.!iddle.utton @@ .utton:tate. <eleased% return true; ' return false; ' /* chec+ if left button is released */ public bool is-eft.utton<eleased#% current!ouse:tate @ !ouse.Get:tate#%; if #current!ouse:tate.-eft.utton @@ .utton:tate.<eleased% return true; ' return false; ' /* chec+ if right button is released */ public bool is<ight.utton<eleased#%
www.it-ebooks.info
www.it-ebooks.info
1?! , 2esso* ?
return false; ' public 3oid ,raw#Game4ime game4ime%
/* ,raw the mouse cursor at the mouse position */ !ouse:tate current!ouse:tate @ !ouse.Get:tate#%; Vector2 mouse6os @ new Vector2#current!ouse:tate.)$ current!ouse:tate.Y%; sprite.atch..egin#%; sprite.atch.,raw#mouseCursor$ mouse6os$ Color.White%; sprite.atch.9nd#%; ' ' '
T"e *ollowin) !o1e 1e!lare& an in& an!e o* "e "el3er !la&& in "e )ame !la&& an1 1i&3lay& a me&&a)e abo' "e & a e o* "e mo'&e b' on& w"e "er !li!.e1 or 3re&&e14
namespace )&1!ouse?andler
public class GameG ( !icrosoft.)na.*ramewor+.Game Graphics,e3ice!anager sprite.atch; :prite*ont sprite*ont; /* declare an obAect of !ouseCursor class to trac+ all mouse operation */ !ouseCursor mouseCursor; graphics; :prite.atch
public GameG#% graphics @ new Graphics,e3ice!anager#this%; Content.<oot,irector0 @ =Content>; ' protected o3erride 3oid -oadContent#%
// Create a new :prite.atch$ which can be used to draw te/tures. sprite.atch @ new :prite.atch#Graphics,e3ice%; sprite*ont @ Content.-oad#:prite*ont.#U=1rial>%; //initialize !ouse cursor 4e/ture2, mouseCursor4e/ture @ Content.-oad #4e/ture2,.#U=1rrow>%; mouseCursor @ new !ouseCursor#mouseCursor4e/ture$ sprite.atch%; '
www.it-ebooks.info
// 1llows the game to e/it if #Game6ad.Get:tate#6la0er"nde/.;ne%..uttons ..ac+ @@ .utton:tate.6ressed% this.9/it#%; /* update the mouse mouseCursor.update#game4ime%; base.2pdate#game4ime%; ' protected o3erride 3oid cursor */
,raw#Game4ime
game4ime%
Graphics,e3ice.Clear#Color.Cornflower.lue%; /* draw the mouse cursor */ mouseCursor.,raw#game4ime%; /*,ispla0 te/t according to current state of mouse */ sprite.atch..egin#%; if #mouseCursor.is-eft.uttonClic+ed#%% sprite.atch.,raw:tring#sprite*ont$ =-eft .utton is clic+ed >$ new Vector2#28.8f$ 588.8f%$ Color.Yellow%; ' if #mouseCursor.is-eft.utton6ressed#%% sprite.atch.,raw:tring#sprite*ont$ =-eft .utton is pressed >$ new Vector2#28.8f$ 588.8f%$ Color.Yellow%; ' sprite.atch.9nd#%; base.,raw#game4ime%; ' ' '
$T$CT-1G T?$ 0TAT$ O" 4.O4 (LE CO1T8O//$8 T"e *ollowin) & e3& ill'& ra e "ow o 1e ermine "e & a e o* an #bo< in3' !on roller 1e2i!e '&in) a &am3le !o1e(
$T$8M-1$ T?$ 4.O4 .7TTO1 +8$00$0 >3T 83A<;. Crea e yo'r 3roLe! an1 name i )bo/Controller( 1. U&e Get:tate o 1e ermine "e !'rren & a e o* "e #bo<( A. Veri*y w"e "er "e #bo< i& !onne! e1 '&in) "e "sConnected 3ro3er y( @. Ge "e 2al'e& o* "e b' on& yo' wan o !"e!. i* 3re&&e1 !'rren ly( For any b' on6 i* "e 2al'e i& 6ressed6 i mean& "e b' on i& !'rren ly 3re&&e1 by "e 3layer(
www.it-ebooks.info
1$& , 2esso* ?
namespace class )bo/Controller )&1Game6ad structure. 4hese instances will hold the
Game6ad:tate pre3iousGamepad:tate$ currentGamepad:tate; public )&1Game6ad#% / 4o get the state of Game6ad 0ou need 6la0er"nde/ that specifies which Game6adPs state is Iueried. ).;) supports multiple Game6ads at same time */ currentGamepad:tate @ Game6ad.Get:tate#6la0er"nde/.;ne%; ' public 3oid update#Game4ime game4ime%
if #Game6ad.Get:tate#6la0er"nde/.;ne% @@currentGamepad:tate% pre3iousGamepad:tate @ currentGamepad:tate; currentGamepad:tate @ Game6ad.Get:tate #6la0er"nde/.;ne%; ' ' /* Chec+ for specific button press */ public bool is.utton6ressed#.uttons currentGamepad:tate @ Game6ad.Get:tate #6la0er"nde/.;ne%; if #currentGamepad:tate."sConnected VV currentGamepad:tate."s.utton,own#btn%% return true; ' return false; ' /* Chec+ for specific button release */ public bool is.utton<eleased#.uttons btn% btn %
currentGamepad:tate @ Game6ad.Get:tate #6la0er"nde/.;ne%; if #currentGamepad:tate."sConnected VV currentGamepad:tate."s.utton2p#btn%% return true; ' return false;
www.it-ebooks.info
btn%
T"e *ollowin) !o1e &am3le !a3 're& "e .ey 3re&& IAJ an1 3lay& an a'1io *ile4
/* declare an obAect of :ound9ffect and an obAect of Je0board?andler in 0our Game class in the )&1Je0board?andler proAect */ :ound9ffect sound;nJe06ress1; Je0board?andler +e0?andler; /* modif0 the -oadContent method as shown below */ protected o3erride 3oid -oadContent#% /* create a new :prite.atch$ which can be used to draw te/tures */ sprite.atch @ new :prite.atch#Graphics,e3ice%; sound;nJe06ress1 @ Content.-oad#:ound9ffect.#U=0our ' /* Game.2pdate loop */ protected o3erride 3oid sound file name>%;
2pdate#Game4ime
game4ime%
/* Call the 2pdate method of the Je0board?andler to get the current state of the +e0s */ +e0?andler.2pdate#game4ime%; /* Chec+ for +e0 press W1P */ bool is,own @ +e0?andler.Je0,own#Je0s.1%; if #is,own% sound;nJe06ress1.6la0#%; ' base.2pdate#game4ime%; '
www.it-ebooks.info
1$A , 2esso* ?
MO8$ -1"O8MAT-O1
"or more information on handling the different input de!ices in your game# refer to the C8esponding to 7ser -nputD section in the M0 1 /ibrary.
C$8T-"-CAT-O1 8$A A <hat are the different classes and structures a!ailable in 41A "ramework *.E to handle player inputs from different input de!icesB ;.) C$8T-"-CAT-O1 8$A A ?ow will you create menus for your game in 41A *.EB ;.)
Creating Menus
Men'& are an in e)ral 3ar o* "e UI o* e2ery m'l ime1ia a33li!a ion6 in!l'1in) )ame&( A& yo' alrea1y learne1 in Le&&on A6 yo' !an '&e men'& o 3ro2i1e 3layer& wi " a li& o* o3 ion&( /o' !an '&e men'& a& 3ar o* "e )ame & ory or "e )ame &3a!e( For e<am3le6 yo' !an '&e men'& in "e )ame & ory o 3ro2i1e o3 ion& *or "e 3layer !"ara! er o &ele! a 3ar7 i!'lar wea3on or an in2en ory( /o' !an al&o '&e men'& a& a non1ie)e i! !om3onen on a wel!ome or o3enin) &!reen6 w"ere 3layer& !an &ele! "e a! i2i y "ey wan o 3er*orm(
+8OG8AM M$170 /o' !an !rea e men'& *or yo'r )ame in 1i**eren way&( One way i& o !rea e "e men' a& a 1rawable )ame !om3onen an1 "en a11 "e !om3onen o yo'r )ameH& !on en &ol' ion o a!!e&& i in "e !o1e( A 1rawable )ame !om3onen 3ro2i1e& a mo1'lar a33roa!" o a11in) )ra3"i!& !on en o yo'r )ame( /o' !an re)i& er "e 1rawable )ame !om3onen wi " yo'r )ame !la&& by 3a&&in) "e !om3onen o "e Game.Components.1dd me "o1( On!e yo' re)i& er "e !om3onen 6 "e !om3onen H& ini iali,e6 1raw6 an1 '31a e me "o1& are !alle1 a' oma i!ally *rom "e Game."nitialize6 Game.,raw an1 Game.2pdate me "o1&(
MO8$ -1"O8MAT-O1
"or more information on the drawable game component class# refer to the C !icrosoft.)na.*ramewor+D section in the M0 1 /ibrary.
Crea e yo'r 3roLe! an1 name i C'& omMen'( To !rea e a 1rawable !om3onen 6 3er*orm "e *ollowin) & e3&4 :( In Sol' ion E<3lorer6 &ele! A11 an1 "en &ele! %ew I em( 8( In "e A11 %ew I em 1ialo) bo<6 &ele! "e GameComponent an1 name i !enuComponent D&ee Fi)'re C7;E( A( On!e "e !la&& i& )enera e16 !"an)e "e ba&e !la&& *rom !icrosoft.)na.*ramewor+. GameComponent o !icrosoft.)na.*ramewor+.,rawableGameComponent. T"i& a' oma i!ally )enera e& "e 1e*a'l !on& r'! or *or "e !enuComponent !la&&6 an o2erri1e *or "e ini iali,e me "o16 an1 an o2erri1e *or "e '31a e an1 "e 1raw me "o1&( %ow6 yo' nee1 o a11 "e a33ro3ria e !o1e o !rea e "e reB'ire1 men' i em& an1 ma.e "em a33ear on "e &!reen( T"e *ollowin) & e3& !rea e a &im3le men' in er*a!e "a li& & 1i**eren o3 ion& *or "e 3layer6 &'!" a& o3 ion& o & ar "e )ame6 2iew "i)" &!ore&6 an1 en1 "e )ame( CO $ A M$17 >3T 83A<;. Crea e "e reB'ire1 men' i em& an1 1raw "em on "e &!reen(
1. Crea e a !enu"tem !la&& o "ol1 ea!" men' i em6 a& &"own in "e *ollowin) !o1e4
namespace class Custom!enu !enu"tem public string menu&ame;
www.it-ebooks.info
www.it-ebooks.info
public Vector2 position; /* defines the normal color of the menu item */ public Color /* defines the public Color /* constructor */ public !enu"tem#string menu&ame @ name; position @ pos; ' ' ' name$Vector2 pos% normal @ Color.White; color of the menu item when it is highlighted */ highlight @ Color.Yellow; that initializes the name and the position of the menuitem
/* holds all menu items */ public -ist#!enu"tem. all.uttons; /* holds the inde/ of the clic+ed menu item*/ public int clic+ed.utton"nde/; /* holds the current +e0board state */
1$% , 2esso* ?
public Je0board:tate +e0board:tate; /* holds pre3ious +e0board state */ public Je0board:tate oldJe0board:tate; /* sprite batch to draw menu items */ public :prite.atch sprite.atch; /* font to render te/t */ public :prite*ont sprite*ont; /* return the clic+ed button inde/ */ public int Clic+ed.utton"nde/ get set return clic+ed.utton"nde/; '
clic+ed.utton"nde/ @ 3alue; if #clic+ed.utton"nde/ # 8% clic+ed.utton"nde/ @ 8; if #clic+ed.utton"nde/ .@ all.uttons.Count% clic+ed.utton"nde/ @ all.uttons.Count ' ' public !enuComponent#Game game% ( base#game% all.uttons @ new clic+ed.utton"nde/ @ 8; ' -ist#!enu"tem.#%;
G;
@. In "e !enuComponent !la&&6 a11 "e add!enu"tem an1 Chec+Je0 me "o1&6 a& &"own in "e *ollowin) !o1e( Al&o6 a11 !o1e in "e '31a e an1 1raw me "o1& o '31a e an1 ren1er ea!" men' i em(
//add indi3idual menu item public 3oid add!enu"tem#string name$ :prite.atch batch$ :prite*ont font $ Vector2 pos% sprite.atch @ batch; sprite*ont @ font; !enu"tem item @ new !enu"tem#name$ pos%;
all.uttons.1dd#item%; ' //chec+ whether a +e0 is pressed or not pri3ate bool Chec+Je0#Je0s theJe0% return +e0board:tate."sJe02p#theJe0% VV oldJe0board:tate."sJe0,own#theJe0%; ' /*2pdate the clic+ed button inde/ as user presses 2p or ,own Je0s on the +e0board */ public o3erride 3oid update#Game4ime game4ime% +e0board:tate @ #Chec+Je0#Je0s.,own%% Je0board.Get:tate#%; if
www.it-ebooks.info
8;
all.uttons.Count;
i77%
if #i @@ clic+ed.utton"nde/% menuColor @ all.uttonsEiF.highlight; else menuColor @ all.uttonsEiF.normal; //,raw the menu te/t on #sprite*ont$all.uttonsEiF.menu&ame$ menuColor%; ' ' ' the screen sprite.atch.,raw:tring all.uttonsEiF.position$
?. In "e -oadContent me "o16 loa1 "e reB'ire1 &3ri e *on an1 a11 "e men' i em&(
protected o3erride 3oid -oadContent#% /* Create a new :prite.atch$ which can be used to draw te/tures.*/ sprite.atch @ new :prite.atch#Graphics,e3ice%; :prite*ont font @ Content.-oad#:prite*ont.#=1rial>%; stringEF menu"tems @ =:tart Game>$ =?igh :cores>$ =9nd Game> '; Vector2 pos @ new Vector2#G8.8f$G8.8f%; menu:0stem @ new !enuComponent#this%; //1dd indi3idual menu item for #int i @ 8; i # menu"tems.-ength; i@@% menu:0stem.add!enu"tem#menu"temsEiF$ sprite.atch$ font$ pos%; pos.Y 7@ 58.8f; ' Components.1dd#menu:0stem%; '
www.it-ebooks.info
@@
/* clear the window */ Graphics,e3ice.Clear#Color.Cornflower.lue%; /*call the .egin method of the :prite.atch class to start drawing the image for the menu.*/ sprite.atch..egin#%; base.,raw#game4ime%; sprite.atch.9nd#%; '
T"e )i2en e<am3le !rea e& "ree men' i em&4 N S ar Game N Hi)" S!ore& N En1 Game T"e !o1e !rea e& a !la&& name1 !enu"tem o "ol1 "e in*orma ion o* ea!" o* "e men' i em6 &'!" a& "e i em name an1 i & 3o&i ion on "e &!reen( T"e !o1e "en !rea e& a ,rawableGameComponent !la&& y3e !alle1 !enuComponent( T"i& !enuComponent !la&& 3er*orm& "e *ollowin) a&.&4 N Crea e& "e li& o* men' i em& N Tra!.& "e .ey 3re&& )enera e1 *rom "e .eyboar1 an1 a!!or1in)ly &ele! & a 3ar i!'lar men' N Draw& ea!" men' i em an1 1i&3lay& "e &ele! e1 men' i em in a 1i**eren !olor Fi)'re C7C &"ow& "e &!reen wi " "e li& o* men' i em&( %o i!e "a "e &ele! e1 men' i em i& "i)"li)" e1 in "e &3e!i*ie1 !olor(
Managing 0a!e-/oad
Mana)in) &a2e7loa1 in2ol2e& 3ro2i1in) "e 3layer wi " an o3 ion *or &a2in) an1 loa1in) "e )ame *rom a &3e!i*i! 3oin or le2el(
C$8T-"-CAT-O1 8$A A ?ow will you handle game sa!es at certain important milestones in your "+0 gameB (.9
In &ome in& an!e& o* a )ame6 a 3layer i& no able o !om3le e a le2el be!a'&e o* "e 1e eriora 7 in) "eal " o* "e )ame !"ara! er or "e 3layerH& *ail're o !om3le e a a&.( In &'!" !a&e&6 "e 3layer !an re3lay "e !'rren le2el wi " a new in2en ory( T"e 3layer mi)" al&o !"oo&e o re& ar "e )ame or &im3ly )i2e '3 an1 e<i "e )ame( To enable "e 3layer o re3lay "e )ame *rom a 3re2io'& le2el6 yo' &a2e "e )ame le2el& alon) wi " "e '&er &e in)&( /o' &"o'l1 3ro2i1e a UI "a "e 3layer !an '&e o &a2e an10or loa1 "e )ame *rom a &3e!i*i! 3oin or le2el(
www.it-ebooks.info
www.it-ebooks.info
+8OG8AMM-1G 0A6$-/OA 7Con&i1er an FPS )ame in w"i!" "e 3layer !"ara! er "a& o 1i**'&e a bomb '&in) a bomb 1i&3o&al .i ( To a!"ie2e "i& obLe! i2e6 "e !"ara! er "a& o .ill all "e enemie& an1 *in1 "e 1i&3o&al .i ( Gi2en "a i i& a 1i**i!'l an1 ime !on&'min) mi&&ion6 yo' !an 3ro)ram "e )ame o 3ro2i1e "e *le<ibili y o* &a2in) "e )ame & a e a !er ain im3or an mile& one&( T"i& "el3& re ain "e 3layerH& in ere& in "e )ame an1 en&'re& "a "e 3layerH& e**or & are no *' ile an1 "e mi&&ion be!ome& 1oable( To *a!ili a e "i& *ea 're6 yo' !an 3ro2i1e "e &a2e7loa1 UI *or "e 3layer( T"e *ollowin) !o1e !rea e& &'!" a UI *or "e 3'r3o&e o* &a2e7loa1( T"e !o1e !rea e& a &a2e b' on an1 loa1& a b' on '&er in er*a!e by !rea in) "e *ollowin) "el3er !la&&e&4
N )&1.utton !la&& o "ol1 "e &a2e b' on an1 loa1 b' on in*orma ion N !ouseCursor !la&& o "an1le mo'&e & a e& T"e !o1e a&&'me& "a a 3roLe! name1 :a3e-oad"nterface i& alrea1y !rea e1( T"e *ollowin) i& "e )&1.utton !la&&( T"i& !la&& !rea e& a b' on o 3ro2i1e an in er*a!e *or "e &a2e an1 loa1 o3 ion( T"e !la&& al&o !rea e& a !li!. e2en "an1ler *or "e b' onH& !li!. e2en ( An e2en i& a mean& o* "el3in) a !la&& 3ro2i1e no i*i!a ion& o '&er& o* "a !la&& o in1i!a e "a &ome "in) "a& "a33ene1 o an obLe! ( E2en "an1ler& are *'n! ion& or me "o1& "a are e<e!' e1 w"ene2er an e2en &'!" a& a b' on !li!. i& ri))ere1(
namespace :a3e-oad"nterface class )&1.utton
/* sprite batch to draw the button */ public :prite.atch sprite.atch; /* sprite font to draw the te/t on the button */ public :prite*ont sprite*ont; /*1 button usuall0 has two states( &ormal and Clic+ed. uses two different te/tures to differentiate between these two states. */ public 4e/ture2, normal4e/ture$ highlight4e/ture; /*.ounding rectangle to determine the area of the important to +now whether button is acti3e or not. 4he code achie3es button. 4he code
"t
is
1$! , 2esso* ?
this b0 chec+ing whether the mouse cursor position is present inside the rectangle or not. */ public <ectangle bounding<ect; /* :creen position to draw the button. */ public Vector2 position; /* a string 3ariable to hold the button &ame. */ public string button&ame; /* define a .utton:tate structure to hold the button state information */ public .utton:tate pre3ious.utton:tate; /* define an e3ent handler to e/ecute an action when the button is pressed.*/ public e3ent 93ent?andler on.utton6ressed; /* constructor to initialize button */ public )&1.utton#4e/ture2, normal4e/ture$ 4e/ture2, highlight4e/ture $ :prite.atch sprite.atch<ef $:prite*ont font $ Vector2 pos $ string name% this.normal4e/ture @ normal4e/ture; this.highlight4e/ture @ highlight4e/ture; this.sprite.atch @ sprite.atch<ef; this.sprite*ont @ font; this.position @ pos; this.button&ame @ name; bounding<ect @ new <ectangle##int%pos.)$#int% pos.Y$ normal4e/ture.Width$ normal4e/ture.?eight%; pre3ious.utton:tate @ .utton:tate.<eleased; ' public 3oid ,raw#Game4ime game4ime%
/* get mouse point b0 using the !ouse:tate obAect as it holds the position information of the mouse cursor. */ !ouse:tate mouse:tate @ !ouse.Get:tate#%; Vector2 mouse6t @ new Vector2#mouse:tate.)$ mouse:tate.Y%; sprite.atch..egin#%; /* Chec+ if mouse is inside button bounding rectangle */ if ##mouse6t.) bounding<ect.-eft VV mouse6t.) # bounding<ect.<ight% VV #mouse6t.Y . bounding<ect.4op VV mouse6t.Y # bounding<ect..ottom%% //Chec+ if button is clic+ed if #mouse:tate.-eft.utton te/ture */ sprite.atch.,raw#highlight4e/ture$ position$ Color.White%; /* sa3e the buttonstate as pre3ious.utton:tate which is released */ used to trac+ when button is @@ .utton:tate.6ressed%
pre3ious.utton:tate @ .utton:tate.6ressed;
www.it-ebooks.info
%ow "a yo' "a2e !rea e1 a b' on in er*a!e *or "e &a2e an1 loa1 o3 ion6 loo. a "e !o1e o !rea e a "el3er !la&& o ren1er a mo'&e !'r&or(
namespace :a3e-oad"nterface public class !ouseCursor
/* mouse cursor te/ture */ 4e/ture2, mouseCursor; /* sprite batch to draw the mouse cursor te/ture */ :prite.atch sprite.atch; public !ouseCursor#4e/ture2, te/ture$ :prite.atch sprite.atch<ef% mouseCursor @ te/ture;
www.it-ebooks.info
1#& , 2esso* ?
sprite.atch @ sprite.atch<ef; ' public 3oid ,raw#Game4ime game4ime%
/* draw the mouse cursor te/ture at mouse position */ !ouse:tate ms @ !ouse.Get:tate#%; Vector2 mouse6os @ new Vector2#ms.)$ ms.Y%; sprite.atch..egin#%; sprite.atch.,raw#mouseCursor$ mouse6os$ Color.White%; sprite.atch.9nd#%; ' ' '
Graphics,e3ice!anager graphics; :prite.atch sprite.atch; /* create an obAect of !ouseCursor to handle mouse mo3ement */ !ouseCursor mouseCursor; /* create sa3e and load button */ )&1.utton sa3e.utton$ load.utton; public GameG#% graphics @ new Graphics,e3ice!anager#this%; Content.<oot,irector0 @ =Content>; ' protected o3erride 3oid -oadContent#% // Create a new :prite.atch$ which can be used to draw te/tures. sprite.atch @ new :prite.atch#Graphics,e3ice%; /* load normal te/ture for buttons */ 4e/ture2, normal4e/ture @ Content.-oad#4e/ture2,. #U=&ormal>%; #U=?ighlite>%; #U=1rial>%; /* load sprite font to draw button name*/ :prite*ont font @ Content.-oad#:prite*ont. /* load highlight te/ture for buttons */ 4e/ture2, highlight4e/ture @ Content.-oad#4e/ture2,.
//"nitialize -oad .utton load.utton @ new )&1.utton#normal4e/ture$ highlight4e/ture$ sprite.atch$ font$ new Vector2#G8.8f$ G8.8f%$ =-;1,>%; //"nitialize :a3e .utton sa3e.utton @ new )&1.utton#normal4e/ture$ highlight4e/ture$ sprite.atch$ font$ new Vector2#G8.8f$ 28.8f ; normal4e/ture.?eight%$ =:1V9>%;
www.it-ebooks.info
//:a3e 0our Game here ' /* define the e3ent handler method for the load button */ pri3ate 3oid load:elected#obAect sender$ 93ent1rgs e% //-oad 0our Game here ' protected o3erride 3oid 2pdate#Game4ime e/it @@ game4ime%
// 1llows the game to if #Game6ad.Get:tate#6la0er"nde/.;ne%..uttons..ac+ .utton:tate.6ressed% this.9/it#%; // base.2pdate#game4ime%; ' protected o3erride 3oid
,raw#Game4ime
game4ime%
Graphics,e3ice.Clear#Color.Cornflower.lue%; //,raw the buttons sa3e.utton.,raw#game4ime%; load.utton.,raw#game4ime%; mouseCursor.,raw#game4ime%; base.,raw#game4ime%; ' ' '
-"en yo' r'n yo'r !o1e6 yo' mi)" &ee wo b' on& a33earin) on "e &!reen alon) wi " "e mo'&e !'r&or D&ee Fi)'re C7@E( One b' on i& *or &a2e an1 "e o "er b' on i& *or loa1( On !li!.in) ei "er o* "e&e wo b' on&6 yo' no i!e "a o "er "an "e !"an)e in "e !olor o* "e b' on& or a 1i&3lay me&&a)e6 no &a2in) or loa1in) "a33en&( T"i& i& be!a'&e yo' "a2e no wri en "e a! 'al !o1e *or &a2in) an1 loa1in) "e )ame( Fi)'re C7= &"ow& "e )ame &!reen 1i&3layin) a me&&a)e an1 &"ow& "e Loa1 b' on in "e "i)"li)" e1 !olor( T"i& in1i!a e& "a "e 3layer "a& 3re&&e1 "e b' on(
www.it-ebooks.info
www.it-ebooks.info
1#A , 2esso* ?
"igure @-L The game screen displaying the sa!e-load interface
"igure @-) The game screen displaying the status of the button press
C$8T-"-CAT-O1 8$A A ?ow will you program the 7- for managing game sa!es and game loads in 41A *.EB ;.)
, +rogramming
C$8T-"-CAT-O1 8$A A ?ow will you control the beha!ior of the 7- using game statesB ;.*
ma3 ea!" UI elemen o a 3ar i!'lar )ame & a e( T"i& "el3& yo' o 1e!i1e "e be"a2ior o* "e &3e!i*ie1 UI elemen a a )i2en & a e(
graphics '
Content.<oot,irector0 @ =Content>;
www.it-ebooks.info
1#% , 2esso* ?
enum !enu$ 4itle$ Game<ule ' //4he current screen state :creen:tate mCurrent:creen; :creen:tate
/*"nitialize the current screen state to the screen that 0ou want first*/ mCurrent:creen @ :creen:tate.!enu; '
if #Game6ad.Get:tate#6la0er"nde/.;ne%..uttons..ac+ .utton:tate.6ressed% this.9/it#%; /*Call the method associated with the current
screen*/ switch
www.it-ebooks.info
mCurrent:creen @ :creen:tate.!enu; ' /* chec+ whether the user has pressed the +e0 <. "f 0es$ ma+e a transition to game rule screen */
www.it-ebooks.info
1#$ , 2esso* ?
else if#Je0board.Get:tate#%."sJe0,own#Je0s.<% @@ true%
Graphics,e3ice.Clear#Color.Cornflower.lue%; // add 0our drawing code here sprite.atch..egin#%; // call the ,raw method associated with the current screen switch #mCurrent:creen%
www.it-ebooks.info
,raw4itle:creen#%; brea+; ' case :creen:tate.Game<ule( ,rawGame<ule:creen#%; brea+; ' ' sprite.atch.9nd#%; base.,raw#game4ime%; '
1&. A11 "e ,raw!enu:creen me "o16 a& &"own in "e *ollowin) !o1e4
pri3ate 3oid ,raw!enu:creen#% /*draw all of the elements that are part of the !enu screen*/ sprite.atch.,raw#m!enu:creen.ac+ground$ Vector2.Dero$ Color.White%; '
11. A11 "e ,raw4itle:creen me "o16 a& &"own in "e *ollowin) !o1e4
pri3ate 3oid ,raw4itle:creen#% /*draw all of the elements that are part of the title screen*/ sprite.atch.,raw#m4itle:creen.ac+ground$ Vector2. Dero$ Color.White%; '
1A. A11 "e ,rawGame<ule:creen me "o16 a& &"own in "e *ollowin) !o1e4
pri3ate 3oid ,rawGame<ule:creen#% /*draw all of the elements that are part of the game rule screen*/ sprite.atch.,raw#mGame<ule:creen.ac+ground$ Vector2.Dero$ Color.White%;
\
C$8T-"-CAT-O1 8$A A <hat is the mechanism to track 7- asset using game states in 41A *.EB ;.)
T"e )i2en !o1e main ain& a & a e 2ariable "a "ol1& "e !'rren &!reen o be 1i&3laye1( By '&in) "i& e!"niB'e6 yo' !an ell yo'r )ame o 1i&3lay "e !'rren &!reen an1 main ain a &moo " &!reen ran&i ion( -"en yo' r'n "e )ame6 "e )ame &"o'l1 )ree yo' wi " "e men' &!reen( -"en "e '&er 3re&&e& "e ITJ or IRJ .ey6 "e !an &ee "e i le &!reen or "e )ame r'le &!reen ba&e1 on "i& .ey 3re&&(
www.it-ebooks.info
1#! , 2esso* ?
, +rogramming
Le '& loo. a "e a&.& in2ol2e1 in !rea in) a UI a!!e&& me!"ani&m !on rol *or yo'r )ame( For e<am3le6 &'33o&e yo' wan "e 3layer o &ele! *rom a li& o* ima)e& 1i&3laye1 '&in) a !"e!. bo< !on rol( For "i&6 yo' nee1 o4 N Crea e a !"e!. bo< !on rol( N Crea e "e me "o1 "a !on ain& "e !o1e o be e<e!' e1 w"en "e !"e!. bo< i& &ele! e1( N Crea e an ;nClic+ e2en "an1ler "a ma3& "e !"e!. bo< !on rol wi " i & !orre&3on17 in) me "o1( /o' !an !rea e a UI !on rol in yo'r )ame ei "er by '&in) :0stem.Windows.*orms or by '&in) a "ir173ar y library in !ombina ion wi " "e #%A ;(9 b'il 7in !la&&e&( /o' !an al&o !rea e "e UI !on rol& '&in) #%A S3ri e(
TA2$ 1OT$
Al "o')" yo' !an '&e :0stem.Windows.*orm o !rea e !on rol&6 i limi & "e *ree1om o* '&in) UI& "a ma !" "e reB'ire1 UI "eme o* "e )ame( Ea!" )ame "a& i & own UI "eme an1 "e UI &"o'l1 *ollow "a "eme(
www.it-ebooks.info
T"e *ollowin) &am3le !o1e !rea e& a !'& om !"e!. bo< '&in) #%A S3ri e( T"e !o1e a&&'me& "a a 3roLe! name1 )&1Chec+bo/ "a& alrea1y been !rea e1(
namespace )&1Chec+bo/ public class Chec+.o/
//chec+ bo/ position public int m)6osition; public int mY6osition; /* te/ture for chec+ bo/. 4he code uses two different te/tures for showing chec+ed and unchec+ed chec+bo/ .*/ protected 4e/ture2, m2nchec+ed"mage; protected 4e/ture2, mChec+ed"mage; //mouse states to handle clic+ protected !ouse:tate mCurrent:tate; protected !ouse:tate m6re3ious:tate; protected <ectangle m?ot:pot; protected :prite*ont m:prite*ont; protected Vector2 m:prite*ont-ocation; //delegate to handle !ouse clic+ public delegate 3oid ;nChec+.o/!ouseClic+#%; public ;nChec+.o/!ouseClic+ ;n!ouseClic+; //3ariable to store state of mbChec+ed; public Color m:prite*ontColor; //chec+ bo/ te/t public string m4e/t; public Chec+.o/#4e/ture2, unchec+4e/ture$ 4e/ture2, chec+4e/ture$ :prite*ont sprite*ont$ Color color$ string t/t$ int /pos$ int 0pos% m2nchec+ed"mage @ unchec+4e/ture; mChec+ed"mage @ chec+4e/ture; m4e/t @ t/t; m)6osition @ /pos; mY6osition @ 0pos; m:prite*ont @ sprite*ont; m?ot:pot @ new <ectangle#/pos$ 0pos$ unchec+4e/ture. Width$ unchec+4e/ture.?eight%; m:prite*ont-ocation @ new Vector2#m?ot:pot.<ight ; G$ m?ot:pot.Y%; mbChec+ed @ false; m:prite*ontColor @ color; ' public 3oid ,raw#:prite.atch sprite.atch% the chec+bo/ public bool
www.it-ebooks.info
1!& , 2esso* ?
if #m?ot:pot.Contains#new 6oint#mCurrent:tate.)$ mCurrent:tate.Y%%% sprite.atch.,raw#mChec+ed"mage$ m?ot:pot$ Color.Gold%; sprite.atch.,raw:tring#m:prite*ont$ m4e/t$ m:prite*ont-ocation$ m:prite*ontColor%; ' else sprite.atch.,raw#mChec+ed"mage$ m?ot:pot$ Color.Gra0%; sprite.atch.,raw:tring#m:prite*ont$ m4e/t$ m:prite*ont-ocation$ m:prite*ontColor%; ' ' else if #m?ot:pot.Contains#new 6oint#mCurrent:tate.)$ mCurrent:tate.Y%%% sprite.atch.,raw#m2nchec+ed"mage$ m?ot:pot$ Color.Gold%; sprite.atch.,raw:tring#m:prite*ont$ m4e/t$ m:prite*ont-ocation$ m:prite*ontColor%; ' else sprite.atch.,raw#m2nchec+ed"mage$ m?ot:pot$ Color.Gra0%; sprite.atch.,raw:tring#m:prite*ont$ m4e/t$ m:prite*ont-ocation$ m:prite*ontColor%; ' ' ' // end draw public 3oid update#%
mCurrent:tate @ !ouse.Get:tate#%; //Chec+ if mouse is clic+ed or not if #mCurrent:tate.-eft.utton @@ .utton:tate. 6ressed VV m6re3ious:tate.-eft.utton @@ .utton:tate. <eleased% /* Chec+ if user clic+ed the mouse inside the chec+ bo/ */ if #this.m?ot:pot.Contains#m6re3ious:tate.)$ m6re3ious:tate.Y%%
www.it-ebooks.info
/* "f user clic+ed inside the chec+ bo/ then call the delegate ;n!ouseClic+#%.*/ tr0 this.;n!ouseClic+#%; ' catch ' this.mbChec+ed @ @this.mbChec+ed; ' ' m6re3ious:tate @ mCurrent:tate; ' ' '
In yo'r Game !la&&6 1e!lare an obLe! o* "e C"e!.Bo< y3e6 a& &"own below(
Chec+.o/ customChec+.o/;
In yo'r Game.2pdate loo36 '31a e "e !"e!. bo< & a e6 a& &"own in "e *ollowin) !o1e4
customChec+.o/.update#%;
www.it-ebooks.info
www.it-ebooks.info
1!A , 2esso* ?
-ri e "e *ollowin) !o1e in yo'r Game.,raw o ren1er "e !"e!. bo<4
sprite.atch..egin#%; customChec+.o/.,raw#sprite.atch%; sprite.atch.9nd#%;
-"en yo' r'n "e !o1e6 yo' &ee "e )ame &!reen 1i&3layin) "e !'& om !"e!. bo< D&ee Fi)'re C7>E( -"en yo' 3la!e "e mo'&e !'r&or on "e !"e!. bo<6 yo' &ee "a "e !"e!. bo< i& 1i&3laye1 in a )ol1en !olor D&ee Fi)'re C7?E( On!e yo' !li!. on "e !"e!. bo<6 yo' !an &ee "e !"e!. bo< a& &ele! e1 D&ee Fi)'re C7:9E(
"igure @-' The game screen displaying the custom check bo%
"igure @-& The game screen showing the check bo% in a golden color
www.it-ebooks.info
(:/22 ('MMA8;
-1 T?-0 /$00O1# AO7 /$A81$ H I Managing 7- assets in!ol!es creating and making a!ailable the different 7- assets for the game. I /oading 7- assets in!ol!es adding the set of instructions to the game code to create or load the 7- assets and make them a!ailable for use in the game as en!isaged during the game. I Configuring the audio# !ideo# and player input with the 7- assets in!ol!es loading the audio and !ideo file for the respecti!e 7- assets and mapping the keyboard# mouse# and control pad inputs with the respecti!e 7- assets. I Aou might need to retrie!e the user input data to perform certain actions on the game screen. "or such instances# you can capture the state of an input de!ice using the classes and structures a!ailable in the !icrosoft.)na.*ramewor+. "nput namespace. I Menus are an integral part of the 7- of e!ery multimedia application including games. As you already learned in /esson (# you create menus in your game to pro!ide the player with a list of options. I 0a!e-load refers to the process of sa!ing the game and loading the sa!ed game. Aou can create the 7- for a sa!e-load game by creating buttons using sprites. I +rogramming 7- game states in!ol!es mapping the 7- with a specified state and deciding on the beha!ior of the 7- based on the current state programmatically. I +rogramming 7- access mechanisms in!ol!es creating the different 7- access controls# such as button# label# and check bo%# and linking these 7- assets with the respecti!e functionality.
1!% , 2esso* ?
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.& 3ro2i1e1( :( QQQQQQQQ 3ro2i1e& yo' wi " "e *ree1om o* !rea in) UI& "a ma !" "e reB'ire1 UI "eme o* "e )ame( 8( QQQQQQQQ !la&& "el3& o in!or3ora e ba!.)ro'n1 &o'n1 e**e! & *or a )ameH& UI a&&e ( A( Ma33in) yo'r UI wi " "e re&3e! i2e QQQQQQQQQ "el3& yo' o 1e!i1e "e be"a2ior o* "e UI a 1e&i)na e1 area& in a )ame( ;( QQQQQQQQ UI le & "e 3layer &a2e an1 loa1 "e )ame( C( QQQQQQQQQQQQQQ !la&& re3re&en & "e 2i1eo bein) 1i&3laye1 on "e &!reen( @( QQQQQQQQQQQ me "o1 "el3& yo' loa1 "e reB'ire1 UI a&&e & in yo'r )ame( =( ADnE QQQQQQQQQQQQ !la&& in #%A ;(9 3ro2i1e& a mo1'lar a33roa!" o a11in) )ra3"i!& !on en o yo'r )ame( >( T"e !la&&e& an1 & r'! 're& in "e QQQQQQQQQQQQQQQQQQ name&3a!e "el3 yo' o re rie2e '&er in3' *rom 1i**eren in3' 1e2i!e&( ?( T"e #%A Framewor. ;(9 3ro2i1e& yo' wi " "e QQQQQQQQ "a "el3& yo' o a!!e&& yo'r )ame a&&e & 1ire! ly in yo'r #%A Game S '1io 3roLe! &( :9( /o' nee1 o loa1 "e UI a&&e & o* yo'r )ame o "e )ame QQQQQQQ 3roLe! o ma.e "em a2ailable o "e !on en 3i3eline(
Multiple Choice
:( /o' 1e!i1e o 3lay a 2i1eo on a b' on !li!. on "e & ar 7'3 &!reen o* yo'r )ame( T"e 2i1eo 1i&3lay& 1i**eren !"ara! er& narra in) "eir role in "e )ame3lay( -"i!" o* "e *ollowin) !la&&e& an1 me "o1& wo'l1 "el3 yo' loa1 an1 3lay "e 2i1eoR DC"oo&e all "a a33ly(E a( Video b( Video6la0er !( Content.-oad#% 1( :ound9ffect 8( /o' 1e!i1e o a11 )ra3"i!& re&o'r!e& o yo'r )ame( -"i!" o* "e *ollowin) me "o1& wo'l1 "el3 yo' loa1 "e re&o'r!e& o "e )ame &!reenR a( Game.-oadContent b( Game.,raw !( :prite.atch.,raw 1( :prite.atch..egin A( /o' 1e!i1e o !rea e men'& '&in) "e 1rawable )ame !om3onen ( -"i!" o* "e *ollow7 in) me "o1& o* yo'r 1rawable )ame !om3onen !la&& will be a' oma i!ally !alle1 *rom yo'r Game !la&& on!e yo' re)i& er "e !om3onen wi " yo'r )ameR DC"oo&e all "a a33ly(E a( Ini iali,e me "o1 b( U31a e me "o1 !( Draw me "o1 1( Con& r'! or o* yo'r 1rawable )ame !om3onen !la&&
www.it-ebooks.info
;( -"i!" o* "e *ollowin) !la&&e& an1 & r'! 're& "el3 yo' 1e e! "e !'rren & a e o* a mo'&e in3' 1e2i!eR DC"oo&e all "a a33ly(E a( $eyboar1 b( Mo'&e !( Game3a1 1( !ouse:tate C( -"i!" o* "e *ollowin) name&3a!e 1oe& "e Video6la0er !la&& belon) oR a( !icrosoft.)na.*ramewor+.!edia b( !icrosoft.)na.*ramewor+."nput !( !icrosoft.)na.*ramewor+.Content 1( !icrosoft.)na.*ramewor+.1udio @( -"i!" o* "e *ollowin) name&3a!e& wo'l1 yo' in!l'1e in yo'r 3roLe! o !a3 're "e in3' & a e& o* "e 2ario'& in3' 1e2i!e&R a( !icrosoft.)na.*ramewor+.!edia b( !icrosoft.)na.*ramewor+."nput !( !icrosoft.)na.*ramewor+.Content 1( !icrosoft.)na.*ramewor+.1udio =( /o' 1e!i1e o in!l'1e a '&er in er*a!e *or &a2e7loa1( -"i!" o* "e *ollowin) UI !on rol& wo'l1 be& &'i yo'r 3'r3o&eR a( B' on b( C"e!. bo< !( Men' 1( Ra1io b' on >( /o' "a2e m'l i3le &!reen& in yo'r )ame( -"i!" o* "e *ollowin) o3 ion& wo'l1 "el3 yo' ra!. &!reen ran&i ion&R a( Sa2e loa1 UI b( Game & a e 2ariable !( Men' 1( Con en 3i3eline ?( -"i!" o* "e *ollowin) me "o1& will re)i& er "e 1rawable )ame !om3onen wi " yo'r )ame !la&&R a( -oad.content me "o1 b( Game.Components.1dd me "o1 !( Game.2pdate me "o1 1( Game.,raw me "o1 :9( /o' 1e!i1e o '&e a men' in yo'r )ame( For w"i!" o* "e *ollowin) o3 ion& !an yo' '&e men' '&er in er*a!eR DC"oo&e all "a a33ly(E a( Game & ory b( Game &3a!e !( %on71ie)e i! !om3onen 1( Me a !om3onen
, Competency
Assessment
0cenario @-;H Adding 0ound
/o' are 1e2elo3in) an a12en 're )ame( T"e )ame3lay in2ol2e& "e 3layer !"ara! er 'nlo!.in) 1i**eren 1oor& o rea!" a rea&'re( /o' wan o in!l'1e a ba!.)ro'n1 &o'n1 w"ene2er a 1oor i& 'nlo!.e1( -ri e "e !o1e o in!l'1e "e reB'ire1 &o'n1 in yo'r )ame(
www.it-ebooks.info
1!$ , 2esso* ?
, +roficiency
Assessment
0cenario @-(H Creating a Menu
/o' are 1e2elo3in) a boar1 )ame( T"e o3enin) &!reen o* yo'r )ame &"o'l1 3ro2i1e 2ario'& o3 ion& o "e 3layer( T"e &!reen &"o'l1 3ro2i1e a '&er in er*a!e o le "e 3layer & ar "e )ame6 2iew a!"ie2emen &6 2iew o3 ion& a2ailable in "e )ame6 an1 !lo&e "e )ame( :( How wo'l1 yo' re!ommen1 &ol2in) "i& 3roblemR 8( How wo'l1 yo' 3ro)ramma i!ally !rea e "e reB'ire1 '&er in er*a!eR
www.it-ebooks.info
/$00O1
:3; T38M(
breadcrumb path following deserialiGation game data influence map sa!e game file terrain analysis tool creation !isibility graph waypoint na!igation
S e2e -a &on wor.& a F'nGamin) In!(6 an1 lea1& "e 1e2elo3men eam( Hi& !om3any i& 1e2elo3in) a *ir& 73er&on &"oo er DFPSE )ame *or !on&ole an1 !om3' er &y& em&( T"e eam member& are in "e 1e2elo3men 3"a&e( T"ey "a2e 1e2elo3e1 "e !o1e o loa1 "eir )ameH& '&er in er*a!e DUIE a&&e &6 &'!" a& men'&6 UI !on rol&6 2i1eo&6 )ame mo1el&6 an1 &o on in a &3e!i*i! &eB'en!e a& 3er "e )ame*low( T"ey are now in "e 3ro!e&& o* ma.in) "eir )ame *'lly *'n! ional( A )ame !ome& ali2e w"en ea!" )ame !om3onen i& ma1e *'n! ional in an in e)ra e1 *a&"ion a& 3er "e 1e&i)n( In "i& 1e2elo3men 3"a&e6 "e eam member& 1e!i1e o 3ro7 )ram "e be"a2ior o* in1i2i1'al )ame !om3onen & &o "a "ey loo. an1 be"a2e li.e a 3ar o* "e )ame & ory( T"ey al&o 1e!i1e o b'il1 ar i*i!ial in elli)en!e DAIE in "eir )ame !"ara! er&( To en&'re "a 3layer 3re*eren!e& an1 3ro)re&& in "e )ame are ra!.e16 S e2eH& eam 1e!i1e& o !a3 're '&er 1a a( T"ey al&o 3ro)ramma i!ally mana)e "e *low o* "eir )ame '&in) )ame & a e&(
1!#
www.it-ebooks.info
1!! , 2esso* $
, +rogramming
the Components
In "e &im3le& erm&6 *'n! ionali y in a )ame re*er& o "e be"a2ior o* "e 1i**eren !om3onen & o* "e )ame( Player& enLoy a )ame w"en "ey *in1 "e )ame !"allen)in) an16 a "e &ame ime6 ea&y o 3lay( /o' nee1 o !are*'lly balan!e "e *'n! ionali y o* ea!" elemen in yo'r )ame &'!" "a "e 3layer& *in1 "e )ame o be an enLoyable e<3erien!e(
Player& )enerally "a2e a !"oi!e o* o3 ion& o 3er*orm in a )ame( T"ey !an !"oo&e "eir wea3on& or ool& o o2er!ome ob& a!le& in "e )ame( T"ey !an a!"ie2e !er ain rewar1& *or !om3le in) a a&. or le2el in "e )ame( Howe2er6 o !om3le e "e )ame6 "e 3layer& &"o'l1 "a2e a!!e&& o "e & a '& o* "e )ame !om3onen &( For e<am3le6 w"en a 3layer '&e& a )'n o &"oo "e o33onen !"ara! er6 yo' &"o'l1 3ro)ram "e )ame o 1e!rea&e "e n'mber o* b'lle & in "e )'n( I i& eB'ally im3or an o in*orm "e 3layer o* "e n'mber o* b'lle & le* in "e )'n6 maybe "ro')" a "ea1& '3 1i&3lay DHUDE( Similarly6 w"en a 3layer !"ara! er i& "i 6 yo' &"o'l1 3ro)ram yo'r )ame o &"ow a 1e!rea&e in "e "eal " o* "e 3layer !"ara! er( /o' !an 1o "i& by ma.in) yo'r )ame 1i&3lay a HUD "a will &"ow "e 1e!rea&e in 3layer !"ar7 a! erH& "eal "( A11i ionally6 yo' !an e2en 3ro)ram AI in o "e )ame !"ara! er o &er2e a& an in elli)en o33onen o "e 3layer( A &i)ni*i!an 3ar o* )ame 1e2elo3men )oe& in o !rea in) an1 3ro)rammin) "e )ame *'n! ionali y( T"e )ame 1e2elo3men 3ro!e&& !om3ri&e& "e *ollowin) elemen &4 N Crea in) ool& N Pro)rammin) "e )ame N In!or3ora in) AI
Almo& e2ery )ame in2ol2e& "e '&e o* )ame ool& *or a&.& &'!" a& im3or in) or !on2er in) ar 6 b'il1in) le2el&6 an1 &o on( T"e&e ool& *a!ili a e "e 1e2elo3men o* 2i1eo )ame& an1 are !rea e1 by )ame ool 3ro)rammer&( Tool !rea ion i& "e 3ro!e&& "ro')" w"i!" a )ame 3ro)rammer !rea e& )ame ool&( For e<am3le6 a ool 3ro)rammer mi)" be reB'ire1 o !re7 a e a&&e !on2er&ion ool& *or )ame 3roLe! &( A&&e !on2er&ion ool& are 3ro)ram& "a !on7 2er ar wor.6 &'!" a& AD mo1el&6 in o *orma & reB'ire1 by "e )ame( Al "o')" "e & an1ar1 AD mo1elin) &o* ware6 &'!" a& AD S '1io Ma< or A' o1e&. Maya6 in!l'1e im3or er& an1 e<3or er& o "an1le "e&e a&.&6 )ame& mi)" '&e o "er !'& om )ra3"i!& or ima)e *ile *or7 ma &( T"e ool 3ro)rammer mi)" "en be reB'ire1 o !rea e a !'& om a&&e !on2er&ion ool &3e!i*i! o a )ame( Cer ain o "er a&.& o* a ool 3ro)rammer in!l'1e !rea in) 3ro o y3e&6 le2el e1i or&6 or ma3 e1i or&( Le2el e1i or& or ma3 e1i or& are &o* ware ool& "a mi)" be relea&e1 alon) wi " "e )ame( T"e le2el e1i or ool "el3& "e )ame 3layer !'& omi,e or mo1i*y le2el& wi "in a )ame( A ma3 e1i or ool allow& "e )ame 3layer !rea e ma3& wi "o' 3ro)rammin) &.ill&( For e<am7 3le6 '&in) a ma3 e1i or6 "e )ame 3layer !an '&e "e &'i e o* obLe! &6 wea3on&6 an1 o "er !om7 3onen & in!l'1e1 in "e )ame in "e me "o1 o* "i& !"oi!e( Mo1ern )ame& '&e &e2eral ool& *or a&&i& an!e in "e )ame 1e2elo3men 3ro!e&&(
www.it-ebooks.info
C$8T-"-CAT-O1 8$A A ?ow will you program a speedometer to show the speed in a racing gameB ;.@
A* er yo' loa1 or a11 )ame !om3onen & &'!" a& &3ri e&6 e< 're&6 )ame mo1el&6 an1 ima)e& o yo'r )ame6 yo' nee1 o ma.e "e !om3onen & *'n! ional( Howe2er6 o ma.e "e !om3onen & *'n! ional6 a& 3er "e 3layerH& in3' or a& 3er "e )ameH& 3ro)re&&6 yo' nee1 o *'r "er 3ro)ram "e !om3onen &( For e<am3le6 in a &"oo in) )ame6 yo'r )ame !om3onen & mi)" in!l'1e a )'n6 b'lle &6 an1 HUD obLe! &( A& alrea1y 1i&!'&&e16 w"en "e 3layer in yo'r )ame *ire& a b'lle 6 "e HUD &"owin) "e n'mber o* b'lle & m'& &"ow "e 1e!rea&e1 n'mber o* a2ailable b'lle & in "e 3layer !"ara! erH& )'n( Similarly6 w"en a b'lle *rom an o33onen "i & "e 3layer6 "e "eal " & a '& o* "e 3layer !"ara! er m'& be &"own o 1e!rea&e '&in) a "eal " bar( S'!" !on!'rren '31a e& a& 3er "e )ameH& 3ro)re&& are w"a yo' nee1 o 3ro)ram w"ile 3ro)rammin) "e !om3onen &(
A -1G "71CT-O1A/-TA Le '& re!on&i1er "e e<am3le o* "e "eal " bar !om3onen ( For "e "eal " bar o be *'n!7 ional6 yo' "a2e o a11 "e ne!e&&ary !o1e ba&e1 on "e 3layer !"ara! erH& "eal "( For e<am3le6 i* "e 3layer !"ara! erH& "eal " 1e eriora e&6 yo' "a2e o 3ro)ram "e "eal " bar !om3onen o &"ow "e 1e!rea&e in "eal "6 an1 i* "e 3layer !"ara! erH& "eal " im3ro2e&6 yo' "a2e o 3ro)ram "e "eal " bar o &"ow "e im3ro2emen (
T"e *ollowin) !o1e &am3le a11& a "eal " bar '&in) an #%A &3ri e an1 mo1i*ie& "e "eal " bar ba&e1 on "e '3 an1 1own .ey 3re&&e&( A& 1i&!'&&e1 in Le&&on A6 ICrea in) "e Game O' 3' De&i)n6J &3ri e& are 8D ima)e&( /o' !an !rea e &3ri e& '&in) any 1rawin) 3ro)ram6 &'!" a& A1obe P"o o&"o36 or e2en '&in) Mi!ro&o* Pain (
TA2$ 1OT$
On!e yo' !rea e &3ri e&6 yo' !an ren1er &3ri e& by loa1in) "em in "e Te< 're8D obLe! &( /o' !an "en 1raw "e &3ri e& '&in) "e S3ri eBa !" !la&&( T"e !o1e a&&'me& "a a 3roLe! name1 I#%APlayerHeal "J i& alrea1y !rea e1( T"e !o1e '&e& "e !on en member o loa1 "e "eal " bar e< 're *rom "e #%A Framewor. Con en Pi3eline( T"i& e<am3le a&&'me& "a "e e< 're name1 I3layer"eal "J i& a2ailable in "e 3roLe! (
namespace public )&16la0er?ealth class GameG ( !icrosoft.)na.*ramewor+.Game
Graphics,e3ice!anager sprite.atch;
graphics; :prite.atch
//4e/ture for 0our health bar 4e/ture2, pla0er?ealth.ar; // Current pla0er health set to G88 int pla0erCurrent?ealth @ G88; public GameG#%
www.it-ebooks.info
1I& , 2esso* $
protected o3erride 3oid -oadContent#%
// Create a new :prite.atch$ which can be used to draw te/tures. sprite.atch @ new :prite.atch#Graphics,e3ice%; //-oad 0our pla0er health te/ture pla0er?ealth.ar @ #U=pla0er?ealth>%; ' protected o3erride 3oid Content.-oad#4e/ture2,.
2pdate#Game4ime
game4ime%
// 1llows the game to e/it if #Game6ad.Get:tate#6la0er"nde/.;ne%..uttons..ac+ @@ .utton:tate.6ressed% this.9/it#%; Je0board:tate +e0:tate @ Je0board.Get:tate#%; //"f the 2p 1rrow is pressed$ increase the ?ealth bar if #+e0:tate."sJe0,own#Je0s.2p% @@ true% pla0erCurrent?ealth ;@ G; ' //"f the ,own 1rrow is pressed$ decrease the ?ealth bar if #+e0:tate."sJe0,own#Je0s.,own% @@ true% pla0erCurrent?ealth B@ G; ' /* Clamp the health between 8 and G88 using !ath?elper.Clamp method. 4he !ath?elper.Clamp method restricts a 3alue to be within a specific range. "n this case$ the method will restrict the 3alue of the pla0erCurrent?ealth 3ariable between 8 and G88. */ pla0erCurrent?ealth @ #int%!ath?elper. Clamp#pla0erCurrent?ealth$ 8$ G88%; base.2pdate#game4ime%; ' protected o3erride 3oid ,raw#Game4ime game4ime%
Graphics,e3ice.Clear#Color.Cornflower.lue%; sprite.atch..egin#%; // Y position for the sprite int postionY @ this.Window.Client.ounds.?eight B pla0er?ealth.ar.?eight B 28; //) position for :prite to render int position) @ this.Window.Client.ounds.Width pla0er?ealth.ar.Width / 2; /* ,raw the empt0 health i.e. amount of health decreased */ sprite.atch.,raw#pla0er?ealth.ar$ new <ectangle#position)$ / 2 B
www.it-ebooks.info
www.it-ebooks.info
-"en yo' r'n "e !o1e6 yo' no i!e "a on 3re&&in) "e '3 .ey6 "e "eal " bar will &"ow an in!rea&e in "eal " D&ee Fi)'re @7:EM an1 on 3re&&in) "e 1own .ey6 "e "eal " bar will &"ow a 1e!rea&e in "eal " D&ee Fi)'re @78E(
"igure L-; The health bar displaying full health
www.it-ebooks.info
1IA , 2esso* $
"igure L-9 The health bar displaying decreased health
%ow le '& &ee "ow we !an 3ro)ramma i!ally &"ow "e n'mber o* a2ailable b'lle & in a 3layer !"ara! erH& )'n '&in) a HUD( T"e *ollowin) !o1e &am3le a11& a b'lle an1 a b'lle !on ainer e< 're o "e )ame an1 3ro)ram& "eir *'n! ionali y( T"e !o1e a&&'me& "a a 3roLe! name1 I)&1.ulletContainerJ i& alrea1y !rea e1( T"e !o1e '&e& "e !on en member o loa1 "e b'lle e< 're an1 bulletContainer e< 're *rom "e #%A Framewor. Con en Pi3eline( T"i& e<am3le a&&'me& "a "e e< 're& b'lle an1 bulletContainer are a2ailable in "e !on en 3roLe! (
namespace public )&1.ulletContainer class GameG ( !icrosoft.)na.*ramewor+.Game
Graphics,e3ice!anager graphics; :prite.atch sprite.atch; /* te/ture for bullet image */ 4e/ture2, bullet"mage; /* te/ture for bullet container */ 4e/ture2, bulletContainer; int !a/.ullet @ 2C; /* current bullet count */ int total.ullets; /* a 3ariable to hold space between two consecuti3e bullet images */ float space.etween"mages @ 8.8f; public GameG#% graphics @ new Graphics,e3ice!anager#this%; Content.<oot,irector0 @ =Content>; total.ullets @ !a/.ullet; '
/* Create a new :prite.atch$ which can be used to draw te/tures.*/ sprite.atch @ new :prite.atch#Graphics,e3ice%; bullet"mage @ Content.-oad#4e/ture2,.#U=bullet>%; bulletContainer @ Content.-oad#4e/ture2,. #U=bulletContainer>%; int ma/.ulletCanContain @ bulletContainer.?eight / bullet"mage.?eight; /* calculate space between two bullet images */ space.etween"mages @ #float%ma/.ulletCanContain / #float%total.ullets; ' protected o3erride 3oid 2pdate#Game4ime game4ime%
// 1llows the game to e/it if #Game6ad.Get:tate#6la0er"nde/.;ne%..uttons..ac+ @@ .utton:tate.6ressed% this.9/it#%; Je0board:tate +e0:tate @ Je0board.Get:tate#%; //"f the 2p 1rrow is pressed$ increase the number of bullets if #+e0:tate."sJe0,own#Je0s.2p% total.ullets ;@ G; ' //"f the ,own 1rrow is pressed$ decrease the number of bullets if #+e0:tate."sJe0,own#Je0s.,own% @@ true% @@ true%
total.ullets B@ G; ' //Clamp the bullets between 8 and !a/.ullet total.ullets @ #int%!ath?elper.Clamp#total.ullets$ 8$ !a/.ullet%; base.2pdate#game4ime%; ' protected o3erride 3oid ,raw#Game4ime game4ime%
Graphics,e3ice.Clear#Color.Cornflower.lue%; sprite.atch..egin#%; int postionY ?eight B bulletContainer.?eight B int position) Width / 2 B bulletContainer.Width @ G8;// this.Window.Client.ounds. 28; @ G8;// this.Window.Client.ounds. / 2;
www.it-ebooks.info
www.it-ebooks.info
1I% , 2esso* $
//,raw the bullet container sprite.atch.,raw#bulletContainer$ new <ectangle#position)$ postionY$ bulletContainer.Width/2$ bulletContainer.?eight%$ new <ectangle#8$ 8$ bulletContainer.Width / 2$ bulletContainer.?eight%$ Color.White%; /* calculate first bullet position */ Vector2 bullet6os @ new Vector2#position) ; 2.8f$ bulletContainer.?eight B bullet"mage.?eight %; //,raw "ndi3idual bullets for #int
8;
total.ullets;
i;;%
sprite.atch.,raw#bullet"mage$ bullet6os$ Color. White%; /* Change the height of the ne/t bullet in the container */ bullet6os.Y B@ #float%bullet"mage.?eight * space.etween"mages; ' sprite.atch.9nd#%; base.,raw#game4ime%; ' ' '
-"en yo' r'n "e !o1e6 yo' no i!e "a on 3re&&in) "e '3 .ey6 "e b'lle !on ainer &"ow& an in!rea&e in "e n'mber o* b'lle & D&ee Fi)'re @7AEM an1 on 3re&&in) "e 1own .ey6 "e b'lle !on ainer &"ow& a 1e!rea&e in "e n'mber o* b'lle & D&ee Fi)'re @7;E(
www.it-ebooks.info
A- T$C?1-O7$0 /o' !an a11 AI *or 2ario'& )ame &!enario&( For e<am3le6 yo' !an '&e AI e!"niB'e& o b'il1 an e<!i in) I!a !"7me7i*7yo'7!anJ 3lo or an elemen o* &'r3ri&e( Moreo2er6 yo' !an a11 li*e o yo'r )ame !"ara! er& by in!or3ora in) AI in "eir mo2emen &( T"e&e an1 many o "er obLe! i2e& !an be a!"ie2e1 "ro')" &ome !le2er '&e o* !ommon AI e!"niB'e& an1 "e 3ro7 )rammin) lo)i! be"in1 "e&e e!"niB'e&( Some o* "e 3o3'lar AI e!"niB'e& are4
N E2a1in) N C"a&in) N Flo!.in) or )ro'3in) N Pa " *in1in) Le '& loo. a ea!" o* "e&e e!"niB'e&(
$6A -1G AOne o* "e &!enario& "a 3re&en & an o33or 'ni y o in!or3ora e AI i& o ma.e "e mo2emen o* an obLe! or %PC in elli)en ( For e<am3le6 in a *an a&y )ame6 ima)ine a &!enario in w"i!" a 3layer !"ara! er !"a&e& a o.en6 &'!" a& a )ol1 !oin6 w"o&e mo2emen i& !on rolle1 by an %PC6 &'!" a& an o)re( In "i& !a&e6 yo' !an a' oma e "e !oin &3ri e o 1i&a33ear *rom one 3oin o ano "er
1I$ , 2esso* $
3oin on "e &!reen a& &oon a& "e 3layer !"ara! er !ome& near i ( T"i& 3ro2i1e& an ill'&ion o "e )ame 3layer "a "e mo2emen o* "e )ame obLe! i& !on rolle1 by a real "'man Dmon& erE an1 no by "e !om3' er( T"'& yo' !an in!or3ora e AI wi " "e r'naway &3ri e o ma.e i &eem reali&7 i! an1 !"allen)in)6 ye 1e*ea able( T"e *ollowin) &am3le al)ori "m 3ro2i1e& *or an e2a1in) &3ri e( :( Ge "e 3layer !"ara! erH& 3o&i ion on "e &!reen( 8( I* "e 3layer !"ara! erH& 3o&i ion i& in "e 1e*ine1 ran)e6 "en a&&i)n a ran1om wai ime o "e &3ri e( A( Do no mo2e "e &3ri e 'n il "e wai in) ime i& o2er( T"i& 1elay allow& "e 3layer o !a !" "e &3ri e i* "e rea!"e& "e &3ri e be*ore "e wai ime i& o2er( ;( A& &oon a& "e wai ime i& o2er6 ma.e "e &3ri e a33ear in &ome o "er 3la!e on "e &!ene( C( Con in'e & e3& 8 o ; 'n il "e 3layer !a !"e& "e &3ri e(
C?A0-1G AAl "o')" an e2a1in) &3ri e "a& "e 3layer *ollowin) "e &3ri e6 "ere mi)" be a &i 'a ion in a )ame in w"i!" "e 3layer i& *ollowe1 by a &3ri e an1 "e 3layer nee1& o e2a1e "e &3ri e( /o' reB'ire "i& e!"niB'e w"en yo' "a2e a !om3' er7!on rolle1 or %PC enemy *or "e )ame 3layer( /o' "en 3ro)ram "e enemy &3ri e o in!l'1e "e reB'i&i e AI &o "a "e enemy !"ara! er *ollow& "e 3layer an1 be"a2e& in re&3on&e o "e 3layer L'& a& a "'man enemy wo'l1( T"e *ollowin) i& a &am3le al)ori "m *or in!or3ora in) !"a&in) AI(
:( A&&i)n a ran1om wai in) ime o "e AI be*ore yo' 3lan i & mo2e( 8( -ai 'n il "e wai in) ime i& o2er( A( A& &oon a& "e wai in) ime i& o2er6 a.e "e 3layer 3o&i ion( ;( Cal!'la e "e 1i**eren!e be ween "e 3layer 3o&i ion an1 "e AI 3o&i ion an1 1e!i1e on "e AI 1ire! ion ba&e1 on "e !al!'la ion( C( %ormali,e "e 1ire! ion( @( A11 &ome ran1omne&& o "e 1ire! ionM o "erwi&e6 i* "e AI ma.e& "e &ame mo2e a& "e 3layer6 i will be 1i**i!'l *or "e 3layer o win( /o' nee1 o 3ro2i1e a balan!e by a11in) ran1omne&& o "e AI( =( Mo2e owar1& "e 3layer a!!or1in) o "e 1ire! ion an1 wi " &ome &3ee1(
"/OC2-1G O8 G8O7+-1G ASome )ame& reB'ire &3e!i*i! AI e!"niB'e&( /o' mi)" *eel "a i i& more reali& i! o le !er ain %PC&6 &'!" a& a )ro'3 o* &ol1ier&6 mo2e o)e "er( T"e AI lo)i! be"in1 "i& e!"niB'e i& "e Crai) Reynol1& al)ori "m( T"i& al)ori "m *ollow& "ree &im3le r'le&4
N S eer an1 a2oi1 !olli1in) in o o "er member& o* "e )ro'3( N Ali)n owar1& "e a2era)e "ea1in) o* "e member& o* "e )ro'3( N S eer or mo2e owar1 "e a2era)e 3o&i ion o* "e member& o* "e )ro'3(
+AT? "-1 -1G AA3ar *rom !"a&in) an1 e2a1in) AI6 ano "er !ommon AI in 2i1eo )ame& i& "e 3a " *in1in) AI( T"i& AI in2ol2e& mo2in) a )ame obLe! in an e**or o *in1 a 3a " aro'n1 an ob& a!le( %'mero'& al)ori "m& are a2ailable *or "e 3a " *in1in) AI( T"e *ollowin) o3i!& brie*ly in ro1'!e yo' o wo !ommonly a2ailable e!"niB'e&4
N Brea1!r'mb 3a " *ollowin)4 In "i& e!"niB'e6 "e 3layer !"ara! er 3ro)re&&e& "ro')" "e )ame mar.in) &ome in2i&ible mar.er& or Ibrea1!r'mb&J on "er 3a " 'n.nowin)ly( /o' !an 3ro)ram "e %PC o loo. *or an1 i1en i*y "e brea1!r'mb&
www.it-ebooks.info
an1 *ollow "e 3a " a& lai1 by "e 3layer( A& "e 3layer "a& alrea1y !rea e1 "e 3a "6 yo' 1o no nee1 o worry abo' "e !om3le<i y o* "e 3a " an1 "e n'mber o* ob& a!le& in "e 3a "( N -ay3oin na2i)a ion4 T"i& e!"niB'e i& a )oo1 !"oi!e w"en yo'r )ame "a& a lar)e en2ironmen wi " m'l i3le ob& a!le&( S'!" an en2ironmen ma.e& 3a " *in1in) a 1i*7 *i!'l an1 ime7!on&'min) a&.( -ay3oin na2i)a ion allow& yo' o 3la!e no1e& in "e )ame en2ironmen or6 in o "er wor1&6 3la!e re*eren!e 3oin & in "e )ame worl1( /o' !an "en &im3ly '&e "e&e 3re!al!'la e1 3a "& in "e a33ro3ria e 3a " *in1in) al)ori "m&( O "er e!"niB'e& in 3a " *in1in) in!l'1e errain analy&i&6 in*l'en!e ma3&6 an1 2i&ibili y )ra3"&( Terrain analy&i& "el3& o in!rea&e "e !a3abili ie& o* an AI o33onen by 3ro2i1in) in*orma ion abo' "e )ame worl1( For e<am3le6 in*orma ion abo' "ill&6 amb'&" 3oin &6 wa er bo1ie&6 an1 &o on !an be '&e1 by "e AI o33onen o i & a12an a)e( An in*l'en!e ma3 i& a e!"niB'e "a warn& "e !om3' er7!on rolle1 o33onen w"en i & enemy i& &3o 7 e1( Vi&ibili y )ra3"& brea. 1own lar)er area& in o &maller area& "a are in er!onne! e1( T"i& e!"niB'e i& al&o '&e1 o )i2e "e )ame AI an a12an a)e o2er "e 3layer( E2ery )ame i& 'niB'e an1 mi)" reB'ire 1i**eren AI e!"niB'e&( -"a e2er "e AI e!"niB'e yo' *ollow6 yo' m'& !are*'lly b'il1 "e AI in o yo'r )ame in a manner &'!" "a "e 3layer belie2e& "a "e i& 3layin) a)ain& real o33onen & ra "er "an !om3' er7&im'la e1 !"ara! er&( T"e AI &"o'l1 *'r "er mo i2a e "e 3layer o !on in'e 3layin) "e )ame( An AI o33onen !an ea&ily be!ome "e !'r&e o* "e )ame i* yo' 3ro)ram i o be an e< remely 1i**i!'l o33onen o 1e*ea (
, ?andling
Game ata
Han1lin) )ame 1a a in2ol2e& !a3 'rin)0re rie2in) "e )ame 1a a ba!. an1 *or " *rom a 1i&. *ile an1 mana)in) "e & a e o* "e )ame( Ca3 'rin) "e )ame 1a a "el3& in 1i)i ally
& orin) "e in*orma ion abo' "e 3ro)re&& o* a )ame 3layer in "e re&3e! i2e )ame an1 re rie2in) "e & ore1 in*orma ion a a la er & a)e w"ene2er "e 3layer wan & o re&'me or reloa1 "e )ame *rom "e &a2e1 3oin (
Game 1a a mean& in*orma ion abo' e2ery elemen in a )ame( I in!l'1e& "e 3layer or '&er 1a a "a en!om3a&&e& "e AI 1a a an1 "e le2el 1a a( T"e AI 1a a in!l'1e& in*orma7 ion abo' "e 3o&i ion o* "e %PC an1 "e 3o&i ion o* "e 3layer !"ara! er on "e )ame &!reen( T"e le2el 1a a in!l'1e& 1e ail& abo' "e !'rren )ame le2el( T"e&e 1e ail& in!l'1e "e ime ela3&e1 &in!e "e & ar o* "e )ame le2el6 "e ime &e in) D1ay0ni)" E *or "e )ame &!ene6 "e wea "er o* "e )ame &!ene D!lo'1y0&'nnyE6 "e &e in)& !"o&en by "e 3layer6 an1 &o on( Mo& 2i1eo )ame& o1ay 3ro2i1e a me!"ani&m o &a2e "e )ame 1a a 3rimarily *or wo rea&on&4 N I *a!ili a e& & orin) "e 3layerH& 3ro)re&& in "e !'rren )ame &e&&ion an1 reloa1in) "e )ame *rom "e la& &a2e1 3oin in "e ne< &e&&ion( T"i& *a!ili y i& a ne!e&&i y be!a'&e "e !om3le< an1 m'l ile2el )ame& o* o1ay a.e 1ay& o !om3le e( N %on2ola ile & ora)e6 a!"ie2e1 "ro')" 1e2i!e& &'!" a& !ar ri1)e&6 memory !ar1&6 an1 b'il 7in "ar1 1ri2e !on&ole&6 "a& now be!ome *ea&ible( T"e&e & ora)e 1e2i!e& & ore "e )ame &e&&ion& a a low !o& ( To all're !'& omer&6 )ame man'*a! 'rer& o1ay 3ro2i1e "e 3layer wi " "e *le<ibili y o* &a2in) "e )ame a any 3oin o* ime 1'rin) "e )ame3lay6 a "e en1 o* ea!" )ame le2el6 or a "e &3e!i*i! 1e&i)na e1 area& wi "in "e )ame(
www.it-ebooks.info
1I! , 2esso* $
Ca3 'rin) '&er 1a a or )ame 1a a i& an im3or an a&3e! o* 1e2elo3in) a )ame( T"i& "el3& en&'re "a "e &!ore6 "e !'rren le2el o* "e )ame6 "e !"ara! er& or obLe! & &ele! e1 by "e 3layer&6 an1 any 3re*eren!e &e in)&6 &'!" a& &o'n1 an1 anima ion !"o&en by "e 3layer6 are & ore1( A& a re&'l 6 w"en "e 3layer& re 'rn o "e )ame6 "ey 1o no nee1 o re&e all "e &e in)&( T"ey !an al&o & ar *rom w"ere "ey le* "e )ame( T"i& "el3& "e 3layer& mo2e a"ea1 in "e )ame an1 .ee3& '3 "eir e<!i emen le2el(
Ima)ine a &i 'a ion in w"i!" yo' are 3layin) a )ame "a in2ol2e& many le2el& "a nee1 o be !om3le e1 o *ini&" "e )ame( -"en yo' & ar 3layin) "e )ame6 yo' !"oo&e !er ain &e in)&K*or e<am3le6 yo' !an !"oo&e w"e "er yo' wan "e m'&i! o 3lay w"en "e )ame i& 3laye16 w"a "e m'&i! &"o'l1 be6 w"i!" !"ara! er yo' wan o re3re&en 6 an1 w"a name yo' wan o '&e *or "e !"ara! er( /o' "en )o a"ea1 wi " "e )ame an1 *ini&" "e *ir& le2el( T"i& &'!!e&&*'l !om3le ion o* Le2el : 'nlo!.& "e ne< le2el an1 yo' & ar 3layin) "e ne< le2el( Mi1way in o "e &e!on1 le2el6 yo' B'i "e )ame o a.e !are o* &ome im3or an erran1&( -"en yo' re 'rn o "e )ame6 yo' reali,e "a all "e &e in)& "a yo' ma1e "a2e been re&e ( F'r "er6 now yo' nee1 o & ar *rom Le2el : an1 Le2el 8 i& no ye 'nlo!.e1( How will yo' *eelR O* !o'r&e yo' will be an)ry an1 *r'& ra e16 an1 yo' mi)" no wan o !on in'e 3lay7 in)( To a2oi1 &'!" a &i 'a ion6 a& a )ame 1e2elo3er6 yo' nee1 o "a2e a 3ro2i&ion *or &a2in) "e )ame 1a a w"en "e 3layer& B'i "e )ame mi1way( Sa2in) "e )ame 1a a "el3& en&'re "a w"en "e 3layer& re 'rn o "e )ame6 "ey !an & ar "e )ame *rom w"ere "ey le* o**( T"i& "el3& .ee3 "e mo i2a ion le2el& o* "e 3layer& "i)" an1 in!rea&e& "e !"an!e& o* "eir 3layin) "e )ame ill "e en1( /o' !an !a3 're "e )ame 1a a by '&in) "e )ml:erializer an1 "e :torageContainer !la&&e& in #%A ;(9( T"e )ml:erializer !la&& &eriali,e& obLe! & in o #ML 1o!'men & an1 1e&eriali,e& "e obLe! & *rom #ML 1o!'men &( Seriali,in) an obLe! mean& ran&la in) i & 3'bli! 3ro3er ie& an1 *iel1& in o a &erial *orma 6 &'!" a& an #ML 1o!'men *or & ora)e or ran&3or ( I i& "e way o* &a2in) an obLe! H& & a e in o a & ream or b'**er( De&eriali,a ion i& "e 3ro!e&& o* re& orin) "e obLe! o i & ori)inal & a e *rom "e &eriali,e1 *orm( T"e :torageContainer !la&& i& a lo)i!al &e o* & ora)e *ile&( /o' !an !rea e *ile& o & ore "e & a e o* "e 2ario'& obLe! & an1 !om3onen & in "e )ame an1 & ore "e *ile& in a :torageContainer obLe! (
To & ore "e )ame 1a a6 yo' nee1 o wri e !o1e o 3er*orm "e *ollowin) a&.&4 :( De*ine "e )ame 1a a o be & ore14 Be*ore yo' &a2e "e )ame 1a a6 yo' nee1 o 1e!i1e on "e y3e o* )ame 1a a yo' wan o & ore( T"a i&6 yo' nee1 o 1e!i1e on "e obLe! & an1 !om3onen & o* "e )ame "a yo' wan o & ore w"en "e 3layer &a2e& "e )ame( /o' !an in!l'1e a& many obLe! & an1 !om3onen & a& yo' wan ( For e<am3le6 in a &"oo er )ame6 yo' !an & ore in*orma ion &'!" a& le2el6 &!ore6 "e !"ara! er name !"o&en by "e 3layer6 "e 3o&i ion o* "e 3layer6 "e & a '& o* amm'ni ion in "an16 an1 "e )'n "e 3layer '&e&( A* er yo' 1e!i1e "e obLe! & an1 !om3onen & o be & ore16 !rea e a !la&& or a & r'! 're "a 1e*ine& "e im3or an obLe! & an1 !om3onen & yo' "a2e i1en i*ie1( 8( Seriali,e "e )ame 1a a in o "e reB'ire1 )ame *ile4 %ow "a yo' "a2e 1e*ine1 "e 1a a yo' wan o & ore6 yo' nee1 o !rea e a &a2e )ame *ile o & ore "e 1a a '&in) "e :torageContainer !la&&( To en&'re "a only "e la e& )ame 1a a i& & ore16 yo' nee1 o !"e!. w"e "er a )ame *ile "a& alrea1y been !rea e1 an1 &a2e1 earlier( I* a &a2e )ame
www.it-ebooks.info
*ile alrea1y e<i& &6 yo' nee1 o 1ele e "e e<i& in) *ile an1 "en !rea e a new *ile( To !"e!. w"e "er a *ile wi " a &3e!i*i! name e<i& &6 '&e "e *ile9/ists me "o1 o* "e :torageContainer !la&&6 an1 o 1ele e an e<i& in) *ile *rom "e !on ainer6 '&e "e ,elete*ile me "o1 o* "e :torageContainer !la&&( Finally6 &eriali,e "e 1a a o be & ore1 an1 &en1 i a& a & ream in o "e &a2e )ame *ile( T"e *ollowin) & e3& &"ow "e !o1e reB'ire1 o &a2e "e )ame 1a a( A& alrea1y 1i&!'&&e16 "e :torageContainer !la&& re3re&en & "e lo)i!al !olle! ion o* & ora)e *ile&( To )e "e 3"y&i!al & ora)e 1e2i!e6 &'!" a& a memory 'ni or "ar1 1ri2e6 yo' nee1 o '&e "e :torage,e3ice !la&& an1 i & me "o1&( T"e *ollowin) !o1e &am3le a&&'me& "a a :torage,e3ice obLe! name1 I1e2i!eJ i& ob aine1(
-1"O8MAT-O1MO8$ "or more information on obtaining a storage de!ice# refer to the C8eading and <riting ata "ilesD section in the M0 1 /ibrary.
0A6$ ATA TO A 0A6$ GAM$ "-/$ >3T 83A<;. S ore "e )ame 1a a in o a &a2e )ame *ile( 1. De*ine "e )ame 1a a "a yo' wan o &a2e( For "i&6 yo' 1e*ine a new !la&& or & r'! 're(
public struct 6la0er,ata public string 6la0er&ame; public Vector26la0er6osition; public int -e3el; public int :core; public -ist#string. completed1chie3ements; /* "f game is ha3ing 2C hr da0 night s0stem we need to sa3e that.*/ public :0stem.4ime:pan currentGame4ime; /* "f 0our game has some weather condition $ need to sa3e it too . !0 game has a fog effect.*/ public bool fog9nable; '
A. Seriali,e "e 1a a in "e &a2e 1a a *ile( To a!"ie2e "i&6 3er*orm "e *ollowin) & e3&4 a. Crea e a :torageContainer obLe! o a!!e&& "e &3e!i*ie1 1e2i!e4
// ;pen a storage container. "1s0nc<esult as0nc<esult@ de3ice..egin;penContainer#=:a3ing6la0er6rofile>$ null$ null%; // Wait for the Wait?andle as0nc<esult.1s0ncWait?andle.Wait;ne#%; to become signaled.
b. Call *ile9/ists o 1e ermine w"e "er "e &a2e )ame *ile alrea1y e<i& &( I* i e<i& &6 "en !all "e ,elete*ile me "o1 o 1ele e i ( T"e *ollowin) !o1e 3er*orm& "i&4
string filename @ =sa3edGame:tate.sa3>;
www.it-ebooks.info
A&& , 2esso* $
// Chec+ to see whether the sa3e e/ists. if #container.*ile9/ists#filename%% // ,elete it so that we can container.,elete*ile#filename%;
create
one
fresh.
c. Crea e a :tream obLe! on "e *ile by '&in) "e Create*ile me "o16 a& &"own in "e *ollowin) !o1e4
// Create the file. :tream file:tream @ container.Create*ile#filename%;
+. Crea e an )ml:erializer obLe! an1 3a&& "e y3e o* "e & r'! 're "a 1e*ine& yo'r &a2e )ame 1a a6 a& &"own in "e *ollowin) !o1e(
// Con3ert the obAect to )!- data serializer @ new )ml:erializer#t0peof#6la0er,ata%%; and put it in the stream. )ml:erializer
e. Call :erialize6 an1 "en 3a&& "e :tream an1 "e 1a a o &eriali,e( T"e )ml:erializer !on2er & 1a a in "e & r'! 're o #ML an1 '&e& "e :tream o wri e "e 1a a in o "e *ile(
6la0er,ata pla0er,ata @ new 6la0er,ata#%; /* 4hen set pla0er,ata with appropriate info from game */ pla0er,ata.fog9nable @ true; pla0er,ata. 6la0er&ame @ =0our name>;
f. Clo&e "e :tream an1 1i&3o&e "e :torageContainer obLe! ( T"i& !ommi & "e !"an)e& ma1e o "e 1e2i!e(
// Close the file. file:tream.Close#%; //dispose the Container.,ispose#%;
containder
%ow "a yo' "a2e &a2e1 "e )ame 1a a6 le '& 'n1er& an1 "ow o rea1 "e &a2e1 )ame 1a a(
Loa1in) or rea1in) "e )ame 1a a *rom "e )ame *ile in2ol2e& "e *ollowin) a&.&4 :( Crea e a :torageContainer obLe! o a!!e&& "e )ame *ile4 To & ar loa1in) "e &a2e )ame & a e6 yo' nee1 o !rea e an obLe! o* "e :torageContainer !la&& o a!!e&& "e 1e2i!e an1 o3en "e )ame *ile "a !on ain& "e & ore1 )ame 1a a( /o' al&o nee1 o !"e!. w"e "er any )ame *ile& e<i& ( I* "e 3layer i& 3layin) "e )ame *or "e *ir& ime6 a )ame *ile will no be 3re&en ( In !a&e a )ame *ile 1oe& no e<i& 6 yo' m'& 1i&3o&e "e !on ainer( 8( De&eriali,e "e )ame 1a a o loa14 /o' "a2e !rea e1 a :torageContainer obLe! an1 !"e!.e1 w"e "er a )ame *ile e<i& &( I* a )ame *ile e<i& &6 yo' nee1 o loa1 "e )ame 1a a &o "a "e 3layer& !an & ar *rom w"ere "ey le* "e )ame 3re2io'&ly( To 1o "i&6 yo' *ir& !rea e a & ream an1 "en !rea e an )ml:erializer obLe! "a will a!!e&& "e )ame 1a a & ore1 in "e *ile "ro')" "e & ream( /o' "en !all "e ,eserialize me "o1 o* "e )m:erializer obLe! ( T"i& me "o1 a!!e&&e& "e )ame 1a a an1 !on2er & "e 1a a ba!. *rom #ML *orma o "e a! 'al *orma a& reB'ire1 in "e )ame( Finally6 yo' !lo&e "e & ream an1 1i&3o&e o* "e :torageContainer obLe! ( Le '& loo. a "ow o wri e !o1e o 3er*orm ea!" o* "e&e a&.&(
www.it-ebooks.info
8$A
>3T 83A<;. Re& ore "e )ame 1a a *rom "e &a2e )ame *ile( 1. Crea e a :torageContainer obLe! o a!!e&& "e &3e!i*ie1 1e2i!e(
// ;pen a storage container. "1s0nc<esult as0nc<esult@ de3ice..egin;penContainer#=:a3ing6la0er6rofile>$ null$ null%; // Wait for the Wait?andle as0nc<esult.1s0ncWait?andle.Wait;ne#%; :torageContainer container @ de3ice.9nd;penContainer#as0nc<esult%; // Close the wait handle.as0nc<esult.1s0ncWait?andle.Close#%; to become signaled.
A. Call *ile9/ists o 1e ermine w"e "er "e &a2e1 )ame *ile e<i& &(
string filename @ =sa3edGame:tate.sa3>; // Chec+ to see whether the sa3e e/ists. if #@container.*ile9/ists#filename%% // "f not$ dispose of the container and return. container.,ispose#%; return; '
@. O3en a :tream obLe! on "e *ile by '&in) "e ;pen*ile me "o16 a& &"own in "e *ollowin) !o1e(
// ;pen the file. :tream file:tream @ container.;pen*ile#filename$ *ile!ode.;pen%;
%. Crea e an )ml:erializer obLe! an1 3a&& "e y3e o* "e & r'! 're "a 1e*ine& yo'r &a2e )ame 1a a(
)ml:erializer serializer @ new )ml:erializer#t0peof#6la0er,ata%%;
?. Call "e ,eserialize me "o1 an1 3a&& "e :tream obLe! ( T"e ,eserialize me "o1 re 'rn& a !o3y o* "e &a2e )ame & r'! 're 3o3'la e1 wi " "e 1a a *rom "e &a2e )ame *ile( %o e "a yo' nee1 o !a& "e re 'rn 2al'e *rom ;bAect o "e re&3e! i2e y3e6 a& &"own in "e *ollowin) !o1e( DIn "i& !a&e6 "e y3e i& 6la0er,ata(E
6la0er,ata data @ #6la0er,ata%serializer. ,eserialize#file:tream%;
$. Clo&e "e :tream an1 1i&3o&e "e & ora)e !on ainer(
// Close the file. file:tream.Close#%; // ,ispose of the container. container.,ispose#%;
Sa2in) an1 re& orin) )ame 1a a ra!.& "e 3layerH& 3ro)re&& in a )ame( Howe2er6 o ra!. "e )ame *low w"ile yo'r )ame i& r'nnin)6 yo' nee1 o 1e*ine "e 3o&&ible & a e& *or yo'r )ame an1 mana)e "e&e & a e&( T"e *ollowin) &e! ion 1i&!'&&e& "ow o mana)e "e )ame & a e& "a yo' 1e*ine *or yo'r )ame(
www.it-ebooks.info
A&A , 2esso* $
C$8T-"-CAT-O1 8$A A ?ow will you manage the flow of a fantasy game using game statesB ;.L
I* yo' re!all6 a )ame & a e 1e*ine& "e be"a2ior o* e2ery obLe! a any )i2en 3oin in "e )ame( In )eneral6 "e &im3le& o* )ame& !an "a2e "e *ollowin) )ame & a e&4 N Ini iali,e4 In "i& & a e6 all "e ne!e&&ary re&o'r!e&6 &'!" a& "e reB'ire1 &er2i!e& or any non)ra3"i!& re&o'r!e&6 are loa1e1 in o "e memory( N Di&3layMen'4 In "i& & a e6 "e main men' i& 1i&3laye1 w"ere "e 3layer !an 2iew "e 1emo )ame or & ar "e )ame 3lay( N 6la0er6la04 In "i& & a e6 "e 3layer 3lay& "e )ame an1 in "e !o'r&e o* )ame3lay6 any one o* "ree "in)& !an "a33en4 N T"e 3layer i& le* wi " more !"an!e& an16 a& a re&'l 6 "e )ame on!e a)ain en er& "e Player Play S a e( N T"e 3layer i& 2oi1 o* !"an!e& an16 a& a re&'l 6 "e )ame & a e en er& "e Game O2er S a e( N T"e 3layer lo&e& "e )ame an1 "e )ame en er& "e Player Lo&e S a e( N 6la0er-ose4 In "i& & a e6 "e 3layer !an !"oo&e o re3lay "e )ame( N Game;3er4 In "i& & a e6 "e 3layer !an !"oo&e o re3lay "e )ame( /o' !an &ee "a "e )ame en1& o be"a2e a!!or1in) o "e 2al'e o* "e )ame & a e( /o' mana)e "e&e )ame & a e& a!!or1in) o "e 3layer a! ion( For e<am3le6 !on&i1er "e )ame & a e& "a we 1i&!'&&e1 a "e & ar o* "i& o3i!( Ba&e1 on "e 3layer a! ion6 "e )ame en er& in o "e 1i**eren & a e&( Ba&e1 on "e&e & a e&6 yo' 3ro)ram yo'r )ame o 3ro)7 re&& *orwar1 or ba!.war1( For e<am3le6 w"en yo'r )ame & ar &6 "e & a e i& a' oma i!ally &e o "e "nitialize & a e( On!e "e ini iali,a ion !om3le e&6 "e )ame 3ro)re&&e& o "e ne< & a e6 w"i!" i& "e ,ispla0!enu & a e( In "i& & a e6 1e3en1in) on "e a! ion 3er*orme1 by "e 3layer6 yo'r )ame en er& "e 6la0er6la0 & a e( Li.ewi&e6 a& an1 w"en "e 3layer 3ro)re&&e& in "e )ame6 yo' &"o'l1 3ro)ram o &e "e )ame & a e 2ariable o "e !'rren )ame & a e( A11i ionally6 yo' nee1 o ra!. "e )ame *low a!!or1in) o "e !'rren 2al'e o* "e )ame & a e 2ariable( S'33o&e "e !'rren & a e o* "e & a e 2ariable i& "e 6la0er6la0 & a e6 an1 i* in "i& & a e6 "e 3layer lo&e& "e )ame6 "en yo' nee1 o &e "e )ame & a e 2ariable o "e 6la0er-ose & a e an1 "i& & a e be!ome& "e !'rren )ame & a e( In "i& & a e6 yo' !an 1e*ine "e be"a2ior o* "e )ame( T"a i&6 "e )ame !an 1i&3lay 1i**eren o3 ion&6 &'!" a& an o3 ion o na2i)a e "e 3layer o "e o3enin) &!reen or an o3 ion o & ar "e )ame a)ain( T"e *ollowin) !o1e &am3le 1e*ine& "e 3o&&ible & a e& o* a )ame( I "en mana)e& "e *low o* "e )ame6 ba&e1 on "e !'rren & a e o* "e )ame( T"e !o1e a&&'me& "a a 3roLe! name1 I#%AGameS a eJ i& !rea e1 alrea1y(
namespace public )&1Game:tate enum Game:tate
www.it-ebooks.info
Graphics,e3ice!anager graphics; :prite.atch sprite.atch; /* 1ssign default game state 3alue to Game:tate. "nitialize */ Game:tate currentGame:tate @ Game:tate."nitialize; public GameG#% graphics @ new Graphics,e3ice!anager#this%; Content.<oot,irector0 @ =Content>; '
protected
o3erride
3oid
2pdate#Game4ime
game4ime%
@@
case Game:tate."nitialize( "nitialize:cene#%; brea+; case Game:tate.,ispla0!enu( show!enu#%; brea+; case Game:tate.6la0er6la0( update6la0erGame6la0-oop#game4ime%; brea+; case Game:tate.6la0er-ose( if #pla0er."s<epla0% pla0er.<einitialize#%; currentGame:tate @ Game:tate.6la0er6la0; ' else
currentGame:tate @ Game:tate.Game;3er; ' case Game:tate.Game;3er( if #pla0er."s<epla0% pla0er.<einitialize#%; currentGame:tate @ Game:tate.6la0er6la0; ' else
www.it-ebooks.info
A&% , 2esso* $
2nloadContent#%; currentGame:tate @ Game:tate.,ispla0!enu; ' ' base.2pdate#game4ime%; ' public 3oid "nitialize:cene#% /* "nitialize 0our scene here and when scene initialization finishes set state to ,ispla0!enu */ currentGame:tate @ Game:tate.,ispla0!enu; ' public 3oid show!enu#% //9nable rendering of !enu ' public 3oid update6la0erGame6la0-oop#Game4ime game4ime%
//2pdate 6la0er Game pla0 ' protected o3erride 3oid ,raw#Game4ime game4ime%
(:/22 ('MMA8;
-1 T?-0 /$00O1# AO7 /$A81$ H I The game de!elopment process also in!ol!es creating tools to handle game specific tasks. I Tools# such as an asset con!erter# le!el editor# and map editor# assist the game creation process. I Aou can define the beha!ior of the components added to your game by adding the necessary game code. I 0ome of the popular A- techniJues are chasing A-# e!ading A-# flocking or grouping A-# and path finding A-. I "locking or grouping A- in!ol!es the Craig 8eynolds algorithm. I +opular path finding techniJues include breadcrumb path following and waypoint na!igation. I ?andling game data means capturing and retrie!ing the game data to and from a disk file. -t also in!ol!es managing the state of the game. I Game data means the information about e!ery element in a game# such as the A- data and the le!el data. A- data pertains to the position of the A- and the player character. /e!el data includes information about the particular le!el.
www.it-ebooks.info
I 0a!ing a game helps the player to pre!ent the loss of progress in the game when he needs to Juit the game due to an interruption or for taking a break when the game session is long. I Aou can capture and retrie!e the game data by using the )ml:erializer and the :torageContainer classes in 41A *.E. I efining game states helps you track the flow in your game.
, 2nowledge
Assessment
"ill in the .lank
Com3le e "e *ollowin) &en en!e& by wri in) "e !orre! wor1 or wor1& in "e blan.& 3ro2i1e1( :( a&&i& "e 1e2elo3men o* 2i1eo )ame&( 8( QQQQQQQQQQQQQ AI e!"niB'e in2ol2e& "e Crai) Reynol1& al)ori "m( A( QQQQQQQQQ an1 QQQQQ are "e ool& "a mi)" be relea&e1 wi " "e *inal )ame( ;( T"e QQQQQQQ "el3& o !on2er "e ar wor. in o *orma & reB'ire1 by "e )ame( C( QQQQQQQQ me "o1 "el3& o loa1 a e< 're *rom "e #%A Framewor. Con en Pi3eline( @( QQQQQQQQQ !la&& "el3& yo' re rie2e "e 3"y&i!al & ora)e 1e2i!e o &a2e "e )ame 1a a( =( QQQQQQQQQQQQ !la&& "el3& yo' &eriali,e an1 1e&eriali,e obLe! & o an1 *rom #ML 1o!'men ( >( QQQQQQQQ i& a lo)i!al !on!e3 "a "el3& yo' ra!. "e *low o* a )ame( ?( /o' !an 3ro2i1e an ill'&ion o* in elli)en!e in non3layer !"ara! er& by in!or3ora in) QQQQQQQQQQQQ e!"niB'e&( :9( QQQQQQQQQ an1 QQQQQQQ are 3o3'lar 3a " *in1in) AI e!"niB'e&(
Multiple Choice
:( -"i!" o* "e *ollowin) obLe! & an1 me "o1& will yo' '&e w"en &a2in) a &a2e )ame *ileR DC"oo&e all "a a33ly(E a( S ora)eCon ainer obLe! b( S ream obLe! !( #mlSeriali,er(Seriali,e me "o1 1( #mlSeriali,er(De&eriali,e me "o1 8( -"i!" o* "e *ollowin) AI e!"niB'e& 3la!e& no1e& in "e )ame worl1 an1 '&e& "em in "e 3a " *in1in) al)ori "m&R a( -ay3oin na2i)a ion b( Brea1!r'mb 3a " *ollowin) !( E2a1in) AI 1( Terrain analy&i& A( -"i!" o* "e *ollowin) !la&&e& "el3& yo' )e a & ora)e 1e2i!e o & ore "e )ame 1a aR a( S ora)eDe2i!e b( S ora)eCon ainer !( #mlSeriali,er 1( S ream
www.it-ebooks.info
A&$ , 2esso* $
;( -"i!" o* "e *ollowin) &"o'l1 yo' 3er*orm wi " a S ora)eCon ainer obLe! o !ommi "e !"an)e& ma1e o "e re&3e! i2e & ora)e 1e2i!eR a( Call "e S ora)eCon ainer(Di&3o&e me "o1 b( Clo&e "e S ream obLe! ( !( Call "e #mlSeriali,e(Seriali,e me "o1 1( Call "e S ora)eCon ainer(Crea eFile me "o1 C( -"i!" o* "e *ollowin) !la&&e& "el3& yo' 1raw &3ri e& on "e )ame &!reenR a( Te< 're 8D b( S3ri eBa !" !( Gra3"i!&De2i!eMana)er 1( Con en Mana)er @( -"i!" o* "e *ollowin) !la&&e& "ol1& &3ri e&R a( Te< 're 8D b( S3ri eBa !" !( Gra3"i!&De2i!eMana)er 1( Con en Mana)er =( -"i!" o* "e *ollowin) o3 ion& "el3& yo' o ra!. "e 3layerH& 3ro)re&& in a )ameR a( Sa2in) )ame 1a a b( Main ainin) )ame & a e !( A11in) )ame obLe! & o !on en 3i3eline 1( Crea in) a le2el e1i or ool >( -"i!" o* "e *ollowin) )ame ool& "el3& "e )ame 3layer o !'& omi,e or mo1i*y le2el& wi "in a )ameR a( Le2el e1i or b( Ma3 e1i or !( A&&e !on2er&ion ool 1( AD S '1io Ma< ?( -"i!" o* "e *ollowin) a! i2i ie& 1o yo' "a2e o 3er*orm w"ile loa1in) "e )ame 1a a *rom a &a2e )ame *ileR DC"oo&e all "a a33ly(E a( Seriali,e 1a a b( De&eriali,e 1a a !( Crea e a & ora)e !on ainer obLe! o a!!e&& "e )ame *ile 1( De*ine "e )ame 1a a o be & ore1 :9( /o' 1e2elo3 a role73layin) )ame( /o' 1e!i1e o in!l'1e a le2el e1i or alon) wi " "e relea&e o* "e )ame( -"i!" o* "e *ollowin) a! i2i ie& in2ol2e& "e !rea ion o* "e le2el e1i or *or yo'r )ameR a( Tool !rea ion b( Pro)rammin) )ame !om3onen & !( Game De&i)nin) 1( In!or3ora in) ar i*i!ial in elli)en!e
, Competency
Assessment
0cenario L-;H Creating Tools
/o' are !rea in) a ra!in) )ame( /o' 1e!i1e o 3ro2i1e yo'r )ame 3layer wi " "e o3 ion o* mani3'la in) "e ra!in) ra!.( How wo'l1 yo' a!"ie2e "i&R
www.it-ebooks.info
0cenario L-9H -ncorporating A/o' are !rea in) a *an a&y )ame( /o'r )ame in2ol2e& a &!enario in w"i!" "e 3layer !"ara! er nee1& o e&!a3e *rom "e a a!.& o* an %PC( /o' 1e!i1e o 3ro2i1e a reali& i! !"allen)e o "e 3layer by ma.in) yo'r %PC be"a2e in re&3on&e o "e 3layer( How wo'l1 yo' a!"ie2e "i&R
, +roficiency
Assessment
0cenario L-(H +rogramming Components
/o' are !rea in) a *ir& 73er&on &"oo er DFPSE )ame( For a 3ar i!'lar &!ene6 yo'r )ame &"o'l1 in*orm "e 3layer o* "e n'mber o* ool& in "i& in2en ory( :( How wo'l1 yo' re!ommen1 "i& 3roblem be &ol2e1R 8( How wo'l1 yo' 3ro)ramma i!ally &ol2e "i&R
www.it-ebooks.info
Appendi% A
02-// 17M.$8 ;.; ;.9 ;.( ;.* ;.@ ;.L ;.) 9.; 9.9 9.( 9.* 9.@ (.; (.9 (.( *.; *.9 *.(
/$00O1 17M.$8 ; ; ; (# @ L @# L @# L 9 9 9 9 ;# 9 ( *# @ ( * * *
7nderstanding Game esign ifferentiate among game types. ifferentiate among game genres. 7nderstand player moti!ation. esign the user interface. 7nderstand components. Capture user data. <ork with 41A. 7nderstand ?ardware Choose an input de!ice. Choose an output de!ice. <ork with the network. Manage game performance. 7nderstand the different game platforms. 7nderstand Graphics 7nderstand rendering engines. +lan for game state. raw ob:ects. 7nderstand Animation Animate basic characters. Transform ob:ects. <ork with collisions.
A&!
www.it-ebooks.info
-nde%
A
A! ion )ame&6 C7@ *i)" in) )ame&6 C *ir& 73er&on &"oo er DFPSE )enre6 C &"oo er )ame&6 C "ir173er&on &"oo er DTPSE )enre6 C A! i2i ie&6 in )ame me!"ani!&6 8A A1a3 i2e Di**eren ial P'l&e Co1e Mo1'la ion DADPCME6 =? A1a3 i2e VSyn!6 =@ A1obe Ill'& ra or DAIE6 C: A12en 're )ame&6 @ Fable )ame &erie&6 @ Harry Po er )ame &erie&6 @ $ine! A12en 're&6 @ Maw6 @ My& 6 @ %i!. Te "er&4 P',,le A)en 6 @ A12en 're6 CA A)e o* Em3ire& )ame6 AA Ala11in6 :C6 ::? Al3"a Pro o!ol6 := An)ry Bir16 ;>6 @: An)'lar mo ion6 :AC Anima in) "e ba&i! !"ara! er6 :9=7::C6 See al&o S3ri e anima ion *rame ra e6 ::9 ma ri!e&6 &!alin) an1 ro a in)6 ::A7::C mo2emen 6 :9=7::9 &3ri e anima ion6 ::97::A Ani&o ro3i! *il erin)6 ::> A33li!a ion 3ro)rammin) in er*a!e& DAPI&E6 ;9 Ar!a1e6 ::7:A Dan!e Dan!e Re2ol' ion6 :8 Dr'mMania6 :8 Ar!" Ri2al& mo!.6 @ Ar i*i!ial In elli)en!e DAIE6 :;97:;:6 :?C7:?= AI 1e&i)n6 !on&i1era ion& *or6 :;:7:;8 AI en)ine&6 :;: !"ara! eri,a ion7ba&e1 & ra e)y6 :;97:;: !"a&in) AI6 :?@ !on1i ion7ba&e1 & ra e)y6 :;: e2a1in) AI6 :?C7:?@ *lo!.in) or )ro'3in) AI6 :?@ in!or3ora in) & ra e)ie&6 :;9 in!or3ora in)6 :?C7:?= mo& ob2io'& a! ion & ra e)y6 :;9 3a " *in1in) AI6 :;:6 :?@7:?= brea1!r'mb 3a " *ollowin)6 :?@7:?= way3oin na2i)a ion6 :?= r'bberban1 & ra e)y6 :;:
A&&a&inH& Cree16 @> A ari6 A= A'1io !om3re&&ion6 =@7>9 A1a3 i2e Di**eren ial P'l&e Co1e Mo1'la ion DADPCME6 =? Co1e E<!i e1 Linear Pre1i! or DCELPE6 =? 1e&irable a'1io *orma &6 &ele! in)6 =? Linear Pre1i! i2e Co1in) DLPCE6 =? &ilen!e !om3re&&ion6 => & reamin) a'1io an1 2i1eo6 =? y3e&6 =>7=? A'1io *ile6 !on*i)'rin)6 :C97:C: A'1io *orma y3e&6 =? lo&&le&& !om3re&&e16 =? lo&&y !om3re&&e16 =? MPA a'1io *orma *ile6 =? real a'1io *orma *ile6 =? 'n!om3re&&e16 =? -AV a'1io *orma *ile6 =? -MA a'1io *orma *ile6 =? A'1io "eme6 8978: A'1io Vi1eo In erlea2e1 DA2iE !om3re&&ion6 =>
Ba!.)ammon6 ? Bal1'rH& Ga e &erie&6 > Ba man6 :A Bin. Vi1eo6 >9 Bi ma3&6 C97C: Bla!. bo<6 8: Blen1in)6 C>7C? Boar1 )ame6 ? Ba!.)ammon6 ? Bor1erlan16 := Brea1!r'mb 3a " *ollowin)6 :?@7:?= B' on&6 @>7@?
Call o* D' y ;6 := Call o* D' y Bla!. O3&6 =A Call o* D' y -orl1 a -ar6 =A Car1 )ame&6 >7? Fren!" Taro 6 > Soli aire6 >7? Ca&'al 3layer&6 ; Cen ral 3ro!e&&in) 'ni DCPUE6 A? 2&( GPU6 A? C"am3ion&"i3 Mana)er6 @
A&I
www.it-ebooks.info
A1& , /*+e4
C"ara! er& in !on!e3 'ali,in) "e )ame3lay6 :>7:? 1e&i)nin)6 ?C7:AA6 See al&o Anima in) "e ba&i! !"ara! erM Feel o* "e !"ara! er6 !rea in) C"a&in) AI6 :?@ Cli33in)6 ?: Co1e E<!i e1 Linear Pre1i! or DCELPE6 =? Co1er71e!o1er6 == Colli&ion 1e e! ion6 :A=7:A? '&in) 3er73i<el6 :A? '&in) re! an)'lar bo<6 :A=7:A? Colli&ion re&3on&e6 :A? Colli&ion6 :AC Colo&&al Ca2e A12en 're6 CA Comba Fli)" Sim'la or A6 = Com3e en!e6 87A Com3re&&ion6 =@7>9 analy,in)6 == a'1io !om3re&&ion6 =@7>96 See al&o in1i2i1'al en ry bene*i & o*6 =@ !a e)ori,in) !om3re&&ion e!"niB'e&6 =@7== lo&&le&& !om3re&&ion6 =@ 1a a re1'n1an!y y3e& o *a!ili a e6 == 3&y!"o72i&'al6 == &3a ial6 == &3e! ral6 == em3oral6 == enablin) !om3re&&ion6 =@ lo&&y !om3re&&ion6 == ool& *or6 >9 2i1eo !om3re&&ion6 =@7>9 2i1eo !om3re&&ion y3e&6 ==7=> A'1io Vi1eo In erlea2e1 DA2iE !om3re&&ion6 => H(8@: !om3re&&ion&6 ==7=> M7+PEG DMo ion7+oin P"o o)ra3"i! E<3er & Gro'3E !om3re&&ion6 ==7=> MPEG !om3re&&ion&6 ==7=> Com3' er )ame6 See PC D3er&onal !om3' erE )ame Con!e3 o* )ame6 !rea in)6 :A78A Ba man6 :A !ommon mi& a.e&6 :@7:= *e !" B'e& &6 :@ oo m'!" 1e3en1en!e on !"ara! er&6 :@ 'rnaro'n1&6 :@ !rea in) a & oryline6 :C mi&&ion & a emen 6 wri in)6 :A7:; Con!e3 'ali,in) "e )ame3lay6 :@78: a'1io "eme6 8978: elemen &6 := !"ara! er&6 :>7:? obLe! &6 :=7:> '&er in er*a!e DUIE6 :?789 2i&'al "eme an1 !inema i!6 := )ame &e in)6 :@ Con*i)'rin) o3 ion&6 :;?7:@8 a'1io *ile6 !on*i)'rin)6 :C97:C: 3layer in3' &6 !on*i)'rin)6 :C87:CA & a e o* .ey&6 1e e! in)6 :CA7:C; & a e o* mo'&e6 1e e! in)6 :CC7:C? & a e o* #bo< A@9 !on roller6 1e e! in)6 :C? 2i1eo *ile6 !on*i)'rin)6 :C:7:C8 Con&ole&6 ::7:86 A= A ari6 A= !on roller& in6 :: "an1"el1 )ame !on&ole6 :8 %in en1o6 A= PlayS a ion6 A= #bo<6 A= Con rol 3a1&6 8>78? Con roller&6 :78@ in !on&ole6 :: Co'n er S ri.e6 :C6 ;>6 ;?6 =86 ::@ C'llin)6 ?8 C'& om 2er e<6 !rea in)6 :AA
<
8D )ra3"i!&6 ;> AD6 A; AD )eome ry6 C?7@9 AD )ra3"i!&6 ;>7;? AD ren1erin) en)ine&6 @? Dan!e Dan!e Re2ol' ion6 :8 Dan!e 3a1 or 1an!e ma 6 A8 Dea1 Sea6 @C Dea1 S3a!e HUD6 @> De*ormin) obLe! &6 :9A De&eriali,a ion6 :?> De&i)nin) AI6 :;97:;8 De ermina ion6 87A Die)e i! !om3onen &6 UI layo' 6 @87@A Di**eren 1o & 3er in!" DDPIE &e in)&6 =: Dire! Draw S'r*a!e DDDSE )ra3"i!& *ile6 C: Dire! So'n16 =: Dire! #6 @?7=: Dire! 8D6 =9 Dire! AD6 =9 Dire! # &o* ware6 =9 Di&3lay 1e2i!e&6 AA )ame )ra3"i!&6 AA )ame 3la *orm6 AA )enre o* )ame6 AA "an1"el1 1e2i!e&6 AA7AC ar)e a'1ien!e6 AA ele2i&ion& an1 moni or&6 AA7A; o'!"&!reen 1e2i!e&6 AA6 AC Di&3lay ini iali,a ion6 =:7=A &e '3 reB'iremen &6 =87=A rea&on&6 =8 &am3le error me&&a)e6 =8 Di&3lay men'6 :=A Di&3lay mo1e&6 =A7=; Di&3lay &!reen& '&in) & a e6 :=A Di& rib' e1 Vir 'al En2ironmen DDVEE6 ;: DOOM A6 ::? Dr'mMania6 :8 DVD 2i1eo *orma 6 >9 Dynami!7lin. librarie& DDLL&E6 @?
www.it-ebooks.info
/*+e4 , A11 3
El1er S!roll& V4 S.yrim6 T"e6 88 E2a1in) AI6 :?C7:?@ 1raw me "o16 ?A7?; *i<e1 & e3 )ame loo36 ?; y3e& o*6 ?; '31a e me "o16 ?A 2ariable & e3 )ame loo36 ?; Game me!"ani!&6 1e*inin)6 8:78A a! i2i ie&6 8A bla!. bo<6 8: elemen & o*6 8: Fee1ba!.:6 8: Fee1ba!.86 8: )ame me!"ani!& !y!le6 88 "ow o win6 8A B'e& &6 88 !olle! ion B'e& 6 88 .ill B'e& 6 88 ar)e B'e& 6 88 a&.6 88 Game o' 3' 1e&i)n6 !rea in)6 ;=7>A6 See al&o Vi&'al 1e&i)n6 !rea in) Game o' 3' 1e2i!e6 ;? Game 3er*orman!e reB'iremen &6 i1en i*yin)6 A@7;A !on&ole&6 A= )ra3"i! !ar1&6 A= )ra3"i! 3er*orman!e im3a! 6 mana)in)6 A?7;: mobile6 A> PC&6 A> 3la *orm7&3e!i*i! )ame reB'iremen &6 A=7A> Game 3la *orm6 AA6 ;? Game reB'iremen &6 i1en i*yin) an1 mana)in)6 8=7;@ ba&i! )ame reB'iremen &6 8>7A@ )amerH& in era! ion wi " "e )ame6 8> in3' 1e2i!e6 i1en i*yin)6 8>7AA6 See al&o in1i2i1'al en ry o' 3' 1e2i!e6 i1en i*yin)6 AA7A@6 See al&o in1i2i1'al en ry Game &e in)6 :@ Game & a e&6 o3 imi,in)6 >>7?8 )ame*low6 mana)in)6 >? 3er*orman!e6 mana)in)6 >? ren1erin)6 ?9 Game & a '&6 :9 Game y3e6 See Ty3e o* )ame6 i1en i*yin) Game*low6 !rea in)6 >C7>> !"allen)e6 >@ in& in! i2e 3rom3 6 >=7>> in& in! i2e rainin) area&6 >= 3a!e6 >@ 3layer 2o!ab'lary6 >> &!ri3 e1 e2en &6 >= rial an1 error6 >= Game3a16 8>78? Game3lay6 ; Gamin) 3la *orm6 :: ar!a1e6 ::7:A !on&ole6 ::7:8 mobile6 ::6 :A PC6 ::7:8 General73'r3o&e !om3' in) on )ra3"i!& 3ro!e&&in) 'ni DGPGPUE6 :A= Geno!i1e6 CA
F
Fable )ame &erie&6 @ Fable6 ;> Fable Heroe&6 = Fable II6 @7= Fan a&y )ame&6 > Bal1'rH& Ga e &erie&6 > Final Fan a&y6 > Feel o* "e !"ara! er6 !rea in)6 ::C7:AA6 See al&o Li)" in)M S"a1er& a33lyin) *il er& o e< 're&6 ::@7::?6 See al&o Te< 're *il erin) 3rimi i2e6 :A: 3roLe! ion ma ri<6 :A97:A: 3roLe! ion&6 :8>7:A9 '&er7in1e<e1 3rimi i2e&6 )enera in) obLe! & wi "6 :A:7:A8 Fe !" B'e& &6 :@ Fi)" in) )ame&6 C Fil er6 ::= Final Fan a&y6 >6 :96 :@7:=6 ;>6 ;? Fir& 73er&on &"oo er DFPSE )ame6 C6 8?6 ;=6 >C6 :;@6 :>= Fi<e1 & e3 )ame loo36 ?; Fla&" 2i1eo *orma 6 >9 Flo!.in) AI6 :?@ Fl'i1 1ynami!&6 :A@ For!e6 :AC Form obLe! &6 ?>7:98 rian)le6 ?? For,a Hori,on6 ; Frame ra e6 =;6 ?97?:6 ::9 Frame&6 ::9 F'n! ionali y6 )ame6 See Game *'n! ionali y
>
Game DMMORPGE6 :78@ Game !on!e3 6 See Con!e3 o* )ame6 !rea in) Game !on roller&6 8> Game 1a a6 :?=789; !a3 'rin) '&er 1a a6 :?> )ame & a e&6 mana)in)6 898789; 1i&3laymen'6 898 ini iali,e6 898 "an1lin)6 :?=789; loa1in)6 899789: & orin) )ame 1a a6 :?>7899 1e*ine "e )ame 1a a o be & ore16 :?> &a2e )ame *ile6 :?> Game *'n! ionali y6 :>=789=6 See al&o Game 1a a4 "an1lin) 1e2elo3in)6 :>=789= 3ro)rammin) "e !om3onen &6 :>>7:?=6 See al&o in1i2i1'al en ry Game )enre6 i1en i*yin)6 See Genre6 i1en i*yin) Game )oal&6 See Goal& o* )ame Game )ra3"i!&6 AA Game loo3&6 ?87?C 1e*inin)6 ?87?C
www.it-ebooks.info
A1A , /*+e4
Genre o* )ame6 AA Genre6 i1en i*yin)6 ;7? Goal& o* )ame6 8A Gran1 T"e* A' o IV6 =A Gra3"i! !ar1&6 A= Gra3"i! 3er*orman!e im3a! 6 mana)in)6 A?7;: !en ral 3ro!e&&in) 'ni DCPUE6 A? )ra3"i!& 3ro!e&&in) 'ni DGPUE6 A? HiDe* 3ro*ile6 ;9 HiDe*6 A? ne wor. im3a! 6 A?7;: 3ro*ile6 ;9 Rea!"6 A? Rea!" 3ro*ile6 ;9 Rea!" VS( HiDe*6 A?7;9 Gra3"i!& !ar16 A? Gra3"i!& 3i3eline6 ?97?8 & a)e& in6 ?: !li33in)6 ?: !'llin)6 ?8 o!!l'&ion6 ?8 ra& eri,a ion6 ?8 re&ol' ion6 ?8 ran&*orma ion an1 li)" in)6 ?8 2i&ibili y6 ?: Gra3"i!& 3ro!e&&in) 'ni DGPUE6 A?6 ;> Gra3"i!& y3e6 &ele! in)6 ;>7;? 8D )ra3"i!&6 ;> AD )ra3"i!&6 ;>7;? )ame o' 3' 1e2i!e6 ;? )ame 3la *orm6 ;? ar)e a'1ien!e6 ;? Gro'3in) AI6 :?@ G'n& rin)er6 @
I1ea in) a )ame6 87:A6 See al&o Mo i2a ion Iner ia6 :AC In*l'en!e ma36 :?= In3' 1e2i!e6 i1en i*yin)6 8>7AA !on rol 3a1&6 8>78? 1an!e 3a1 or 1an!e ma 6 A8 )ame3a16 8>78? Loy3a16 8>78? Loy& i!.6 A8 .eyboar16 A9 .ine! 6 A9 li)" )'n6 A8 mobile 1e2i!e&6 A: mo ion &en&in) 1e2i!e6 AA mo'&e6 8? m'&i!al )ame !on roller6 AA & eerin) w"eel6 A:7A8 wii balan!e boar16 AA In& in! i2e 3rom3 6 >=7>> In& in! i2e rainin) area&6 >= In erme1iary 3layer&6 ; In er3ola ion6 :9C
:
$eyboar16 A9 $ey*rame in er3ola ion6 mo1i*yin)6 :9C7:9@ $ine! A12en 're&6 ;6 @ $ine! S3or &6 ; $ine! S3or &4 Sea&on 86 @7=
D
H(8@: !om3re&&ion&6 ==7=> Halo6 :@6 :?6 ;? Halo A6 := Halo4 Comba E2ol2e1 Anni2er&ary6 ;6 :96 =8 Halo ;4 Forwar1 Un o Dawn6 C Halo4 Rea!"6 C= Han1"el1 1e2i!e&6 AA7AC Han1"el1 )ame !on&ole6 :8 Har17!ore 3layer&6 ; Harry Po er )ame &erie&6 @ Hea1& '3 1i&3lay DHUDE6 @=7@>6 :>> !"ara! erH& "eal "0li*e & a '&6 @= )ame & a '&6 @> )ame7&3e!i*i! 2i&'al elemen &6 @> men'&6 @> ime6 @> wea3on&6 @> HiDe* 3ro*ile6 A?7;9 Rea!" 2&( A?7;9 Hi)" Le2el S"a1in) Lan)'a)e DHLSLE6 :88 Hi man6 :C6 ;> How o win6 in )ame me!"ani!&6 8A
La en!y6 ;8 Layo' 6 &ele! in)6 @:7@?6 See al&o UI layo' Learnin)6 87A Le)en1 o* Pel1a6 T"e6 :9 Li)" )'n6 A8 Li)" in)6 C@7C>6 ::?7:88 e**e! o* li)" wi " 1e!ay6 C= e**e! o* li)" wi "o' 1e!ay6 C> 3er73i<el li)" in)6 :89 Linear *il erin)6 ::> Linear mo ion6 :AC Linear Pre1i! i2e Co1in) DLPCE6 =? LiB'i1 !ry& al 1i&3lay DLCDE6 AA Loa1 balan!in)6 ;: Loo3& o* )ame&6 1e&i)nin)6 >C7?C Lor1 o* "e Rin)& Online4 S"a1ow& o* An)mar6 T"e6 :9 Lor1 o* "e Rin)&4 T"e Two Tower&6 8A Lo&&le&& !om3re&&ion6 =@ Lo&&y !om3re&&ion6 == Lo& 91y&&ey6 = L'1o6 8A
www.it-ebooks.info
/*+e4 , A1@ M
Ma)i! S!"ool B'& In "e Time o* "e Dino&a'r&6 T"e6 C Main loo3 D)ame loo3E6 See Game loo3& Mario an1 Soni!6 :9 Ma&&i2ely m'l i3layer online role 3layin) )ame DMMORPGE6 :9 Ma ri!e&6 &!alin) an1 ro a in)6 ::A7 ::C Maw6 @ Ma,e6 =; Men'&6 !rea in)6 :@87:@@ 3ro)ram men'&6 :@87:@@ !o1e a men'6 :@8 Men'&6 UI layo' 6 @@7@= Me a !om3onen &6 @;7@@ Me al Gear Soli1 &erie&6 ;6 :9 Mi3ma36 ::= Mi&&ion & a emen 6 wri in)6 :A7:; Mobile 1e2i!e&6 ::6 :A6 A:6 A> Mo ion7+oin P"o o)ra3"i! E<3er & Gro'3 DM7+PEGE !om3re&&ion6 == Mo ion &en&in) 1e2i!e6 AA Mo i2a ion6 87A !om3e en!e6 87A 1e ermina ion6 87A i1en i*yin)6 87A learnin)6 87A B'e& 6 87A a&. mana)emen 6 87A "rill6 87A Mo'&e6 8? Mi!ro&o* &i1ewin1er )amin) mo'&e6 8? Mo2in) obLe! &6 :9A MPEG !om3re&&ion&6 ==7=> M'l i3layer )ame&6 :9 Halo4 Comba E2ol2e1 Anni2er&ary6 :9 Lor1 o* "e Rin)& Online4 S"a1ow& o* An)mar6 T"e6 :9 Ma&&i2ely m'l i3layer online role 3layin) )ame DMMORPGE6 :9 -orl1 o* -ar!ra* 6 :9 M'l i3layer online )ame&6 ;: !en rali,e17&er2er ar!"i e! 're6 ;: ne wor.e17&er2er ar!"i e! 're6 ;: 3eer7 o73eer ar!"i e! 're6 ;: M'&i!al )ame !on roller6 AA My& 6 @ My& ery I&lan16 ::? %e wor. mana)emen 6 ;8 a1mini& erin) "e ne wor.6 ;8 la en!y6 ;8 main ainin) "e ne wor.6 ;8
N
%e wor. ar!"i e! 're6 'n1erlyin)6 ;:7;8 !en rali,e17&er2er ar!"i e! 're6 ;: m'l i3layer online )ame&6 ;: ne wor.e17&er2er ar!"i e! 're6 ;: 3eer7 o73eer ar!"i e! 're6 ;: %e wor. im3a! 6 A?7;:
www.it-ebooks.info
ne wor. o3era ion&6 ;8 ne wor. ra**i!6 ;8 3ro2i&ionin) "e ne wor.6 ;8 %e wor. reB'iremen &6 mana)in)6 ;:7;A %i!. Te "er&4P',,le A)en 6 @ %in en1o6 A= %on1ie)e i! !om3onen &6 UI layo' 6 @A %on3layer !"ara! er D%PCE6 :;96 :?C
O
ObLe! & an1 !"ara! er&6 1e&i)nin)6 ?C7:AA6 See al&o Anima in) "e ba&i! !"ara! erM Tran&*ormin) obLe! & in !on!e3 'ali,in) "e )ame3lay6 :=7:> O!!l'&ion6 ?8 O**line )ame&6 :9 Omni li)" 6 :89 Online )ame&6 :9 O3 imi,in)6 ?9 O3 ion&6 !on*i)'rin)6 :;?7:@86 See al&o Con*i)'rin) o3 ion& O' 3' 1e2i!e6 i1en i*yin)6 AA7A@6 See al&o Di&3lay 1e2i!e&M So'n1 1e2i!e& O' 3' 3arame er&6 1e!i1in)6 @?7>96 See al&o Di&3lay ini iali,a ionM Ren1erin) en)ineM Re&ol' ion O' 3' re&ol' ion6 A?
Pa!e6 >@ Pa!7Man6 :=6 =; Paralla< ma33in)6 @9 Pa " *in1in) AI6 :?@7:?= PC D3er&onal !om3' erE )ame6 ::7:86 A> Per*orman!e reB'iremen &6 See Game 3er*orman!e reB'iremen &6 i1en i*yin) Per73i<el !olli&ion 1e e! ion '&in)6 :A? li)" in)6 :89 P"y&i!&7ba&e1 anima ion&6 1e&i)nin)6 :AA7:;8 P"y&i!& !on!e3 &6 :AC7:A@ an)'lar mo ion6 :AC !olli&ion6 :AC *l'i1 1ynami!&6 :A@ *or!e6 :AC iner ia6 :AC linear mo ion6 :AC ri)i1 bo1y 1ynami!&6 :AC &o* bo1y 1ynami!&6 :AC P"y&i!& en)ine6 :A@7:A= )eneral73'r3o&e !om3' in) on )ra3"i!& 3ro!e&&in) 'ni DGPGPUE6 :A= 3"y&i!& 3ro!e&&in) 'ni DPPUE6 :A= P"y&i!& &im'la ion6 :A;7:A= &!ri3 e1 anima ion&6 :A; P"y&i!& 3ro!e&&in) 'ni DPPUE6 :A= P"y&i!& &im'la ion6 :A;7:A= Pi<el &"a1er6 :8; Plane&6 !rea in)6 :9;7:9C
A1% , /*+e4
Pla&ma 1i&3lay 3anel DPDPE6 A; Pla *orm6 See Gamin) 3la *orm Pla *orm7&3e!i*i! )ame reB'iremen &6 A=7A> Player in3' &6 !on*i)'rin)6 :C87:CA Player 2o!ab'lary6 >> PlayS a ion6 A= Poin 1i& an!e be ween obLe! &6 in&er in)6 :9A7:9; Poin *il erin)6 ::> Primi i2e6 :A: Pro*e&&ional 3layer&6 ; Pro*ile6 ;9 Pro)ram men'&6 :@87:@@ Pro)rammin) "e !om3onen &6 :>>7:?= a11in) *'n! ionali y6 :>?7:?C ar i*i!ial in elli)en!e DAIE6 in!or3ora in)6 :?C7:?= 3ro)rammin) "e )ame6 :>?7:?C ool !rea ion6 :>> ProLe! ion ma ri<6 ?=6 :A97:A: ProLe! ion &3a!e6 ?=6 :8? ProLe! ion&6 :8>7:A9 ProLe! ion &3a!e6 :8? S3ri eBa !"6 :8?7:A9 View &3a!e6 :8? -orl1 &3a!e6 :8? Role73layin) )ame DRPGE6 =7> Lo& 91y&&ey6 = Fable Heroe&6 =7>
B
F'an 'm Re1&"i* 6 ; F'e& &6 87A in )ame me!"ani!&6 88 !olle! ion B'e& 6 88 .ill B'e& 6 88 ar)e B'e& 6 88 F'i!.Time 2i1eo *orma 6 >9
8
Ra& eri,a ion6 ?8 Rea!"6 A? 2&( HiDe*6 A?7;9 Rea!" 3ro*ile6 ;9 RealMe1ia 2i1eo *orma 6 >9 Re! an)'lar bo<6 !olli&ion 1e e! ion '&in)6 :A=7:A? Ren1erin) en)ine6 @?7=:6 ?9 AD en)ine&6 @? Dire! In3' 6 =: Dire! Play6 =: Dire! So'n16 =: Dire! #6 @?7=: *rame ra e 2aria ion&6 ?97?: )ra3"i!& 3i3eline6 ?97?8 &!ene "ierar!"y6 ?97?: ReB'iremen & o* )ame6 See Game reB'iremen &6 i1en i*yin) an1 mana)in) Re&i1en E2il6 ::? Re&ol' ion6 =A7=@6 ?8 1i&3lay mo1e&6 =A7=; Ver i!al Syn!"roni,a ion DVSyn!E6 =;7=@ Ri!"ar1 B'rn& Rally6 A: Ri)i1 bo1y 1ynami!&6 :AC
Sa2e )ame *ile6 :?> Sa2e7loa16 mana)in)6 :@@7:=8 &a2e7loa1 UI6 3ro)rammin)6 :@=7:=8 S!alable Ve! or Gra3"i!& DSVGE6 C: S!ene "ierar!"y6 ?97?: S!reen6 AA S!ri3 e1 anima ion&6 :A; S!ri3 e1 e2en &6 >= S"a1er&6 :887:8> Hi)" Le2el S"a1in) Lan)'a)e DHLSLE6 :88 3i<el &"a1er6 :8; '&in)6 :8@ 2er e< &"a1er6 :88 S"oo er )ame&6 C Silen!e !om3re&&ion6 => Silen Hill6 ::? Sim Ci y6 = Sim3le ObLe! A!!e&& Pro o!ol DSOAPE6 ;A Sim&6 T"e6 :;9 Sim'la ion )ame6 = Comba Fli)" Sim'la or A6 =7> Sim Ci y6 = Sin)le 3layer )ame&6 :9 Le)en1 o* Pel1a6 T"e6 :9 Mario an1 Soni!6 :9 Me al Gear Soli1 &erie&6 :9 Sna.e6 ;> Sna.e& an1 La11er&6 8A So* bo1y 1ynami!&6 :AC Soli aire6 ;>6 =; So'n1 1e2i!e&6 AC7A@ a12an a)e&6 A@ 1i&a12an a)e&6 A@ &'rro'n1 &o'n1 &y& em6 A@ S3a!e In2a1er&6 :;9 S3a ial !om3onen &6 @; S3e!i*i! )ame !om3onen &6 1e&i)nin)6 >;7:;C6 See al&o Game*low6 !rea in)M Game & a e&6 o3 imi,in) loo3&6 >C7?C & a e&6 >C7?C S3or &7ba&e1 )ame&6 @7= Ar!" Ri2al& mo!.6 @ C"am3ion&"i3 Mana)er6 @ $ine! S3or &4 Sea&on 86 @ S3ri e anima ion6 ::97::A *il er6 ::= mi3ma36 ::= e<el&6 ::= e< 're ma33in)6 ::= S3ri e *on 6 C; S3ri e&6 C87CA S a e o* .ey&6 1e e! in)6 :CA7:C; S a e o* mo'&e6 1e e! in)6 :CC7:C? S a e& o* )ame&6 1e&i)nin)6 >C7?C
www.it-ebooks.info
/*+e4 , A1?
S a '&6 )ame6 :9 S eerin) w"eel6 A:7A8 S one e< 're6 C@ S oryline6 :C S oryline6 !rea in)6 :C Co'n er S ri.e6 :C 3ar & o* & oryline6 :C !om3le<i y o* "e & oryline6 :C 3'r3o&e o* & ory in "e )ame6 :C S oryline6 :C S'3er Mario Bro&6 :C S reamin) a'1io an1 2i1eo6 =? S ree Fi)" er6 C S ' erin)6 =C S'3er Mario Bro&6 :C S'3er Mario6 ::? 3lane&6 !rea in)6 :9;7:9C 3oin 1i& an!e be ween obLe! &6 in&er in)6 :9A7:9; 3roLe! ion ma ri<6 ?= 3roLe! ion &3a!e6 ?= 2e! or& in #%A6 ?=7?> 2iew ma ri<6 ?@ 2iew &3a!e6 ?@ worl1 ma ri<6 ?@ worl1 &3a!e6 ?@ Tran&mi&&ion Con rol Pro o!ol DTCPE6 ;87;A Tree e< 're6 C@ Trial an1 error6 >= Ty3e o* )ame6 i1en i*yin)6 :97:A )ame & a '&6 :9 m'l i3layer )ame&6 :9 n'mber o* 3layer&6 :97:: o**line )ame&6 :9 online )ame&6 :9 &in)le 3layer )ame&6 :9
T
Tar)e a'1ien!e6 AA6 ;? i1en i*yin)6 A7; !a&'al 3layer&6 ; "ar17!ore 3layer&6 ; in erme1iary 3layer&6 ; 3ro*e&&ional 3layer&6 ; Ta&. mana)emen 6 87A Ta&.&6 in )ame me!"ani!&6 88 Tele2i&ion& an1 moni or&6 1i&3lay 1e2i!e&6 AA7A; AD6 A; liB'i1 !ry& al 1i&3lay DLCDE6 AA 3la&ma 1i&3lay 3anel DPDPE6 A; &!reen6 AA Terrain analy&i&6 :?= Te ri&6 :C6 >@ Te<el&6 ::= Te< 7ba&e1 )ame&6 CA Te< 're *il erin)6 ::> ani&o ro3i! *il erin)6 ::> linear *il erin)6 ::> 3oin *il erin)6 ::> Te< 're ma33in)6 ::= Te< 're1 B'a1rila eral&6 1rawin)6 :AA Te< 're&6 CC7C@ AD ima)e wi "6 CC & one e< 're6 C@ ree e< 're6 C@ T"ir173er&on &"oo er DTPSE )enre6 C T"rill6 87A Tin.er6 8A Tomb Rai1er6 :@ Tool !rea ion6 :>> To'!"&!reen 1e2i!e&6 AA6 AC Tran&*orma ion an1 li)" in)6 ?8 Tran&*ormin) obLe! &6 ?@7:9@ 1e*ormin) obLe! &6 :9A *orm obLe! &6 ?>7:98 .ey*rame in er3ola ion me "o1&6 :9@ .ey*rame in er3ola ion6 mo1i*yin)6 :9C7:9@ ma ri!e& in #%A6 ?@7?= mo2in) obLe! &6 :9A
'
UI layo' 6 @:7@? b' on&6 @>7@? !om3ari&on o* UI !om3onen &6 @C "ea1&7'3 1i&3lay DHUDE6 @=7@> men'&6 @@7@= me a !om3onen &6 @;7@@ &3a ial !om3onen &6 @;7@C UI !om3onen &6 @8 1ie)e i! !om3onen &6 @87@A6 @C non1ie)e i! !om3onen &6 @A6 @C y3e&6 @8 UI elemen &6 @@ U&er 1a a6 !a3 'rin)6 :?> U&er Da a)ram Pro o!ol DUDPE6 ;87;A U&er In er*a!e DUIE6 1e2elo3in)6 ;>6 :;@7:>@ !on*i)'rin) o3 ion&6 :;?7:@8 &a2e7loa16 mana)in)6 :@@7:=8 &ele! in)6 @:7@?6 See al&o UI layo' UI a!!e&& me!"ani&m&6 3ro)rammin)6 :=>7:>A UI !on rol6 3ro)rammin)6 :=>7:>A UI a&&e & a&&e &6 :;= loa1in)6 :;=7:;? mana)in)6 :;@ UI be"a2ior '&in) & a e&6 1e*inin)6 :=A7:== 1i&3lay men'6 :=A 1i&3lay &!reen& '&in) & a e6 :=A UI )ame & a e&6 3ro)rammin)6 :=87:== U&er in er*a!e DUIE6 in !on!e3 'ali,in) "e )ame3lay6 :?789 !"ara! eri& i!&6 89 !'& omi,able6 89 in 'i i2e6 89 rele2an 6 89 re&3on&i2e6 89 '&er *rien1ly6 89 Halo )ame6 :? U&er7in1e<e1 3rimi i2e&6 )enera in) obLe! & wi "6 :A:7:A8
www.it-ebooks.info
A1$ , /*+e4 7
Variable & e3 )ame loo36 ?; Ve! or )ra3"i!&6 C:7C8 Ver e< &"a1er6 :88 Ver i!al Syn!"roni,a ion DVSyn!E6 =;7=@ a1a3 i2e VSyn!6 =@ & ' erin)6 =C earin) e**e! 6 =C Vi1eo !om3re&&ion6 =@7>9 y3e&6 ==7=>6 See al&o 'n1er Com3re&&ion Vi1eo *ile6 !on*i)'rin)6 :C:7:C8 Vi1eo *orma y3e&6 >9 DVD 2i1eo *orma 6 >9 *la&" 2i1eo *orma 6 >9 F'i!.Time 2i1eo *orma 6 >9 RealMe1ia 2i1eo *orma 6 >9 -in1ow& Me1ia 2i1eo *orma 6 >9 View ma ri<6 ?@ View &3a!e6 ?@6 :8? Vi&ibili y6 ?: )ra3"&6 :?= Vi&'al 1e&i)n6 !rea in)6 ;>7@?6 See al&o Gra3"i!& y3e6 &ele! in) elemen &6 C97@: a11i i2e al3"a blen1in)6 C> bi ma3&6 C97C: blen1in)6 C>7C? !on&i1era ion& *or )oo1 2i&'al 1e&i)n6 @97@: AD )eome ry6 C?7@9 li)" in)6 C@7C> 3aralla< ma33in)6 @9 &3ri e *on 6 C; &3ri e&6 C87CA e< 6 CA e< 're&6 CC7C@ 2e! or )ra3"i!&6 C:7C8 Vi&'al "eme an1 !inema i!6 :=
-ay3oin na2i)a ion6 :?= -eb Ser2i!e& De&!ri3 ion Lan)'a)e D-SDLE6 ;A -eb &er2i!e&6 &e in) '36 ;A -i1e Area %e wor. D-A%E6 ;: -ii balan!e boar16 AA -in1ow& Me1ia 2i1eo *orma 6 >9 -in1ow& Me a*ile D-MFE6 C: -orl1 ma ri<6 ?@ -orl1 o* -ar!ra* 6 :9 -orl1 &3a!e6 ?@6 :8?
#bo< A@9 )ame6 ::6 A97A:6 A= !on roller & a e6 1e e! in)6 :C?7:@8 #bo< b' on 3re&&e&6 :C? #%A Framewor.6 ?@7?= 2e! or& in #%A6 ?=7?>
www.it-ebooks.info