StructuringKeyDesignElements,Gamasutra

注册机 5
-Features-"StructuringKeyDesignElements"PrinterFriendly GamaNetworkPresents: StructuringKeyDesignElements ByErikBethkeGamasutraApril11,2003 URL:/features/20030411/bethke_01.shtml Allgamesstartasanidea,somethinglike"Wouldn'titbecooltobeaspacemarineandblowupzombiesonPhobos"or"Wouldn'titbecooltobeapilotinastarfighterinvolvedinanepicstruggletoetheoppressionofastarempiregonebad"or"Wouldn'titbecooltodrivemodifiedstreetcarsonTokyostreetsatnight."Theseideasparksareoftenthesourceoflongconversationsbetweendeveloperslateintothenightatthestudio.Anotherpotentialstartingpointforagameisalicensedproperty;i.e.,"makeaRPG/RTS/actiongameusingXXXlicense."(Fansmaywanttoplaythatlicensespecifically.MajorlicensesincludeStarTrek,StarWars,D&
D,WWE,LordoftheRings,andHarryPotter.) Thisarticlediscusseshowtoturnthestructurethatyourbusinesscontextandyourgameideasprovideintoagameconceptworthyoffleshingoutintoagamedesigndocument. BusinessContextShapesDesign,OrDoesDesignShapeTheBusinessContext?
Firstofall,Iamnotassertingthathavingyourbusinesscontextinhandwillactasamagicaltoolthatwillturnanygameideaintoawell-thought-outgameconcept.Itisonlyanimportantaidtoassesstherequirementsthatyourgameideaisimplying.Somegameideas(suchasthefaithfulrecreationofMiddleEarthwherethewholeworldismodeledwithstrongAI,3Dgraphicscapableofgreatindoorandterrainrendering,whereanunlimitednumberofplayerscanjoinintogetheronbothsidesofepicconflictbetweengoodandevil)cannotbereconciledwiththebusinessparametersoftwoartistsandaprogrammerlookingtobreakintotheindustry,whohavesixmonthsoflivingexpensesavailabletothemontheircollectivecreditcards.ThatMiddleEarthconceptisanexampleofagamethatwilldictatethebusinessparameters.Ifwetakethebusinessparametersoftwoartistsandaprogrammer,theymightwanttorecreateanarcadeclassicontheNintendoGameBoyColororAdvance,useittosecuretheirfirstdeal,andthenmoveontomoreambitiousprojects. Formanygameprojectsthereisamiddlegroundwherethebusinessparametersandthegameideagobackandforthandrefineeachother.Perhapsthedeveloperpitchesamassivelymultiplayergametoapublisherwhoiswaryofthecostsandrisksbehindmassivelymultiplayer.Fromthesetalksitisquitepossiblethedeveloperwillendupcreatingagamethatexploitsa /features/20030411/bethke_pfv.htm(1of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly licensethepublisherhasrightstoandfeaturesamuchmoremodestmultiplayerfeatureset.Thisisnotaneptanceofamediocreplan;ratheritisamaturedevelopmentoftheideaintoaviableconcept.Aviableconceptisagamethatpeoplewithcapitalbelievewillbeseenthroughpletion,withahighprobabilityoffavorablereceptioninthemarkettoetheinheritriskingamemaking. ReconciletheBusinessContextandGameIdeaEarly Thisprocessofrefiningthegameideaandbusinesscontextistheearlieststageofagameproject.Allprojectsreconciletheirbusinesscontextsandthegameideaatsomepoint.Tragically,fortoomanyprojectsthisreconciliationonlyursaftertheprojectmanifestsitselfbyunderperforming,usuallybymissingmilestonedates.Someprojectshaveapainfulreassessmentwhereseniormanagementallocatesmorefundsandgrinsandbearsit.Forotherprojects,seniormanagementinterpretsthislatereconciliationasanunpleasantsurprisepresentedbyanimmaturedevelopmentteamandconsequentlycancelstheproject. Allocatingmorefundsandtimetoaprojectismonurrence,andbecauseitmonplace,toomanydevelopersthinkitdoesnoharmtothemselvesandnosignificantharmtothepublisher.Thatisfallacy;whenapublisherisforcedtospendadditionaldollarsandpushbackthereleaseofthetitle,therearemanynegativeimpacts. Firstofall,thepublishermustextendadditionalmoneytothedeveloper.Thisisanobviouspoint,butitmeansthatthesefundsareunavailabletowardsthedevelopmentofanothertitlewithanotherdeveloperor(worseforthistitle)fundsmaybedrawnfromthemarketingbudgettopayforthisoverage. Thesecondimpactisthatthepublisherhastodelaywhentheywillbeabletostartrecoupingtheirinvestmentandseeaprofitthattheycanputtoworkinfuturegames. Wherethekeydesignelements lieintheproject'slifetime.(Clickimagetoenlarge.) Thethirdproblemisthatthemarketingeffortisdeflatedastheawarenessforthegameisnowilltimed,anditwillbedifficultforthegamecoverthatmarketingwasabletosecureforyourgamelastquartertohaverealvalue18monthslater.Rightorwrong,thedeveloperisthevendorandthepublisheristhecustomer,andtheadagethatthecustomerisalwaysrightholdsfirminthiscase,withthedeveloperbeingtarnishedbythereputationofpoorestimatingcapability. Anotherreasontoavoidgoingbackforextramoneyandtimefromyourpublisheristhatthebusinessdealwillneverimprove.Alossofroyaltypointsmon;sometimesyouwillseeashiftingofintellectualpropertyrights.Intheextremesometimesthedeveloperagreestoanassignmentofequityintheprojecttothepublisher.Inthecaseofshiftingequitytothepublisher,thedeveloperisstronglyadvisedtogetfullvalueforthatequity;nomatterhowsmallanequitystakethepublishertakes,itwillmakeallotherpublishersavoiddoingbusinesswithpromiseddeveloperforfearofaconflictofinterestandconfidentialityconcerns. /features/20030411/bethke_pfv.htm(2of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly Thedeveloperisalsolosingtimebygoingoverhistimebudget,andspendingmoretimeonaprojectwiththebusinessdealworseningisnotagoodgoal. Thefinalreasontoavoidalatereconciliationofthebusinesscontextandgameideaistopreventteammembersfromingdisillusionedandmovingontopany. AtTaldrenwehavereleasedStarfleetCommand,StarfleetCommand:Gold,StarfleetCommand:NeutralZone,StarfleetCommand2:EmpiresatWar,andStarfleetCommand:OrionPiratesinlessthantwoyears.Atthesametimewegatheredmorefansandhavealwaysproducedaprofitforourpublisher.ManyofouremployeesareloyaltoTaldrenbecauseofthesteadypaceofrelease;theyknowtheirworkwillbereleasedandnotwasted. TheEffectsofaSlippedGame
1.Lessworkingcapitalforthepublisher.2.Thetotaladvanceistieduplongerthanexpected.3.Marketingdollarsareoftenwastedasthehypebugleisblowntoosoon.4.Thedeveloper'sreputationalmostalwayssuffers.5.Thebusinessdealneverimprovesforthedeveloper.6.Thedeveloperlosestheopportunitytoworkonothertitles.7.Teammembersareindangerofingdisillusioned,andtheteammayfortableturnover. suffer IonStormhastobethemostinfamousexampleoftheconsequencesforlatereconciliationofthebusinesscontextandthegameidea.IonStormwasfoundedaroundJohnRomero,whoiscreditedwiththedesignofDoom-perhapsthegreatestPCgameever.TheUK-basedEidoswasflushwithcash,andJohnRomeroleftidjustasQuakewasenteringitsfinalstagestowardsrelease.EidosneededtoputthesurpluscapitalfromtheTombRaiderseriestowork,asallbusinessesmustdo.TombRaiderwassoessfulthatEidosneededtogetintoanumberofgames,butdeveloperswerealreadybooked,soEidoswouldneedtogowithalessestablisheddevelopmenthouse.TheideaoftakingadvantageofthedesignerbehindDoomandcreatinganewdevelopmenthouseisnotabadidea;infactitisagoodidea.Experience,abuilt-infanbase,andagreatstoryforthemediawouldcreateanenvironmentthatwouldbeconducivetogamedevelopment,onewouldthink. IonStormwasfoundedwiththevisionstatementthatdesignisking.Eventhisisnotabadidea;treatedproperlythiswouldmeanthatIonStormwouldcapitalizeonitscorestrength-gamedesignembodiedbyJohnRomero--andtakeadvantageofexistinggameengines.LookingathowIonStorminterpretedtheirvisionstatementwouldrevealwhereEidosmadetheirmistake.IonStormusedthevisionstatement,designisking,totreatgamedevelopmentasapureartformandlostrespectforastrongdevelopmentprocess.IonStorm'smarqueeprojectDaikatanasufferedalloftheillsdescribedabove.WholeengineretoolingcausedmassivedelaysandrequiredEidostodoublethealreadyovergenerousadvanceof$13millionto$26milliontokeepIonStorm'sthreeprojectsrolling. Daikatanadidnotjustlosefaceinthegamepress,itbecamethematerialformuchderision,andeventhelocalTexasnewspaperssawthepoormanagementatIonStormasagoodstoryforaseriesofcolumns.IonStormnotonlysufferedcripplingturnover,butsomeemployeeshelpedfeedthenegativepressstormbyleakingtothepressuglyinternalemail.JohnRomerowas /features/20030411/bethke_pfv.htm(3of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly forcedtohandoverpanytoEidos,andtheirgamesshippedtolittleess.IonStorm'sDallasofficehasbeenclosedbyEidostowhatamountstoalargewrite-offofLaraCroftearningsandareputationforEidostoe.InfactthequieterIonStormAustinstudiorunbyWarrenSpector,whichshippedthecriticallylaimedDeusEx,isnowlookingforashinynewnametooperateundertodistancethatstudiofromtheill-fatedDallasstudio. ThesadthingisthatJohnRomeroreallycandesigngames;justplayDoomanydayandyouwillseehowamazingagameitwasandstillis.AndEidosturnedonthecashtosetupthegameforgreatness.Itisjustheartbreaking,really,tothinkaboutthepotentialofIonStormandtoseeitfallforlackofrigorousdevelopmentmethods. Whatcanbeworsethaneitherpumpingmoremoneyintoalateprojectorcancelingaproject?
Shippingit.Itshouldneverbedone,butalmosteverylargepublisherhasshippedagamewellbeforeitwasfinished.Idon'tmeanjustwithbugs;Imeanbeforecriticalpartsofthegameplete. DescenttoUndermountainfromInterplayisaclassicexampleofagamethatwasshippedtooearly.TheideabehindDescenttoUndermountainwastotakeadvantageoftwokeyassetsofInterplay:theAdvancedDungeonsandDragonslicenseandthemega-hitDescent.ManagementatInterplaydecideditwouldbeasnaptoplopdownsomefantasyenvironments,characters,andmonsterstobash.ManagementdecidedtheDescentgameenginewouldbereadyforimmediatedevelopmentintoanothertitle.Mostpublishersdonothaveastrongtechnicaldirectoravailableforcodereview.Yetatthesametimemanypublishersalsonegotiatethetermsofthepublishingdealstoeitherownthesoftwareenginebehindthegameorhavealicensetothesoftwareengine.DescenttoUndermountainwasacasewheretherevenueopportunitywassolargeastopreventanobjectivereviewofwhatitwouldtaketogetthegamedone.Theoriginalbusinessparametersforthistitlecalledforabudgetofonlysixmonthsoffourdevelopers'time.Noestablisheddevelopmenthousewaschosentodothejob;ratheranambitiousindependentcontractorprogrammersteppedup,andvariousartistsatInterplaycontributedtotheproject.Noprojectmanagerwasallocated.LetmesharewithyouwhatGamespotthoughtoftheresultsofthisgameafteritslippedtothreeyearsandsixtimestheoriginalbudget: FromGamespotreviewofDescenttoUndermountain: Butsomewherealongthelinesomethingwenthorriblywrong,andnowgamersareaskingthemselvestwoquestions.Thefirstarosemerelyoutofbefuddlement:HowcouldpanythatproducedFalloutalsoberesponsibleforoneofthelousiestgamesedownthepikeinquiteawhile?
Thesecond,though,addressesamuchmoreseriousissue:WhydidInterplayshipthethingwhenitwasn'tevenclosetobeingthesortofcutting-edgeproductthehypemachinehadledustobelieveitwouldbe?
…There'sprobablynowaytolearntheanswertothefirstquestion,butthankstosomeveryfrankmembersoftheDescenttoUndermountainteam-theanswertothesecondismonknowledge.Thegamewentoutwhenitwasscheduledtogoout(intimeforaChristmasrelease)eventhoughitwasn'tready.That'snotjustmespeculating;that'spreciselywhatamemberoftheDTUteamstatedinarecentposton. Whenaprojectisthreeyearsinthemakingandsixtimestheoriginalbudget,thereistremendouspressuretojustshipthegame.Atthetime,Interplaywasreceivingahugeamount /features/20030411/bethke_pfv.htm(4of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly ofattentionforDescenttoUndermountain;everyonewantedatruly3Ddungeonromp.(DungeonSiege,thefirstreally3Ddungeonrompinggame,andBioWare'sNeverwinterNights,whichisamoredetailed3DimplementationofD&D,weren'treleaseduntil2002.)Interplaythoughtatthetimethatwithallthehype,maybe,justmaybe,theearlysalesinthefirstfewweekswouldbelargeenoughtorecoupasignificantportionofthecosts.ItwasalsoChristmastimewhen40percentormoreofoursalesasanindustryhappen.Interplayhadthreechoices:
1.Shipitnow.2.Canceltheprojectaltogether.(Rememberlostmoneyreallyislost,anditisbestnottochaseit.)
3.FindarealAAAdevelopmenthouseandstartoverwithanewlargebudgetandtwoyearsmoreofdevelopmenttime.(Reallythesamethingascancelingtheproject.) UnfortunatelyforInterplayatthetime,cancelingtheprojectorstartingoverwithanewdeveloperappearedtobemoreexpensivethanshippingthetitle.LetusseewhatGamespotthoughtofthisdecisiontoshipthegame: FromGamespotreviewofDescenttoUndermountain: Thelessontobelearnedshouldbeobvious:Ifyou'regonnaridethehypemachine,you'dbetterdeliverthegoods.Sadly,DTUdoesn'teclose-andtheworstpartisthatsometimeoverthenextyearorsowe'llprobablyseethissamestoryplayedoutalloveragain. Sowhathavewelearnedtoday?
Thatpushingaproductoutthedoorbeforeit'sreadymakesloyalcustomersangry;thatgamedevelopersshouldkeepatleastoneeyeonwhat'sgoingonintermsoftechnologywhenworkingonanewgame;andthatifyoubuyDescenttoUndermountainafterreadingthis,yougetwhatyoudeserve. DescenttoUndermountainshippedinaconditionthatwasfarbelowtheindustrystandardsofthetime,DiabloandQuakeII.Thehypebehindthisgamealsocrushedit.ItisjustpossiblethatifInterplayhaddevelopedthistitlequietly,hard-corefansofAD&Dand/orDescentmighthavebought20,000copiesandbeenpatientforapatchortwo.Iamnotsayingthisisagreatidea,butitisbetterthanahypestorm.Thisisapoorwayofdoingbusiness;thegameindustryshowstimeandtimeagainthatthemega-hitsarejustgamesthatofferstraightforwardgameplaywithstrongproductionvalues.Wackyornichegamesorpoorcraftsmanshiparenotrewarded.Justmakeafewqualitytitlesandyouwillspendalotlessmoneyindevelopment,andyourindividualtitleswillhavemorecapitaltoworkwith. DescenttoUndermountainwasaperfectcasewherethegameideaandthebusinessparameterswereinconflict.IfInterplaywantedatitleinsixmonthsandhadonlyamodestbudgettoplishitwith,thenInterplayshouldmissionedthedevelopersofDescent,Parallax,tocreateacoolexpansionpackforDescentandtheyshouldhavecontentedthemselveswiththesalesofanexpansionpack.PerhapsitwasperceivedthatwithDescentIIalreadyindevelopmentatthetime,itwouldhavepetingforsales.TheotheroptionwasforInterplaytoallocatethefundstheyweretolaterplowintoStonekeepIIandhiredevelopertocreatea3Ddungeonrompofquality.StonekeepIIwouldlatergointoproductionforfiveyearsandthenbe /features/20030411/bethke_pfv.htm(5of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly cancelled.Youmustcreateagamethatpatiblewithyourbusinesscontextorfail. MethodsandtheUnifiedDevelopmentProcess Microsoft,themostessfulsoftwareanizationonthe,sellsalotofgames.MicrosoftisperhapsbestknownforitsFlightSimulatorfranchise,butMSnowownsEnsemble(AgeofEmpiresfranchise),Bungie(HaloandMyth,formerlythepremierMacintoshdevelopmenthouse),FASAInteractive,andDigitalAnvil(theformerChrispanyworkingonFreelancer),aswellasbeingthepublisherforahostofexternallydevelopedtitlessuchasDungeonSiege.Microsoftisaanizationwithmanylayersofdevelopmentproceduresthatotherpublishersdonotemploy.ThefirstthingMicrosoftdoeswhenevaluatingadeveloperistosendasmallteamofgamedevelopmentprisedofproduction,design,programming,andarttoevaluatethestrengthoftheteam.Alargepartofthisevaluationistoalsoevaluatethedeveloper'smethodstodetermineiftheypatiblewithMicrosoft'sandifthesemethodsgiveMicrosoftconfidencethatthedeveloperhasthoughtthroughtheirprojectandwilldeliveragreatgame,onbudgetandontime.DevelopmentmethodsmustbegoodthingsjudgingbyMicrosoft'sess. WhatIsaDevelopmentMethod?
meth·odnoun-Ameansormannerofprocedure,especiallyaregularandsystematicwayofplishingsomething. Wedowantsystematicgamedevelopment;thiswholebookisdedicatedtothepresentationofvariousgamedevelopmentmethods.Systematicandrepeatablemethodsallowustoretainwhatworkedandimproveuponwhatdidnotworkwell.Thealternativetousingamethodisemployingadhoctechniquesoverandoveragainandbeingessfulonlybygoodfortune.Iratherliketomakemyownluck,thankyouverymuch.Thefirstmethodweneedtonaildownishowtoreconcileyourgameideaandbusinessparameters.IadvocateusingfortablesubsetoftheUnifiedSoftwareDevelopmentProcessdevelopedbythethreeamigosIvarJacobson,GradyBooch,andJamesRumbaugh. WhyUsetheUnifiedSoftwareDevelopmentProcess?
ThesimplereasonisthattheUnifiedProcessisquicklyingthesoftwareindustrystandard.TheUnifiedProcesshasalonglegacydatingbacktoatleast1967;atthistimeIvarJacobsonworkedforthegiantEricsson.Jacobsonhadaradicalideaforthedesignofthenextgenerationtelephoneswitchingequipmentatthetime,amethodwewouldnowponentbaseddevelopment.ForthisprojectEricssonmodeledthewholeswitchsystemandsubsystemsasinterconnectedblocks.Therelationshipsbetweentheseblockswasthenarticulatedandrevised.Thedynamicprocessesoftheswitchwereidentifiedandmodeled.Everymessagepassingbackandforthfromeachobjectwasincludedinthismodel.Thissoftwarearchitectureandobjectpilationwasprobablythebesttechnicaldesigndocumentofthetime.Thiswasaradicalconceptbecausesoftwarecustomersatthetimewerenotustomedtoseeingablueprintofthesoftwarebeforethesoftwareengineeringbegan.Thismethodwasnotchosenonawhim;ratheritmetthedemandthatthesoftwareberobustenoughforthetelephoneswitchingequipmenttoremainoperatingwhilereceivingupgradesandpatchestotheponentsoftheswitchinreal-time. /features/20030411/bethke_pfv.htm(6of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly IwillskipthemiddlepartofthehistorybehindtheUnifiedProcess;thepointisthat35yearsagoarepeatablemethodofcreatinggreatsoftwarewasdeveloped,anddespitethis,mostanizationshaveweakmethodology. TheUnifiedModelingLanguageisthestandardizedtextandvisuallanguageforthearticulationofsoftwaredesignsupportingtheUnifiedProcess.BeyondthedevelopmentofIvarJacobson,GradyBooch,andJamesRumbaugh,UMLenjoyedbroadsupportandpaniessuchasIBM,HP,andMicrosoftjoinedinthedevelopmentandstandardizationofUML. RequirementsCapture Thepurposeofasoftwaredevelopmentprocessistotaketheuser'srequirementsandtransformthemintoafunctionalsoftwaresystem.Thattransformstageiswhatwegamedevelopersaredoingwhenwemakegames.Wetakethevisionofthegameplay-howitshouldplay-andturnthatintoafinishedgame. JARGON:Requirementscapture-articulatingtherequirementsthefunctionalsoftwaremustsatisfy,suchastobefunortorunat30framespersecond. Whatisthefirststepinthedevelopmentprocess?
Figuringoutwhatwearesupposedtodo.Thereisaneatformalizedtermforthis:requirementscapture.Requirementscaptureissomethingyouhavealreadystarted.Yourbusinessconstraintsaresomeoftherequirementsthesoftwaremustsatisfy.Howdowemethodicallydiscovertherestofourgame'srequirements?
Theshortansweristhatthereisnoquick,magicalmethodtositdownandwriteupinasinglesittingalloftherequirementsyourgamemustfulfill.Wait,don'tgoaway,Iamstillgoingtoshowyouhowtodoit;itjustinvolvesseveraliterativesteps. Theroleofadevelopmentprocess.(Clickimagetoenlarge.) UseCases First,ifyouhavenotalreadydonethis,writedownyourgameideaonasinglesheetofpaper.Writetwoorthreesentencesthatdescribeyourgameinthecenterofthepieceofpaper.Nowinnoparticularorderwritedownthemajorfunctionalityofthegameinanoutward,radialmannerfromthegameideainthecenter.Thelarger,chunkieraspectsofthegameshouldbeclosetothecenterandthedetailedideasfartheraway.Forexampleifyouaredesigningarole-playinggame,youhavecharacters;writethatdown.Charactershavestats;writethatdown.Charactershavenames;creatingthecharacters'namesisafeature.Whatyouaredoingisbrainstormingthegrossfeaturesetofyourgame.Thisparticularmethodofputtingthegameideadownatthecenterofthepageisgoodtogetyoustartedifyouhavenotputalotofeffortintoyourgamedesigndocumentyet.Theimmediategoalistoidentifyallofthecoreactivitiestheplayercanperforminyourgame.Eachofthesecoreactivitiesposedofmanyindividualactionsthe /features/20030411/bethke_pfv.htm(7of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly playerperforms.EachoftheseactionsiscalledausecaseintheUnifiedModelingLanguage. Brainstormingfeatures.(Clickimagetoenlarge.)JARGON:Usecase-aninteractionbetweenanactorandthesoftwaresystem.Afullyarticulatedusecaseposedofbothtextdescribingasequenceofactionsandagraphicaldiagramshowingtherelationshipofthisparticularusecasewithothersinthesystem.Collectingtheseusecasesandwritingthemdownwilldriveourprocesstoidentifytherequirementsofoursoftware.Thesoftwarerequirementswillthenhelpusdevelopthearchitectureforoursoftware.Theusecasesrepresentfunction,andthearchitecturerepresentsform.TheUnifiedProcessiscalledusecasedrivenbecauseitistheefforttocaptureourusecasesthatdrivesthedevelopment.Allofourfutureeffortsintheconstructionofoursoftwarearetofurthertherealizationoftheseusecasesintoafunctioningsoftwaresystem.Now,whatexactlydoesausecaselooklike?
Asimpleusecasediagramfeaturingtheuseofan automatictellermachine.(Clickimagetoenlarge.) /features/20030411/bethke_pfv.htm(8of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly ItturnsoutoneofthefundamentaltenantsofUMListhatthelanguageshallbeextensible,flexible,andultimatelyserveonlytoaidtheprocessofdistillingmunicatingthesystemrequirements.ThisATMtransactiondiagramusesonlythreeUMLsymbols:theovalusecase,thestickfigureactor,andtherelationshipline.Thestickfigureiscalledanactor.Actorsrepresentedbyastickfigurearemostoftenusersofyoursoftware,orplayersofyourgame,whoareinteractingwiththegame.Itisbettertousetheabstractterm"actor"soyouwillseealloftheexternalusersofyourgamesystemsuchasthesingle-playerplayer,themultiplayerplayer,thesystemadministrator,andthedatabaseserverofyourponent.Afteridentifyingyouractors,theusecaseswillflowrapidly.Theusecasesaretheuniqueinteractionsbetweentheactorsandthesoftwaresystem(game).Theusecasesarerepresentedbyasimpleovalwithanactiveverbphrasesuchas"withdrawcash"or"analyzerisk." JARGON:Anactorisauser,eitherhumanoranotherexternalsystem,thatisinteractingwiththesystemunderanalysis. JARGON:Arelationshipisalinedrawnbetweenactorsandusecases,sometimeswithextranotationthatfurtherdescribesthetypeofrelationship,suchas<>and<>. Thelevelofarticulatedrigorinadiagramshouldbereasonablyproportionaltoyourneeds.Forexample,ifitisimportanttodescribetherelationshiplineinbetterdetail,useaone-worddescriptorbetweenthelessthanandgreaterthansymbols.Commonexamplesaretherelationshipdescriptorof<>,<>,whereextendsmunicatethataparticularusecaseisreallyaspecialcaseofasimplerbaseusecase,anduseswouldindicatethataparticularusecaseemploysanotherusecaseaspartofitsaction. DisplaySystemDisplaymazeDisplaycharactersandtheiranimationDisplayscoreDisplayhighscoreDisplaycreditsViewmovie(Ms.Pac-Man) TheusecasesofPac-Manthatarerelatedtodisplayingand viewing.(Clickimagetoenlarge.) /features/20030411/bethke_pfv.htm(9of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendlyPlayerInputInsertcoinPushcoinreturnChoosesingleplayerormultiplayerMoveup,down,left,orright TheusecasesofPac-Manrelatedtoplayerinput.(Clickimagetoenlarge.) GameObjectInteractionWallcollisionEatdotEatpower-updotEatfruitEatghost,sendghosttocenterofboxPac-Mandies ThegameobjectinteractionusecasesofPac-Man. (Clickimagetoenlarge.) /features/20030411/bethke_pfv.htm(10of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly MiscellaneousReceiveextramanEnterinitials MiscellaneoususecasesofPacMan. (Clickimagetoenlarge.) Wecanalsotakeahigher-levelviewofPac-Manbinetheselow-levelusecasediagramsintoageneralizedusecaseviewofthesoftwarepackageasawhole.Seethediagramtotheright. seeonlyfourroles:aprogrammerforthe2Ddisplaysystem,aprogrammerforthegamemechanics,anartist,andsomeaudio.Thisofcourseisaverysmallgame,andasolidPac-Manclonecouldhappeninsideaweekendforatwo-tofour-personteam. Thisprocessofunderstandinghowsomethingelsewasputtogetherhasafancyname-reverseengineering.Ihighlyencourageyoutoperformsomereverseengineeringonothergamesthatyouarefamiliarwith.Wecontinuewithsomesketchesfromothergames. CaseStudies MiscellaneoususecasesofPac-Man. (Clickimagetoenlarge.) ItisnowtimetoapplythesetoolstomoderngamesthatareofplexitythanPac-Man.Eachofthefollowingtwogames,DiabloandGranTurismo3,hasenjoyedlegendarymarketplaceess,andeachhasspawnedalucrativefranchiseofsequels,expansions,andlicensedproducts.Istheremonthreadbetweenthesegames?
Didthedevelopersineachcasejustgetlucky,orwerethedevelopersjustextraordinarilybrilliant?
Ihonestlydonotknowhowmuchluckwasinvolved,butsomeonewithalotofintelligence,skill,andtimehonedthesetwogameconceptsintoproductionplansthathaveeededfarbeyondtheindustrystandard.Icanshowyoutheeleganceinthedesignofthesegames,illustratinghow,lookingback,theseweremegahitsfromtheirconception. CaseStudy1:Diablo Diabloisputerrole-playinggameforthePCdevelopedbyBlizzardNorth,originallyanindependentdeveloperofanothernameboughtbyBlizzardduringthedevelopmentofDiablo.Diablofeaturedthekillingofhordesofmonsterslikeskeletons,wanderingaroundinadungeon,gatheringgold,andcollectingmagicitemsallinthequesttovanquishultimateevil-all /features/20030411/bethke_pfv.htm(11of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly straightforwardfunstuff.ThekeyconceptbehindDiablowastomaketheuserinterfacepriority#1,notthestory,notthesizeofthegame,notthenumberofdifferentcharactertypes,notcustomizedcharacterappearance,notarichrole-playinggamemechanicsset;no,thefocuswastheuserinterface.Indeed,themousecontrolswereastunningleft-clickonmonsterstoattack,left-clickoncheststoopen,andright-clicktocastaspell.Theinterfaceitselfwasappealingtolookatwithlargeglassspheresthatheldblueandredliquidsrepresentingremaininglifeandmana(energytocastspells). ShortlyIwillmorecarefullybreakdowntheusecasesofDiablo;butthereisatremendousamountofcourageandinsightbehindtheuserinterfacedesignofDiablo.Inthesummerof1995Iwasuplateonenightwithabunchofothergamedeveloperstalkingaboutgameswecouldmake.IrememberwesuggestedjustasimplevariantofGauntlet,thearcadeclassicwhereyoujustwentaroundbashingmonsters,collectinggold,andpoweringup.Irememberhowwealllaughedatthetimeandsaidtherewasnowayitcouldbeviable.Nopublisherwouldseethegameasfeature-richenoughtofund.Perhapsasabitofottenshareware,butnowayitcouldbemercialgame.AtthattimeRPGssuchasBethesda'sElderScrollsserieswerevastworldswithhundredsofNPCs,dozenofcities,hundredsoflocations,actualweather,andtimeofday.Imaginemakingagamethatleftoutallofthesefeaturesandjustconcentratedonatightinterfaceandhighproductionvalues-thatwasDiablo. UseCasesofDiablo Diabloisasimplegame,apolishedgamewithstrongproductionvaluessuchassuperbvoiceoversandmovies,butwewillseethatDiabloisasimplegamebehindthefeatures.Iwillcoverthemajorfeaturesandelementsofthegame;Idonotproposetocreateanexhausivereversedesigndocument. DisplaySystemTerrain:Drawfloors.Terrain:Drawisometricwalls.Terrain:Colorcyclingspecialeffectsforwaterandlava(tilesdonotanimate).Terrain:Ghostwallswhenacharacterislocatedbehindthewall.Characters:Renderandanimatecharacters(2Dposedfrom3Drenderedmodels).GameObjects:Coloredoutlinesforinteractiveobjectssuchastreasurechests,magicalrings,monsters,andnon-playercharactersinthetowncenter.SpellEffects:Displayanyoneofacoupleofdozenspelleffectswithdazzlinganimationsandcoolsoundeffects.Menus:Displaymenuchoices.Movies:Displaytheintroandexitmoviestotheplayer.Audio:Hearsoundeffects.Audio:Hearmusic. /features/20030411/bethke_pfv.htm(12of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly Audio:Hearvoice-overs. TheviewrelatedusecasesofDiablo.(Clickimagetoenlarge.) GameObjectInteractionMovePlayerCharacter:Left-clicktomovetheplayercharacter.Left-clickObjectInteraction:Interprettheleft-clickonanobjectautomaticallybyobjecttypetomeanopenachest,attackanenemy,ormovetheplayertoalocationasabove.LoadLevel:Whentheplayerdirectstheircharacterintospecialtriggerareasonamaplevel,loadthetargetmaplevel.Right-clickObjectInteraction:Ifthecharacterhasaspellboundtotheirrangedaction,castaspellatthislocationonthemaporonthischaracter(thiscouldbeeitheranoffensivespellonanenemyoranaidspellonanally).Otherwiseifthischaracterhasabow,fireanarrowatthecharacterindicated. ThegameobjectinteractionusecasesofDiablo. (Clickimagetoenlarge.) CharacterManagementNameCharacter:Smallfeatureforusercustomizationtoallowtheplayertobondwiththeircharacter.ViewCharacterStats:Viewattributes,health,experiencepoints.AllocateCharacterAttributeGrowthPoints:Whenthecharacterachievesthenextexperienceallowtheplayertochoosewheretheywantthegrowthpointstobeallocated,choosingfromstrength,dexterity,intelligence,andconstitution.Inventory:Displaythecharacter'sinventoryina"paper-doll"fashionwithsocketsforthebackpack,belt,helmet,hands,pants,boots,andtuniclocations.Inventory:Allowtheplayertoshuffleobjectsaboutintheirbackpackto"makeroom"fornewtreasureandtoabandonlessertreasureinfavorofhigherprizedtreasure.Validatetheplacementofinventoryitemsbasedontheirtype.Forexample,healingpotionscanbecarriedinthebackpackorinthebeltpouchbutnotinthehelmetslot. ThecharactertransactionusecasesofDiablo. (Clickimagetoenlarge.) /features/20030411/bethke_pfv.htm(13of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly QuickAnalysisoftheUseCasesofDiablo LookingovertheusecasesofDiabloyouwillnoticethatIhavepartitionedDiablointothreesubsystems:DisplaySystem,GameObjects,andCharacterManagement.Belowisashortdiscussionofthesesystems. TheaggregateusecasesofDiablo. Thedisplaysystemisjusta2Disometricenginethatiscapableofrenderinganimating2Dsprites(quiteprobablyusedforboththecharactersandthespelleffects).Thisgraphicstechnologywashardlygroundbreakingin1997;isometricengineshavebeenaroundsinceQ-bertinthearcade.Thegamealsousesa256-colorpaletteincidentally.ThereisnoquestionthatthegraphicsinDiablolookstrong;theartdirectionwasstrongandledtoaconsistentlookthatwasforebodingandwellsupportedthethemeofthegame. Touchingoncharactermanagementforamoment,thedisplaysystemiscalledupontoalsorendermenussuchasthemenusofthetownshopkeeperswhohavestayedbehindafterthearrivalofdemonicforcestomakeaprofitsellingadventuringgeartotheplayer'scharacterandtheinventory,spell,andcharactermanagementmenus.Theseagainarejustmenus,displayingcustomizedfonts,buttons,icons,andcoolnegativespacetextures. Thecharactersinthegameanimatewellduetotheaggressiveuseof3Drenderingtoproducethe2Dframesfromwhichpositethe2Dsprites.Thistechnologyisnotneweither;ourexamplePac-Manusesjustafewframesfromopenmouthtoclosedmouthtoanimateourhero,andtheWingCommanderseriesusedanarrayofimages(abouteighttosixteenindividualimages)fromallanglesaroundthestarfightertoproduceits"3D"starfightergame.TheplanforDiablowastoagainuseestablishedtechnologybuttakeittoaqualitylevelneverbeforeseeningamesbyusingover5,000framesofanimationforjustthethreemainprotagonistcharacters.Thisdedicationtovisualfidelityrepresentsalotofconfidenceinstayingwithestablishedtechnologybuttakingittoaveryhighlevelofquality.IknowofanothergameIwillnotmentionbynamethatbecameseverelydistractedwiththepursuitofvolumetricallyprojectedpixels,knownasvoxels,fortherenderingandanimationoftheircharacters.Thisdistractionhelpedtocripplethistitle. Thegameobjectinteractionsystemrunstheheartofthegame.Thisisagameofhackandslashandlootgathering.Thecontextofthishack-and-slashhassomethingtodowithacrystalin /features/20030411/bethke_pfv.htm(14of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly somebody'shead,demonsfromhell,abutcher,anddeadtownsfolk-plentyofmotivationtokeepourplayercharacterhackingawayatthemonstersinthegame.Thegameobjectinteractionhandlesbat,spellcasting,openingdoorsandchests,triggeringtraps,andlevelchanges.Noticethatmyusecasesabovedonothaveanydetailonbat,spellcasting,ortheopeningofdoorsandchestsworks.Thosearedetailedusecasesthatwouldbecoveredinthedesigndocument;thisarticleisfocusingonthekeydesignelementsofthegameintheefforttobesurewehavethecorrectscopeforourgame. MyuseofUML'susecasenotationhasbeenpurposelyslimwiththeuseofjustthesimpletableformatofmajoruserinteractionsandafewdiagramstoshowtherelationshipoftheseinteractionswitheachother. CaseStudy2:GranTurismo TheGranTurismoseriesforthePlayStationandPlayStation2platformspublishedbySonyisallaboutracingcars.Everyconceivablesubgenreofracinghasbeenexploredovertheyearsaswellasmanysequelsofferingthelatesttechnicalwizardryforthemesalreadyvisited.RacingcarshavebeenastapleofvideogamessincethedaysoftheAtari2600withNightDriver,wheretheroadandterrainareasolidfieldofblackdemarkedthoughtfullywithsomemagentalanemarkers.NighttimeracinghascontinuedtoevolvetoTokyoStreetRaceronthePS2andProjectGothamontheXbox.Racinggamesdeliveranexperiencethatalmosteveryonewantstodo-racecars.Somewanttoraceatnight,someoffroad,somewanttoracetaxis,somewanttorunoverpedestrians,buthey,thereisaracinggameforeveryone. WhatisitaboutGranTurismothatmakesitamega-hit?
Wasitluck?
Wasitalargebudget?
OrwastheresomesortofplanninganddirectionbehindGranTurismo?
Iampresentingacaseforthoughtfulplanning. GranTurismo's(GT)visionstatementwasmostlikelysomethinglike"Thebestracingsimulatoronanyplatform."Tobackupthatvisionstatementweneedtolookintowhatitwouldmeantobethe"bestracingsimulator."ThebestissopassinginitssuperlativethatSonysetouttodominateallotherracinggames.Hmm,thatisatallorder.ThefirststepistopickthetypeofracingSonywouldmodel.Intheend,Sonychosetomodelavarietyofracingfromrawamateurracingofminivanstoworld-classeventsfeaturingmillion-dollarracingmachinesachievingthehighestformofautomotiveengineering. So,atfirstglanceitwouldappearthatSonyviolatedthedesignguidelineoffocusingononegameandatightsetoffeaturesanddoingthemwell.However,ifwetakealookathowtheypresentedthesevariousclassesofracingtotheplayer,wewillseethatitwasaseamlesspresentationofgameplayfromthelowliestofminivanstotheSuzukiEscudo. WhenyouloadupthesimulationmodeofGranTurismoforthefirsttime(itdoesn'tmatterwhichversion),youaregivenasmallamountofcreditstopurchaseyourfirstracecar.Takingalookatthevariouscarmanufacturers,theplayerhasonlyacoupleofchoicesinthebeginningofthegame.Afterspendingallhiscash,theplayerthensetsouttoracesomebeginnerracestobuildupasupplyofcashsohecanmodifyhiscar.ThecarmodificationgameplayisthehiddenweaponofGranTurismo.Hereplayerscanoglenewtires,polishedports,oversizedturbos,andahostofothermodificationstotheircar.Theexhaustimprovementconvenientlyenoughhasthehighestbangforthebuckandwillmostlikelybethefirstpurchaseforanyplayer.Heretheplayerbonds /features/20030411/bethke_pfv.htm(15of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly withhiscar,andallthecoolpartsavailabledrivetheplayertogobacktothetrackandkeepracing.Thiscontextfortheracingpelling.Itisthesameinventory/partygrowthdynamicfromarole-playinggamelikeDiablo-apellingfeature. Thisracingaroundatrackandmodifyingthecargoesonandonthroughoutthewholegame.Whatchangesaretheevents,thetracks,petition,andmostimportantly,thecartheplayerisracing.GranTurismofeatureshundredsofcars,dozensoftracks,andscoresofevents.TheeventsareclassifiedintolicensesfromBeginnertoInternationalA.Playerscanalwaysfindaraceandalmostalwayscanearnsomecashtomakeforwardprogressonacquiringnewgoodiesfortheircar.Thiscarmodificationmeta-gameiswhattiesallofGranTurismotogetherandpresentstotheplayeraworldwheretheycanstartwithamodestreal-worldcar,andthroughracing,modifications,andlicensingtheytoocanbeaninternationalracecardriver.ThisisthebrilliantvisionbehindGranTurismo--itslowlybuildsuptothesupercars,andallalongthewaytheplayerishookedandbelievesintheworldandknowswhyheisplayingthisgame. LaterintheseriesGranTurismoaddedrallyracing.Thisadditionalmodeofracingwasalsoseamlesslyintegratedintothecoregame.Indeed,theplayer'srallyracingcarsjustneededtochangethetirestoracingslicksandtheywouldoftendowellinthepavementevents.Inclassicarcadefashion,newtrackswouldonlyberevealedtotheplayerpletingaracingseriesoralicensingprogram.TherallyeventsinthelaterGTseriesupheldthattraditionwiththeirownsetofrallytrackstounveil.theGranTurismoseriesisthegreatestoftheracinggamesbecauseitfullydeliveredonthegameplaythatiscentraltoracingandtakesplayersfromknowingnothingaboutracingcarstobeingabletocarryonanextendedconversationaboutgearratiosandcoilovers. IjustifiedGranTurismo'sesswithoutevermentioningthatthegamehasalwaysboastedthemostrealisticphysicsmodelforitsracing,themosteousgraphics,andpleteauralexperiencesecondtonone.Allofthesetechnicalfeaturesareofcoursecriticallyimportanttoanelectronicgame;however,itisthekeyfeaturesofagamethatwillleadtoessandenabletheprojecttofullyrealizetheeffortsofthewholegamedevelopmentteam. UseCasesofGranTurismo CarDrivingControlsPresstheGasPedalUsetheNormalBrakesTurntheCarLeftorRightShifttheGearsUporDownUsetheEmergencyBrakes TheplayerinputusecasesofGranTurismo3. (Clickimagetoenlarge.) /features/20030411/bethke_pfv.htm(16of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly DisplayandAudioSystemRendertheTrack,Terrain,andSkyRendertheCarsRendertheSpecialEffectsPlaySoundEffectandMusic ThedisplayandaudiousecasesofGranTurismo3. (Clickimagetoenlarge.) ShellActivityMenusessBuyCaressGarageessWashCar/OilChangeessRaceCaressModifyCaressLicensingTests TheshellmenuusecasesofGranTurismo3. (Clickimagetoenlarge.) ModifyCarBrowseMajorSystems:Engine,Transmission,Aerodynamics,etc.ReviewIndividualItem:Readthestatsofthisitemandseehowitwouldlookonthecarifitisanexternaladd-onorwhatthechangetoweightandpowerwouldbeifitisaperformanceitem.PurchaseItem:Buythespecifiedupgradepart.InstallItem:Havethenewlypurchaseditem.Thisespeciallymakessenseforthepurchaseoftires;itisusefultotheplayertobeabletochoosefromasuiteoftires. ThemodifycarusecasesofGranTurismo3. (Clickimagetoenlarge.) QuickAnalysisoftheUseCasesofGranTurismo Again,thisarticleisnotdiscussinghowpleteadetaileddesigndocument,soIhaveonlycoveredthehigher-levelfunctionsofGranTurismo.Butintwoareas,drivingthecarand /features/20030411/bethke_pfv.htm(17of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly modifyingthecar,Idrilleddowntotheindividualinteractiveactivitiestheplayerhastoplaywith.Drivingthecarandmodifyingthecaristhegame;everythingelseisincontextofthesetwoactivities. TheusecasesofGranTurismo3fromfivemilesup. (Clickimagetoenlarge.) GranTurismoisessfullargelyduetoaclearvisionandplanforthegame.Itwasperfectlydesignedtocapturethelargestsegmentofthemarketwhowouldenjoyracinggames.InfactmyfatherandhisbestfriendwentoutandpurchasedPlayStationsafterplayingGranTurismo1atmyhouseandwentonpetewithactualcashprizesforvirtualdrivingseasons.Thesetwomenintheover-50demographicwerenothard-coregamers;theyweremass-marketconsumerswhoboughtthePlayStationjusttoplayGranTurismo.Thatisatruehit. TheKeyDesignElementsofYourGame IamsureyouarefortablewiththislightintroductiontoUMLusecases.Theyarehardlymorethanatableofactionsandasimpleposedofastickfigureandbubblesofaction.NowIwantyoutothinkabouttheinteractionsofyourgameandwritedownitsusecases. Themethodicalwayofdiscoveringyourusecasesistofocusonthecoreactivityofyourgameandwritedownallthethingstheplayerdoesinthecoreofyourgame.Workyourwayoutward,writingdowntheotheractivitiesyouhaveplannedforyourgame,suchasbuyinggear,buildingahouse,researchingflamethrowers,learninganewspell.Keepworkingoutwarduntilyoucan'tthinkofanythingyoumissed.Atthisstagewearelookingforthemajoractivities,sodon'tthinkabouthowmanybuttonsthesavemenuwillhave,justwhatarethebiginteractionsbetweentheplayerandthegame. ThensorttheseactivitiesintogroupsbasedonsimilarfunctionalityasIhavedonewithDiabloandGranTurismo.Finallysketchouttheusecasepletewiththeplayeractorandyourusecases.Itisusefultocreatediagramsforeachgroupofactivity.Youhavenowarticulatedyourgameplayinbothaneasy-to-readtextformatandgraphicalformat.Theseusecaseswillbethebasisofrefinementforthegamedesignandtechnicaldesignstages.However,inthisarticlewearelookingforkeydesignelements.Examineyourgroupsofactivitiesandlookhardforasetofactivitiesthatstandoutaspotentiallyunnecessarytothecoreofyourgame.Aretherepartsofyourgamedesignthataredistractingplexity?
Arethesepartsonlyfuntoahard-coresetoffans?
Arethesefeatureshiddenfromthenoviceplayer?
Cantheybecutaltogether?
/features/20030411/bethke_pfv.htm(18of24)[5/21/20035:53:42PM] Gamasutra-Features-"StructuringKeyDesignElements"PrinterFriendly Takealookatyourdesign;areyousureyouareonlymakingonegame?
Ithinkalotoftheprojectsthatslipbyyearsmakethemistakeoftryingtofoldmorethanonegameintoasinglegameproject.Youdonotneedtomakemorethanonegametopetitive.Justmakeasmallsetoffeaturesthatareinherentlyfun,makethosetight,andtaketheproductionvaluesashighaspossible.Thisishowahitismade. TheBattleoftheCounterterroristsGames TherearetwogamesthatneatlymakethepointIamdiscussinginthisarticle,nailingtherightkeydesignelements.ThesetwogamesareRainbowSixandCounter-Strike.Bothofthesegamesfeaturespecialoperationstypeprotagonistsworkingasateamtodefeatterroristsandothermoderndaybadguys.Anexperienceddevelopmentteamproducedoneofthesegameswithafulldevelopmentstaffforanestablishedpublisher.Theothergamewasdevelopedprincipallybytwofanswhohavehadexperiencemakingmodswithmodestfinancialbackingofadevelopmenthouse. BothofthesegamesareessesandIwouldbeproudtohavebeenateammemberinanycapacityoneitherofthesetwoprojects.Thatbeingsaid,Counter-StrikeclobberedRainbowSix.Counter-Strikeisthemodproducedbyasmallstaffoffansworkingpart-time,whileRainbowSixisafullgamewithmanyman-yearsofeffort.Ifgamedevelopmentissohard,howcouldthesefanshavedonesoparedtothepros?
Whilepoortechnicalexecutionwillnevermakeahitgame,theanswertothisquestionliesagaininthekeydesignelementsofCounter-StrikeversusRainbowSix. TheKeyDesignElementsofRainbowSix RainbowSixwastheearlierofthetwogames;tosomedegreethiscanneverbeaparison,astheCounter-StrikemodteamhadRainbowSixavailabletoexperimentwithandtorefine.RainbowSixwasdesignedforsingle-playerplay,andwhil

标签: #隐藏文件 #文件 #文件 #代码 #文件 #文件 #引线 #中文