Home >Documents >Iterative Development

Iterative Development

Date post:24-Feb-2016
View:49 times
Download:0 times
Share this document with a friend
Iterative Development. Simon Sherr & Mark Turmell. Internal Use Only. Agenda. Iterative Development Feature/Sandbox Trap Accessibility Core Designing for Accessibility and Iteration Building from Core. Goals. - PowerPoint PPT Presentation

Slide 1

Iterative Development

Internal Use OnlySimon Sherr & Mark Turmell1AgendaIterative DevelopmentFeature/Sandbox TrapAccessibilityCoreDesigning for Accessibility and IterationBuilding from Core2GoalsTo establish a core football Engine that can be utilized to build any football gameMadden, NCAA, Madden Wii, NewIPConsole, PCPrepare for direct to consumer, membership model.ModularGillettes LawEstablish a pipeline that would allow outsourcing all production asset variety creation (including gameplay animation).Eliminate the COSTLY Crunch/Relax dev cycle.Gillettes law applied to Madden sell it modularly, e.g. buy each team you want to play with (who wants the Redskins other than guys like me?), a player you want to add to your roster, play now, online franchise (full of modular little nuggets people will pay for, people who wont spend 60 bucks on a sports game). 3Game Engine DefinedGame engines provide a suite of visual development tools in addition to reusable software components*Unreal is an engine (but not the right one for us)Army of TwoMirrors EdgeBatmanTNA iMPACTGears of WarAdventure PinballNerf Arena BlastANT is only an engine, when it is used as one.This was a requirement when ANT was created (work as an animation module or a gameplay engine)NHL, FightNight4, Facebreaker, NBA Street, Def Jam Icon, FIFA Street, MMA, SSX, Battlefield Bad Company all use the ANT Stateflow/Wireframe/Base-Kit Engine to build the game from the core out.FIFA uses the engine to some extent but is on their own with action layerNBA Live is doing a re-write to use the ANT Stateflow engineFootball uses a hybrid of Gamecode, ANT as an animation module, and Emotion2

* Wikipedia: Game Engine, Overview SectionANT can function as an animation module for games that already have an engine, or can function AS the gameplay engine. Using ANT as the engine, allows more sharing (in both directions).

In the ANT Stateflow Engine AI interfaces with the game the same way a user does Gamestates (Single line of communication greatly reduces bugs and makes debugging easier).4How we used to build features

Challenges: Pre-Production PhaseProduction/Designer bottlenecks trying to paper design.Poor design docsRarely reflect final design.Lack sufficient detail.Difficult for SEs to do accurate time estimates.

How we used to build features

Challenges: Production PhaseWasted time and $$ in mocap throwaway.Wasted time and effort in code and animation throwaway.Lots of hacking SEs and Animators.Difficult to keep accurate/current schedule.Everything depends on gameplay, and gameplay is often the last to come in.Fun can come very late or not at all.

The Prototype Approach

Tech Design Documentation: Sample Info

Stateflow diagram of game systemUser Inputs for stateflow triggersPlayer ratings for stateflow triggers Animation info:start posestart position (2-man)end posetotal length (frames)branch pointstrajectoryz-translationAdvantages: Pre-Production PhaseFirst step involves communication and collaboration (ownership).Rarely any need for mocap (you are using placeholder animations).Building features with least animations possible results in no coverage holes.Proves fun early.Results in truly excellent technical design docs.

The Feature Prototype Approach

Advantages: Production PhaseMocap shoots in this phase are now way more efficient.Easier to code more effectively with predefined specs.Animators can do amazing things when their boundaries are clearly defined.DDs can build more accurate schedules and better identify risks and dependencies.You actually can throw people at the problem during Population phase.

A different approach to Year/Year?Proof of Concept10Pre-proProductionFinal505060ProductionTuningMostly Outsourced?5-12?TimelinesBudgetingStaffing

Quality KnownTimelinesBudgetingStaffing

Investment Options:Cut?Shelf?XBLA?$29.99?$49.99?

Quality Known

100 Staff Months~$1M Investment/Risk


720 Staff Months+Art+FE+Other~$10M Investment

Vertical Slice FEATURE COMPLETE!Proof of ConceptPrototype5-121-3OldNewYou cant make a baby with 9 women and 1 month. But you might be able to make 10 babies with 10 women in 9 months. Certain things (like design discovery and finding the fun, do just take time, scheduling discovery is difficult the solution is you just put your best people, with the best track records, on discovery and trust they will get there as soon as anyone could).13The Iterative Development Model

This is how we establish a true direct to consumer model, where new features can be rolled out in intervals as they are complete, in order to develop this way we need to re-think the structure of how we build games. Production in this slide = repetative mass production of assets (player heads, uniforms, tackle animations, catch animations (in an ideal model like Marks)).14AdvantagesNo one stops workingFar less throw-away workFeatures in production have functional and tuned prototypes BEFORE ASSET POPULATION!No Crunch-Relax-Crunch-Relax cycleFar less overtimeFar less burn-outWhen people are less burned you get less bugsProduction can be Scheduled and Budgeted!More conducive to a membership or Direct to consumer modelFeatures can be rolled out as they are doneFeatures are proven well before they go AlphaLess risk in taking risks = innovation and quality.In production you CAN THROW MONEY at the problem (or pull money away if you decide its enough).15AgendaIterative Development DefinedFeature/Sandbox TrapAccessibilityCoreDesigning for Accessibility and IterationBuilding from CoreWhy would it be so much harder to take the current football game and do this?16The Features TrapFor 20 years we have been building gameplay based on a feature list.In Sports, this list is most often extrapolated from analyzing the real sport.I saw a guy spin in a football game the other day It was awesomeOnce we have built all or most of these features, we then try to piece them together in a sensible manner.This is not really game design at all.Its a sandbox not a designed structure or systemOnce serious playtesting begins, usually post-alpha, we then begin to discover holes in the system. spinning has no purpose at allPatching these holes often requires new features, adding unwanted risk and chaos late in the project.This can be prevented by prototyping and building balanced, closed-loop systems in pre-production.This starts with the Core.Gameplay MechanicsGameplay Mechanics are actions that a User can perform.Gameplay is NOT just a combination of mechanics

RunHurdleJukeSpinBlockFumbleCelebrateSprintTightropeTruckGameplay MechanicsFootballGameplay is not a combination of mechanics18The Features TrapRunTauntJuke ??????SackTacklePassQB VisionTackleScreenBlockCelebrateThrowCatchBreakoutGameplay SystemGameplay Mechanics combine together create a Gameplay SystemSimple Run Vs. Tackle SystemRunTackledJukeSpinDownScoreNetwork of Gameplay Mechanics and Gameplay Systems make up the Game as a wholeGame*NOTE: This is not an actual game. It is gibberish.LocomotionShootDunkShot BlockJumpoff DunkAlleyoopDunk BlockTurboTrickCounter Punk BallinboundShoveHeave ShotCounter Punk BodyJumpoff CounterCounter StealPunkSteal BobbleTake StealPoke StealFake StealFake PunkStealBlock AlleyoopJumpoff BlockTrick Point EarnedGbreaker EarnedGbreaker TriggeredFake ShoveCounter ShoveLight ShoveStrong ShoveShove BehindGB Jumpoff DunkGBreakerGB TrickGB PunkGB Punk Counter BallGB DunkGB PassGB Punk Counter BodyGB RewardTHIS IS NOT AN ACTUAL DESIGN (stress its nonsense)21AgendaIterative Development DefinedFeature/Sandbox TrapAccessibilityCoreDesigning for Accessibility and IterationBuilding from CoreWhy We GamePracticing survival instinctsA chemical reward for practicing survival skills (this is what FUN is!!!)I want to improve this survival skill.Competition of survival instinctsCompetition instincts to prove I am a better mate than YOU I am better at this survival skill than that guy, dont you want me now?.Escape from personal physical limitations or social societal limitations.I want to be a heroI want to be an athleteI want to be strongI want to kill peopleI need to destroy somethingSocial interactionPracticing = Casual/Mass Market, Competition = Hard Core Gamer23AccessibilityIts about access not blockingThis is not turning off mechanics in easy modeNo system should change as difficulty increasesNo system should suddenly become available as difficulty increasesProgression is about getting TO the depth not changing how you play.A casual gamer will go just as deep into systems as a hard core gamer.A casual gamer will stop playing if frustrated.A casual gamer will not beat a game in 6 hours and return it.If a game is worth returning, its not worth beatingRespecting the Casual Gamer!Casual Gamers play to PLAY, not to winWinning is a side effect, its a feedback loopfinishing a game is not where casual gamers stopCasual gamers will invest far more time in ONE titleAnd will return to that title for yearsCasual gamers will learn depth, and will become very skilled at the games they like to playCasual gamers will not play frustrating games, its not that important to them to finishKids play games like casual gamers play gamesDont want steep learning curvesWill not play if frustratedWill not play if easy is too hardDifficulty should be optional, gradual increases in challenge based on learned or mastered skills.They are NOT stupid, they are NOT unskilled they just have different goals.Fun rather than accomplishment, winning, unlocking achievements or game modes

AgendaIterative Development DefinedFeature/Sandbox TrapAccessibilityCoreDesigning for Accessibility and IterationBuilding from CoreCore SystemYour Core System is the gameplay system a new User will learn first and the one they will use the most.

Improvements and innovati

Popular Tags:

Click here to load reader

Embed Size (px)