10/13/20101Hardware Matters – Multiplatform Game DevelopmentBrian ApgarTechnical DirectorBuzz Monkey SoftwareGame Development Is Hard!z Technically difficultShdl &t flitzSchedule pressure & team conflictsz But... it's challenging workz It's creativez It's always changingA d it CS th th di i lizAnd it uses more CS than any other discipline I've come across...10/13/20102Aside #1 – Relevant CSz Obviously graphics & AIData structures & algorithmszData structures & algorithmsz Computer architecturez Compilersz Operating SystemszMultithreadingzMultithreadingz Networkingz Even databases!How Do I Get In?z What do I look for in entry-level candidates?S lid CS b k dzSolid CS background z Solid C++ knowledgez Problem solving ability, and quick learningz Working with a team in a meaningful wayCitiithi−Communications with non-engineersz Passion for games10/13/20103Passion For Games?z How do you judge THAT?Ntj t“I l LOT”zNot just “I play games a LOT”z Demo is great (obviously) z Awareness of issues in game development is good, too (although harder to see) zThat's what we're talking about todayzThat s what we re talking about today...Aside #2 – How The Industry WorksPblihConsoleRtilESRBPublisherConsole ManufacturerLicense HolderRetailerWAL-MARTSonyNintendoMicrosoftEAMicrosoftActivisionUniversalDeveloperWarner Bros.SonyUniversalEAMicrosoftBuzz Monkey10/13/20104Aside #3 – Critical Issuesz Performance!F t b d titizFeature creep based on competitionz Memory footprintz Load timesz Performance!Back To The Technical Side...z So you're working on a game, and the publisher says it has to be multi-platformsays it has to be multiplatform...z Why would they do that?z What does that mean to an engineer?10/13/20105How Do Platforms Differ?z High-end versus low-end PCsD ti diff i CPU GPU−Dramatic differences in CPU, GPU, memoryz PC versus consolesz Console differencesz Bigger differencesMulti-core−Multi-core− Shadersz Input systems (keyboard/mouse, controller, Wiimote, Kinect, PSMove, etc)Lowest Common Denominatorz Approach generally doesn't work.Plithhihdh d tt t k−People with high-end hardware want to take advantage of it...z Enabling features based on hardware− Common in PC gamesz Means that the code support needs to be ttlltipresent at all times.z What about consoles?10/13/20106More Low-Level Hardware Differencesz Cache. Both d-cache and i-cache.Hi hdPCh28MB L2h−High-end PC has 2-8MB L2 cache.− PS2 has 16kB data & 8kB instruction− PS3 has 32kB data & 32kB instruction (PPU) z Bus bandwidth− Bus contention becomes a big deal as resources become biggerz Fill-rateWhat Can We Do About It?z Different content per-platformBi i−Business issue− Development time− Team sizesz Tool pipeline to massage data into platform-specific formatsz Algorithms that can scale − AI?− Physics?z Performance / memory tradeoffs10/13/20107What We Can Do, Part 2z Abstraction layersPerformance issues?−Performance issues?z C++ versus C code− Performance issues?z Data planes− Effect on cache− Effect on code & maintenanceConclusion, Sort Of...z Design code for flexibility and performance at all levelslevels.z Yes, that's really hard.Any questions about this or game developmentAny questions, about this, or game development in
View Full Document