Course Organization CISC 877 Video Game Development Week 1: Introduction

T.C. Nicholas Graham [email protected] http://equis.cs.queensu.ca/wiki/index.php/CISC_877 Winter term, 2010 equis: engineering interactive systems

Topics include… Timeline and Marking Scheme

 Video game design  Gaminggp platforms and fundamental technolo gies Activity Due Date Grade January 26,  Game development processes and pipeline Project Proposal (2-3 pages, hand-in) 10% 2010  Software architecture of video games Progress Presentation (involves Mar 2, 2010 20%  Video games as distributed systems presentation and online report)  Game physics Informal progress reports Weekly 5%  GAIGame AI April 6, 2010  Scripting languages Final Project Presentation / Show 10% (tentative)  Game development tools Final Project Report April 9, 2010 45%  Social and ethical aspects of video games Class Participation 10%  User in terf aces of gam es

equis: engineering interactive systems equis: engineering interactive systems Homework

 Project proposal (for next week)  Wiki contains detailed description of project ideas, game you will be extending The Project  Proposal to be posted on Wiki – create yourself an account  Form your own project groups – pick project appropriate to group size  OGRE tutorials (over next two weeks)  …see Wiki for details  Download URL:  http://equis.cs.queensu.ca/~graham/cisc877/soft/

equis: engineering interactive systems equis: engineering interactive systems

The Game: Life is a Village The Game: Life is a Village

 Goal is to build an interesting village  Travel world to find resource nodes  Drop off villager who starts gathering nodes  Spend resources to construct buildings  Scales to player’s fitness  Initial nodes easy to get to  For more advanced resources , must go further, into harder terrain  Intended to be played over long time  Cooperation  Exploration

equis: engineering interactive systems equis: engineering interactive systems Project Ideas Project Ideas

 Multi-player play: Life is a Village is currently a single-person  Mounts: Players can chase after mounts (e.g., horse, unicorn, game. Change it to allow multiple players to interact. Each player giant spider). If the player catches the mount, they can jump on top should have their own villaggge and villagers. of it,,g gainin g benefits such as increased s peed.  Zones: The game currently takes place in one relatively small  Level of detail AI: Modify the AI manager to allocate time to AI terrain. Change it to allow any number of such terrains to be linked, entities consistently with their importance in the game – part of with some mechanism of transitioning from one zone to another. scaling to very large scenes or networked play. ZihthdilldiffttlZones might have radically different styles - e.g., dtdesert,  Physics: Currently, the world has rather strange physical moonscape, etc. You can use the EQUIS Terrain Generation tools properties. Collision detection: Physical objects such as buildings to generate zones for experimentation. and trees are currently blocked off so that players cannot enter  Persistence: The game currently terminates when the player exits . them. These rules should be relaxed, e. g., so that a player can When the player returns, the game starts afresh. Change the game jump off a mountain and land on the roof of a building. It should be to be a persistent world, where the game keeps running even if the possible to charge towards a ramp, and fly into the air in a player is not there, allowing the player to rejoin the world in physically realistic fashion. This work is best done with the Open progress. Persistence should be compatible with multi-player play. Dynamics Engine.

equis: engineering interactive systems equis: engineering interactive systems

Why Study Game Development?

 Games have become an important medium, ranking with television, movies, books Why Study Video Games?  Game development is a fascinating problem  Brings together many disciplines: artists, computer scientists, writers, actors , musicians  Video games are an emerging artistic medium  In computer science, combines the hard problems of graphics, artificial intelligence , database, distributed systems, human-computer interaction, computer-supported cooperative work, software architecture, quality assurance, project management

equis: engineering interactive systems equis: engineering interactive systems Games as an Important Medium Canada in Game Development

 Money  Largest Game Development Studio World-Wide  World wide video game sales were $24.5 billion in 2004  Larger than Hollywood’s box office take  Electronic Arts, Vancouver  Demographics  Second Largest Game Development Studio World-  Average age of gamers: 30  43% female Wide  Average hours played: ~75hrs/week7.5 hrs/week  Ubisoft, Montreal, > 1, 500 employees  22 hrs/week for MMORPG players  Effect on Real Life  Most popular modeling tools  About 50% of MMORPG players consider themselves to be  Maya (Alias, Toronto), XSI (SoftImage, Montreal), 3ds Max addic te d (Discreet, Montreal)  Virtual property is the cause of real-life crime, even murder  40% of MMORPG players feel that their online friends are  Most popular animation tool comparable to or even better than their real life friends  Motion Builder (Alias, Montreal)  Lawsuits allege video games lead to antisocial behaviour

 Sources: Entertainment Software Association, Daedalus Project, Business Week Online, BBC News

equis: engineering interactive systems equis: engineering interactive systems

Platforms for Gaming

 Consoles  PC’ s Platforms for Gaming  Portable Game Devices  Mobile Devices

equis: engineering interactive systems equis: engineering interactive systems Consoles Consoles: 360

 Released November 22,  Typical life cycle: 5 years 2005; CDN $199+  3 x 3.2 GHz dual core  Cutting-edge on introduction; behind the curve PowerPC processor on retirement  1 VMX-128 vector unit per core  Typically difficult to program – games improve  1 MB L2 Cache in quality over console’s life as developers  Custom ATI R500-based Graphics Processor improve tools  HD Resolution up to 1920x 1080 (16: 9, vs  Current generation of consoles normal 4:3 TV)  512 MB 700 MHz GDDR3  RAM  PlayStation 3  Up to 4 wireless game controllers  Wii  802.11A/B/G Ethernet Photo c////o http://www.xbox.com  Optional 20+ GB HD Source: http://en.wikipedia.org/wiki/Xbox_360

equis: engineering interactive systems equis: engineering interactive systems

Consoles: PlayStation 3 Consoles: Nintendo Wii

 Released December 2006  Released November  Sales price: $299+ 2006  3. 2 GHz Cell Processor  7 SPE’s – 128 bit SIMD  C$CCost: $269 CDN RISC processor  802.11B/G wireless via  connected by 10 GBps bus Nintendo hotspots  1 PPE as controller  Controller – simplified  2.3 MB SRAM (512 KB L2 design (TV remote), Cache, 1.79 MB per SPE)  C“Custom “Reality Synthesizer ” positional sensing Graphics Processor  6 DoF Accelerometer (NVIDIA/)  IR-based pointing  Resolution: up to 1920x1080 (1020p)  512 MB RAM  3 Gbps Ethernet ports,  ATI “Hollywood” GPU 802.11G, Bluetooth 2.0  No HD support  Up to 7 Bluetooth controllers Source: http://en.wikipedia.org/wiki/Playstation_3 Source: http://en.wikipedia.org/wiki/Nintendo_Revolution

equis: engineering interactive systems equis: engineering interactive systems Consoles: Programming Consoles: Development

 Two consoles introduced significantly different programming architectures  Proprietary software development kit available  6 cores in Xbox 360 for Windows PCs  7 cores in PlayStation 3  Develop, debug on PC  Extensive vector processing capabilities  Difficultyyg of finding this much parallelism in games  Cross-compile to console  Obvious candidate: AI  E.g., XNA for Xbox 360  Difficulty of concurrent processing  In Xbox 360,,y GPU and CPU share memory  Developers do not necessarily make it easy to  Will certainly take developers 5 year span of consoles’ life cycle to port to other consoles learn how to develop for new consoles  Battle for which console is “native” implementation, as it will be better than ported ones  Will be particularly interesting with new architectures

equis: engineering interactive systems equis: engineering interactive systems

Consoles: Software Delivery PC’s

 Typically CD/DVD/Blu-ray delivery  Enormous variety of hardware platforms  OS  Traditionally consoles have no/small HD,  Wind ows, M acOS , Linux games played directly from DVD  Windows PC’s have open hardware/software environments  Imppppypglies no opportunity for patching  Video card , CPU, memory differ in capability by orders of  Compare to PC games where patches routinely magnitude  Different versions of DirectX, video card drivers cause delivered after release, reqqyuire download by enormous difficulties with QA  Compare to consoles which offer completely uniform players environment  E.g., Battlefield 1942: patch to version 1.6.19 is  Tendency of new games to support higher-end PC’s 267 MB  E.g ., recommended system for Civilization 4:  3.2 GHz Pentium, 256 MB Video Card  Requires rock-solid software engineering, QA  Drive hardware sales processes  Limit games to serious hobbyists

equis: engineering interactive systems equis: engineering interactive systems Portable Game Devices PlayStation Portable

 Handheld devices for gaming  170x74x23 mm  Extension into other entertainment areas –  480x272 pppyixel display movies, MP3’s  222 MHz dual core MIPS32R2 CPU  EgE.g.  32 MB RAM  PlayStation Portable  Graphics chip: 166 MHz,  Nintendo DS 2MBRAM2 MB RAM  802.11B Wireless networking

Source: http://en. wikipedia. org/wiki/PlayStation_ Portable

equis: engineering interactive systems equis: engineering interactive systems

Nintendo DS Nintendo DS

 Dual screen  Dual screen allows  Upper screen is out put- innovative game design only  Over 10 million units  Lower screen offers sold so far touch-sensitive input  Microphone input  Wireless hotspots

Source: http://en.wikipedia.org/wiki/Nintendo_DS

equis: engineering interactive systems equis: engineering interactive systems Mobile Devices

 Cell Phones, PDA’s  Devices not primarily intended for gaming  Short games Input Devices  Very simple input  Typically programmed using Java 2 Mobile Edition or Objective C  Enormous market  Programming challenge in diversity of devices

Image Source: http://www.airshiptwo.com/crystalalliance.php

equis: engineering interactive systems equis: engineering interactive systems

Input Game Controllers: Logitech PS2

 Input devices significantly direct the kinds of games offered  Consoles  Game controller  PC’s  Keyy,board, Mouse

equis: engineering interactive systems equis: engineering interactive systems Game Controllers: Logitech PS2 Game Controllers

Jog dial

Buttons

PS3 Controller

Joysticks

+F+ Force-fdbkfeedback Xbox 360 Controller

equis: engineering interactive systems equis: engineering interactive systems

Game Controllers Wiimote Game Controller

 Controller joysticks less accurate than mouse  No poss ibility o f tex t en try  Choices generally limited to 4, or using awkward scrolling mechihanism  Great for sofa, floor use  In general – games involving text entry, presentation of lots of data, requiring detailed selection tasks are PC-only Wiimote

Sensor Bar

equis: engineering interactive systems equis: engineering interactive systems Images c/o Wikipedia Other input devices Other Input Devices

Logitech Driving Force EX Logitech Freedom 2.4 Cordless Joystick with force feedback

equis: engineering interactive systems equis: engineering interactive systems

Other Input Other Input Devices

Logitech G7 Laser Cordless Mouse 2000 dpi resolution Sparco Racing Cockpit Pro

equis: engineering interactive systems equis: engineering interactive systems Project Natal

Game Genres

equis: engineering interactive systems equis: engineering interactive systems

Game Genres First-Person Shooter (FPS)

 First-Person Shooter  Played in first-person  Racing Games  Lots of shooting  Interactive Fiction  Role-Playing Games  Capture the flag gameplay  Massively Multiplayer Online Games  Often multiplayer , team-based  Real-Time Strategy Games  Among the most violent games in existence –  Turn-Based Strategy Games often hyper -realistic graphics, sometimes  God Games situations based on real-life events  Puzzle Games  StGSports Games  E. g., Modern Warfare 2, Half-life, Counterstrike,  Simulations Battlefield 1942  Car d Gam es

equis: engineering interactive systems equis: engineering interactive systems Battlefield 1942 Racing Games

 Racing cars  Around track  Rally  Combine reflexes,,gy, strategy, car fantasies  Ideal multiplayer game  E.g., Gran Turismo, Colin McRae Rally

equis: engineering interactive systems equis: engineering interactive systems

Gran Turismo Gran Turismo

equis: engineering interactive systems equis: engineering interactive systems Interactive Fiction 4K Adventure

 Typically text-based, sophisticated natural language parsers  User navigates world, solves puzzles  Adventure, Zork  Less popular since advent of graphical user interfaces  Emphasis on story-telling somewhat lost in modern games

Source: http://www.wurb.com/if/game/321

equis: engineering interactive systems equis: engineering interactive systems

4K Adventure 4K Adventure

equis: engineering interactive systems equis: engineering interactive systems 4K Adventure 4K Adventure

equis: engineering interactive systems equis: engineering interactive systems

4K Adventure 4K Adventure

equis: engineering interactive systems equis: engineering interactive systems 4K Adventure Role-Playing Games

 Lineage from Dungeons and Dragons role playing game (paper and pencil)  Focus on quests, story-telling, character development  CbCan be open-enddded, or c lose ly gu iddided  Characters gain levels/skills over time  Usually involve combat, fantasy  E.g., Neverwinter Nights, Dragon Age: Origin  Metagame – players create own stories (modules)

equis: engineering interactive systems equis: engineering interactive systems

Neverwinter Nights MMOGs

 Massively Multiplayer Online Games  Also MMORPG, MMOFPS, MMORTS, …  Permit thousands of players to play together in immense online world  Some worlds would take days of real-time to traverse end to eednd  Players cooperate, or fight with each other  Often open-ended gameplay – can have career as warrior, crafter, merchant, interior decorator  Some devotees spend as much as 30-40 hours a week in these virtual worlds, make friends there  Interesting sociological phenomenon as well as technical  E.g., World of Warcraft (~8 million players), Eve Online (> 19,000 concurrent players), Star Wars Galaxies, Everquest

equis: engineering interactive systems equis: engineering interactive systems MMOGs TBS

 Turn-Based Strategy  Lineagg(g)e in Board Games (war games)  Turn-based  One player performs a set of moves  NtlNext player per forms a set tf of moves…  Typically deep games with complex rule sets  Mainly appeal to niche player group  Difficult, involving, poor graphics  Adapt poorly to network play  E.g., Europa Universalis, Gary Grigsby’s World at War, Civilization 4

equis: engineering interactive systems equis: engineering interactive systems

TBS: Europa Universalis RTS

 Real-Time Strategy  Strategy games played in real-time – no turns, no pauses fffor reflection  Differ from TBS: player speed is important; ability to managgqye lots of information quickly  Gameplay: build base, build units, gather resources, destroy other players  Maps well to multiplayer play, as there are no turns – all players play simultaneously  E.g., Starcraft, Warcraft, Command and Conquer seriAies, Age o fEif Empire

Source: http://www.strategyfirst.com/en/games/redir/?iGameID=17

equis: engineering interactive systems equis: engineering interactive systems God Games Civilization 4

 Follow a civilization through time  Often follow thousands of years of history, allowing player to start with a primitive village, build up to modern nation  Games involve combat, diplomacy, cultural domination  E.g., Civilization series, Age of Empire series, Black and White  Intersects with RTS, TBS

equis: engineering interactive systems equis: engineering interactive systems

Civilization 4 Technology Tree Civilization 4 Diplomacy

equis: engineering interactive systems equis: engineering interactive systems Puzzle Games Yahoo! Text Twist

 Games based around solving puzzles  Geometric (e.g., Tetris)  Words (e.g., Yahoo! Text Twist)  One of the few non-violent gggame genres

equis: engineering interactive systems equis: engineering interactive systems

Sports Games NHL 2k6

 Control a team of players  Strong multiplayer games  Rewards speed, ability to see plays  Typically tied to pro sports – annual release with up to date team rosters, detailed animation of real players, real commentators  E.g., NHL 2k6, FIFA 2006, NBA Live 2006

equis: engineering interactive systems equis: engineering interactive systems Simulations Microsoft Flight Simulator

 Simulation of some real-world phenomenon  Vary in how detailed the simulation, how realistic, how much it is a game rather than an opportunit y to ex perience somethin g unusual  Examples: The Sims, Microsoft Flight Simulator, Orbiter Space Flight Simulator, Roller Coaster Tycoon

equis: engineering interactive systems equis: engineering interactive systems

Orbiter Space Simulator Roller Coaster Tycoon

equis: engineering interactive systems equis: engineering interactive systems The Sims 2 Card Games

 The most popular games of all!  Computer implementations of popular card games  E.gg,., Solitaire, Hearts, Poker  Enormous multiplayer play via free sites

equis: engineering interactive systems equis: engineering interactive systems

Yahoo! Games Yahoo! Addiction Solitaire

equis: engineering interactive systems equis: engineering interactive systems Game Development Teams

 Teams typically 10-100 people  Multi-disciplinary  PdProducer Developing Games  Designer(s)  Programmers  Level designers  Modelers  Animators  Sound Engineers  Musicians  Quest developers  Writers  Testers  Actors  …

equis: engineering interactive systems equis: engineering interactive systems

Game Development Teams Game Development Teams

 Red Alert 2  Battlefield 1942 Core Team  3 producers  Producers: 2  10 designers  Designers: 3  3 story writers  Programmers: 11  16 arti s ts  Artists: 12  18 programmers  Sound: 2  3 audio  31 video production  Music: 1  21 quality assurance  Testers: 51  9 marketing  Docu menters: 2  41 live actors  Voice actors: 18  26 voice actors

equis: engineering interactive systems equis: engineering interactive systems Game Development Teams Development Tools

 Civilization 4  Modeling, animation tools  Creating people, animals, monsters, attaching animation  Producers: 3  AiAnima tion by han d, or us ing mo tion cap ture  Designers: 2  Level design tools  Programmers: 18  Designing landscapes, large interiors  Writers: 5  Quest design tools; NPC interaction  Artists: 34  Visual environments, scripting languages  Programming tools  Voice actors: 1 (Leonard Nimoy!)  Visual C++ …  QA: 26  Sound editing tools  For sound effects, looping background noise  Texture/image editing tools

equis: engineering interactive systems equis: engineering interactive systems

Game Architecture EQUIS Engine

Graphics OGRE Input Simple DirectMedia Layer (SDL) Physics Open Dynamics Engine (ODE) Sound OpenAL GUI Crazy Eddie’s GUI System (CEGUI) AI EQUIS AI

equis: engineering interactive systems equis: engineering interactive systems EQUIS Tools

Terrain Modeling EQUIS Landscape Generation EiEntity MdliModeling Sof tI mage XSI

Level Modeling None

Image Manipulation GIMP Animation Keyframe in XSI; Here’s that URL again… Vicon motion capture + Alias MotionBuilder + XSI Compiler Visual Studio .NET

Source Documentation Doxygen Design Documentation Poseidon for UML Revision Control Subversion http://equis.cs.queensu.ca/wiki/index.php/CISC_877

equis: engineering interactive systems