510 likes | 610 Vues
Technical preproduction (for a new IP). Stefan Posthuma Technical Director Electronic Arts Canada. 1984. 1998. 1998 - AI programmer 1999 - Lead programmer 2003 - Systems Architect 2004 - Product Manager 2005 - CTO Sports 2007 - TD, new IP. Can`t spend any money!. Multi-million seller!.
E N D
Technical preproduction(for a new IP) Stefan Posthuma Technical Director Electronic Arts Canada
1998 - AI programmer1999 - Lead programmer2003 - Systems Architect2004 - Product Manager2005 - CTO Sports2007 - TD, new IP
Can`t spend any money! Multi-million seller! New team! New technology! 100% new IP! AAA title!
To do list • Early prototype • Pick technology • Set up infrastructure • More prototyping • (Survive all exec reviews)
Early prototyping • Goals: • Prove core game features • Experiment with the IP • Establish the rules • (survive first exec review)
How? Improvise!
Use what is at hand • Readily available • Easy to use • In working order • Local knowledge of the system • Somewhat genre specific • Doesn’t have to be pretty!
Align expectations • Prototype just to prove core game play • Not VTAR by any stretch of the imagination • Use deliberately low-fi models and textures • All work done should be considered throw-away • Knowledge gained far outweighs any code written
Review time... • Clear explanation of what the rules are • No VTAR, not on target platform, etc. • Get creative • Multiplayer mode to mimic AI • Went over well, got point across • Survived first exec review!
Pick technology • AAA title, 30 months to ship • Forget about writing your own engine • Need existing solution • Something that will be competitive 2 years from now
Shopping list • Genre specific • Scalable and extensible • Needs to compete late in console life cycle • Provide mature asset pipeline • Rapid prototyping needed! • Data driven run-time • Engineers can focus on infrastructure while designers build prototypes
Options • In-house • Luxury of large company, lots of choices • Godfather, Harry Potter, Battlefield, Medal of Honour, Skate, Need for Speed, the list goes on • 3rd party • A few obvious contenders • Unreal • Gamebryo • Others...
Narrow it down • Spent about a week looking at high level specifications of available engines • Applied criteria in shopping list • Ended up with 2 contenders
Taking a very, very close look • Make first contact with the provider • Talk about evaluation licensing if applicable • Explain intentions • Get a copy of the technology and have engineers take a look • Give it a good poking and prodding • Build a test level or example • Get it running • Try to modify some assets • Play with the editor and pipeline • And so on
Get up close and personal • Go visit the provider • Easy when internal • Not so easy perhaps when they are busy • 3rd parties like to visit you • Or...find someone friendly who is using the technology and visit them instead • That is what we did
Planning your visit • Take it very seriously • Expensive • Need to get the most of it • Have a detailed evaluation plan • Clear expectations of outcome • Send the right people and take your time! • 1 week with 4-5 people minimum • Make a detailed itinerary • Day to day schedule for every participant
Remember to socialize • Having beers with the team is incredibly valuable
Kick the tires • Bring some assets along, try to pull them through the pipe • Build very simple prototypes • Get a feel for the main workflows • Take copious notes
Make a report card • List the major areas of the engine and rate them on how well they apply to the project • Put them side by side and compare • Use this to help pick a winner
Decision time... • Scalability and long term potential were big factors • We picked the more risky engine because of this • It was written from the ground up for NG • Architected for multi-core systems • Very scalable • Highly data driven
Meanwhile... • A small team continued prototyping using the previous engine • This so production and design could continue their work
Learning • Document! • A team Wiki where learning was documented • Careful on boarding of new team members using the Wiki • They improved it as they used it • Process • Code Collaborator • Excellent learning tool • Knowledge sharing big part of team culture • Put it in people’s objectives • Nobody is an expert, regardless of seniority
Re-implement • Duplicate original award-winning prototype • Bring over existing assets • Uncover a few things we missed
The animation system... • Needed to do major upgrade of animation system • Physics was handled with interface that we could ‘simply implement’ • Assumptions were made... • Physics layer took order of magnitude longer to implement • Seriously impeded game feature implementation
How did we fix this? • Collaboration! • Visited engine tech provider to come up with a plan • Worked closely with animation technology provider (internal group) • People from the 3 teams working together on-site • Hard push to come to a solution • We now have ground breaking animation technology in our game
Review time again In the middle of the animation crisis!
Showing a hybrid • Two demos: • Critical animation features in animation prototyping tool • Game play features in new game engine • Survived another review!
Moving on... • Prototyping vs. Feature building VS
Agile to the rescue • Scrums focus on specific features • More importantly the term ‘technical debt’ exists! • Clearly defined quality of implementation • First look, Functional, Presentable, Shippable • Put this on every user story • This helped align expectations • Agile also helps with daily communication and sharing progress with the team • Scotty and Kirk at peace once again
Infrastructure • Don’t forget about this! • Provide basic technical infrastructure early on • Build system • Deployment system • Stability and ‘always on’ were top priorities • Production always able to play the game • Wandering execs can get ad-hoc demos • Content providers always productive
Keeping in touch • Remember those beers you had with the people who wrote your engine? • Foster those relationships • Join forums, know the right people, keep in touch • For us, EA team so mutual show and tell is possible • Both sides stoked about each other’s work
Progress! • Animation physics problems solved • All critical features now living happily together • Team velocity really picking up • Survived another review!
The team • Keep it small, resist the urge to grow! • Can’t spend any money remember? • Get the most senior people with broad experience • Time to roll up those sleeves and jump in wherever it is necessary • Agile helps, scrum teams are peer based • Don’t forget about team building and culture • Just as important as the game
What lies ahead • When will we be production ready? • Some simple tools • Questions to ask
Lightweight review • Find a friendly TD or other senior technical person • Have them go around the team, asking questions • No documents, long sessions or other painful things • Focus on technical risks, things that may have been overlooked • Write up a summary, discuss, action • Very helpful!
Workflows • Content providers need to be 110% efficient • Examine workflows in detail • Start with behavioural – who does what, in what order and why? • Drill down into physical – too many button presses? Asset export too slow? • Not production ready until all issues have been addressed
Be honest • Capacity • No ‘To Be Hired’ bodies on the schedule! • Technical risk • Usual suspects (frame rate, budgets) • Specific game feature related • Forward looking • What will online feature set look like in 2011? • Post ship technology demands
TD’s clipboard • Checklist • Risks assessed, communicated, mitigated • Capacity agreed on • Core feature set prototyped and functional • Scope, scope, scope • All asset pipelines functional and mass production ready • Scalable from 1 off example to 300 needed for ship • Metrics!
Summary • Prototype like MacGyver • One goal: prove core game features • Invest in technology evaluation • Dive as deep as you can • Balance prototyping vs game building • Introduce the Technical Debt concept • Be ready for reviews and demos • Always on, have the infrastructure to support this • Ask the right questions • Ready to go into production?