520 likes | 607 Views
Game Development and the Research Community How might they overlap?. Larry Mellon PADS, 2003. Game Research Areas: Broad Topic…. Spans many domains Complexity & scope growing quickly Survey approach Problem space Current work “Next steps” needed Heavy Q&A emphasis Focus on key areas.
E N D
Game Development and theResearch Community How might they overlap? Larry Mellon PADS, 2003
Game Research Areas:Broad Topic… • Spans many domains • Complexity & scope growing quickly • Survey approach • Problem space • Current work • “Next steps” needed • Heavy Q&A emphasis • Focus on key areas
Game Business Overview • Market size / scope / direction • What drives game developers • Research funding issues
Key Factors in Game Development • Types of games, technology overview • Driving requirements • Performance • Implementation
Technology & Issues • Current technology & problems • Graphics/ AI / simulation /… • Emerging problems • Development complexity • Team size, rapid design shifts • Application complexity • Internet / Scale / Features • Game play complexity • Community / storytelling / …
Wrapup • Who is doing what • Resources
Why Listen To Me? • Ex-University bum (University of Calgary) • Jade Simulations: TimeWarp, Sim++, network modeling, … • SAIC (DARPA&DMSO): DIS&ADS, HLA&RTI, … • Interest management, predictive contracts • Remote controller / cluster computing • Game development: three years+ • SAIC: internal R&D • Orcus: ASP (2000) • EA: TSO (time synch, distributed sim, automated testing) / Sims2 (agile programming) • I control no funding…
Outline 45 minutes Background • Market Growth: size / direction / complexity • Types of games and key technologies Research Opportunities • Complex problems important to success of current & future games Wrapup • Who is doing what already • Other resources 3 min break 2+ hours 15 min break 3 min break ½ hour Time
Game Industry: Background • Market size • $9B+ per year • Bigger than Hollywood box office… • Strong growth • Console: coming soon, theatre quality graphics • PC: less growth • Online: highly desirable subscription model • Wireless (projection): 0 to 125M players in 6 years • “Interactive entertainment”: all of the above, together
Game Industry: Direction • “Interactive entertainment” • Fusion of AI / graphics / movies / reality • Immersive experiences • Rich, dynamic stories & characters • Online: useful “accident of fate” • Meta-verse emerging out of PSWs • Right place, right time… • Korea: useful indicator • Gaming and society
Getting Research Money • Tricky… • NSF / NSERC: gaming not “serious” • Game Companies • Tend to be restrictive • Publishing • Data flow out of company • Little pure research • Upsides • Good recruiting tool • Rapidly becoming a serious field, ala “Talking Pictures” • Many new problems being encountered by developers
Game Industry: Building Software • Rapid, frequent design shifts • Speed over quality / cost • Development & performance • Visual quality (delta, not absolute) • Little software reuse • Severe resource constraints • CPU / memory / GPU / bandwidth • Mass market considerations • “Sponge” Application…
Console vs PC • Cyclic behaviour for best performance • Consoles: much larger game base • PCs: patchable, more CPU, networkable, more RAM, … • Consoles: becoming PCs…
Driving Requirements • Time to market (development speed) • Flexibility • Game direction shifts implementation path, again, and again, and again… • Performance • Realtime / Min Spec • “Playability” == FPS, simulator & network lag • Validation / Reliability • Online gaming: big focus • SPG: less so
Application Types • RTS (RealTime Strategy) • Age of Empires • … • Fast twitch • First-Person Shooter (Quake / Counterstrike / SplinterCell) • Sports • Fighters • Adventure / Quest • Baldur’s Gate / Bond • Puzzle • Alice / Myst • Wireless • Snake / Battleship • MMP / persistent Ultima Online / EverQuest / The Sims Online
Underlying Technology • Simulation / AI • Graphics • ‘Fun’ • Cinematography / Presentation • Agile programming • Online • Comp sci: networking, cluster computing, time management • Social sci: relationships / player_bonding • “Smoke and Mirrors”: key tools…
Technology Challenges • What solutions are on the ground now • What is becoming problematic
All Games • Performance • Graphics: CPU hog, complex worlds • AI: need intelligence, but realtime • Resource constraints (“Min Spec”) • CPU / RAM / disk / CD: all limited • Raid development & shifting requirements • Early prototype & early visualization • Esthetics & content explosion • Multi-player of some sort • More complex storytelling
Internet • Scale (more later in MMP) • Latency (fair fight / fast twitch) • Quality & customer support (flaky internet, “griefers”, flaky servers) • Constant extensions • Normal games: rarely even patch • Here, constant releases & fixes
Persistent State Worlds • PSW == MMORG == MMP • Social bonding / community forming • Running communities (self governing) • Cluster computing • Load balancing • Network optimizations
“Fast Twitch” FPS / Sports / Fighters / Driving • Solo & Team AI • Networked • Latency • Fair fight (latency) • Fair fight (Cheaters)
Graphics • Real time, on Min Spec • Animations: generation / reuse • Photo Realism now a given • Next up: • Immersion • Cinematography • Hardware: GPU, T&L, more • Polygon count & texture memory go up • CPU requirements drop considerably…
Visuals • Auto-pilots for “movie camera” to find best / dramatic shots in RT (or offline) • Animation (generation, sequencing, skeletal, editing, …)
Visuals • Content generation (esp 3D) • Variant generation, map laydown, fractals, … • Otherwise, nice cheap algorthims become expensive, cranky artists that want food & sleep & $$
Software Engineering • Faster Construction • Data driven content • Object-based patterns • Asset management • Optimizing performance on N axis • Rapid prototyping, agile programming • Scale of application complexity & team size • Example:Automated Testing
Startup & Control Collection & Analysis Repeatable, Sync’ed Test Inputs System Under Test System Under Test System Under Test Python Scriptable Playsessions NullView Client Python Email/DB/Web Automation Phases & Tools
Impact On Others
Pre-Checkin Regression: don’t let broken code into Mainline.
Resource Debugging Data Load Testing Team Metrics Client Metrics Load Control Rig Test Test Test Test Test Test Test Test Test Client Client Client Client Client Client Client Client Client Test Driver CPU Test Driver CPU Test Driver CPU Game Traffic Internal System Server Cluster Probes Monitors
Single, Data Driven Test Client Load Regression Reusable Scripts & Data Single API Test Client
Data Driven Test Client “Testing feature correctness” “Testing system performance” Load Regression Reusable Scripts & Data Single API Test Client Single API Key Game States Pass/Fail Responsiveness Configurable Logs & Metrics
Test Client Game Client Test Control Game GUI State State Commands Presentation Layer Client-Side Game Logic Test Client == Game Client
Chat Enter Lot Use Object Route Avatar … Gameplay: Semantic Abstractions Basic gameplay changes less frequently than UI or protocol implementations. NullView Client View ~ ¾ Presentation Layer Logic ~ ¼
Scriptable User Play Sessions • SimScript • Set of Presentation Layer “primitives” • Synchronization: wait_until, remote_command • State probes: arbitrary game state • Test Scripts: Specific / ordered inputs • Single user play session • Multiple user play session
Scriptable User Play Sessions • Scriptable play sessions: big win • Load: tunable based on actual play • Regression: constantly repeat hundreds of play sessions, validating correctness • Development: repeatable ‘live’ input • P_Layer events logged as SimScript • Recorder (GUI) / Monitor (Remote)
Research On Game Playing • Socialogical / cultural • Obsessive playing • Emotive / therapeutic / educational (how can allure of games be used to affect some non-entertainment purpose) • Give examples of (online) • Suicide / marriage • Korean dating
Story Telling • Interactive • Canned • Emergent
Interactive AI • RTS / multi-level modeling • Pathfinding • Opponent AI: any type of game • Team AI • Interactive behaviours • Freeplay • Scripted stories • Emotion • “Killer App” for human-level AI? (John Laird)
AI Component Problems (Laird) • Fast response • RT environment sensing • Seamless interaction (both sides) • Route planning • Tactics vs strategies • Low development costs • Low CPU cost • Realism (human-like opponents) • Tactical decision making • SOAR quake bot • 3 Meg, 10% of 400Mhz CPU
Security • One of the driving costs • Hackers galore • Unhappy, paying, customers • The usual DoS • Exploits to steal / harass (seams in the world’s logic and/or implmentation)
Customer Satisfaction • The driving cost in a subscription business • Client uptime / server uptime • Lag • Hackers / griefers • Graphics • Constant new content
Interest Management • Pregenerated (BSP trees) • Network oriented (more down than up) • Variable data resolution • Not the driving cost
Clustering / Load Balancing • Sharing the load across servers • “Fair play”, dynamic migration • Not the driving cost
Time Management • Mostly RT: Tick / wallclock • Local proxies • Discrete event not used much (yet)
Data Distribution • Wireless, bband, MMP, FPS, … • Channels, etc