Course Organization

Transcription

Course Organization
CISC 877
Course Organization
Engineering Digital Games
Week 1: Introduction
T.C. Nicholas Graham
[email protected]
http://equis.cs.queensu.ca/~graham/cisc877
Winter term, 2011
Topics include…











Video game design
Gaming platforms and fundamental technologies
Game development processes and pipeline
Software architecture of video games
Video games as distributed systems
Game physics
Game AI
Scripting languages
Game development tools
Social and ethical aspects of video games
User interfaces of games
equis: engineering interactive systems
equis: engineering interactive systems
Timeline and Marking Scheme
Activity
Due Date
Grade
Project Proposal (2-3 pages, hand-in)
January 25,
2011
10%
Progress Presentation (involves
presentation and online report)
Mar 1, 2011
20%
Informal progress reports
Weekly
5%
Final Project Presentation / Show
April 4, 2011
(tentative)
10%
Final Project Report
April 11, 2011
45%
Class Participation
equis: engineering interactive systems
10%
Homework
 Project proposal (for next week)
 Wiki contains detailed description of project
ideas, game you will be extending
 Proposal to be posted on Wiki – create
yourself an account
 Form your own project groups – pick project
appropriate to group size
The Project
 XNA tutorials (over next two weeks)
 …see web page for details
equis: engineering interactive systems
equis: engineering interactive systems
Lunar Lander Project
Robots vs Ninjas Project
equis: engineering interactive systems
Bolton, Kurczak and Savery 2010
equis: engineering interactive systems
Pape 2010
Life is an Obstacle Course Project
Life is a Village and Frozen Treasure Hunter
equis: engineering interactive systems
equis: engineering interactive systems
Project Ideas
Clarridge and Stach 2008
Dragert, Qiu and Yim 2007
Project Ideas
• Implement a playable game
• Investigate an
interesting technology
equis: engineering interactive systems
equis: engineering interactive systems
Quest Generation Tool
Procedural Content Generation
Quest
generation
tool in RPG
Runic Games’ “Torchlight”
equis: engineering interactive systems
NWN Aurora Builder
Support for Novel Platforms
equis: engineering interactive systems
Interest Management
Microsoft’s “Kinect”
equis: engineering interactive systems
equis: engineering interactive systems
Planning-Based AI
Scripting Language for RTS AI
Halo 2
Starcraft 2
equis: engineering interactive systems
equis: engineering interactive systems
Consistency Maintenance
Scheduling Game Entities
Team Fortress 2
equis: engineering interactive systems
equis: engineering interactive systems
DragonAge
Why Study Game Development?
Why Study Video Games?
 Games have become an important medium,
ranking with television, movies, books
 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, computersupported 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


US video game sales were $11.7 billion in 2008
World wide video game and console sales were $19.7
billion in 2009
 Larger than Hollywood’s box office take
 US Demographics

Average age of gamers: 35
 40% female

Average hours played: ~13 hrs/week
 22 hrs/week for MMORPG players
 Top 4% of gamers a average 48.5 hrs/week
 Effect on Real Life





About 50% of MMORPG players consider themselves to be
addicted
Virtual property is the cause of real-life crime, even murder
40% of MMORPG players feel that their online friends are
comparable to or even better than their real life friends
Lawsuits allege video games lead to antisocial behaviour
Sources: Entertainment Software Association, Daedalus Project, Business Week Online, BBC News
equis: engineering interactive systems
 Electronic Arts, Vancouver
 Second Largest Game Development Studio
World-Wide
 Ubisoft, Montreal, > 1,500 employees
 Most popular modeling tools
 Maya (Autodesk, Toronto), XSI (SoftImage, Montreal),
3ds Max (Discreet, Montreal)
 Most popular animation tool
 Motion Builder (Autodesk, Montreal)
equis: engineering interactive systems
Platforms for Gaming
Platforms for Gaming




Consoles
PC’s
Portable Game Devices
Mobile Devices
equis: engineering interactive systems
equis: engineering interactive systems
Consoles
Consoles: Xbox 360
 Released November 22,
2005; CDN $199+
 3 x 3.2 GHz dual core
PowerPC processor
 1 VMX-128 vector unit per
core
 1 MB L2 Cache
 Custom ATI R500-based
Graphics Processor
 Traditional life cycle: 5 years
 Perhaps now as long as 10 years
 Cutting-edge on introduction; behind the
curve on retirement
 Typically difficult to program – games
improve in quality over console’s life as
developers improve tools
 Current generation of consoles
 Xbox 360
 PlayStation 3
 Wii
equis: engineering interactive systems

Photo c/o http://www.xbox.com
HD Resolution up to
1920x1080 (16:9, vs
normal 4:3 TV)
 512 MB 700 MHz GDDR3
RAM
 Up to 4 wireless game
controllers
 802.11A/B/G Ethernet
 Optional 20+ GB HD
Source: http://en.wikipedia.org/wiki/Xbox_360
equis: engineering interactive systems
Consoles: PlayStation 3
 Released December 2006
 Sales price: $299+
 3.2 GHz Cell Processor



7 SPE’s – 128 bit SIMD
RISC processor
connected by 10 GBps
bus
1 PPE as controller
 2.3 MB SRAM (512 KB L2
Cache, 1.79 MB per SPE)
 Custom “Reality
Synthesizer” Graphics
Processor (NVIDIA/Sony)

Resolution: up to
1920x1080 (1080p)
 3 Gbps Ethernet ports,
802.11G, Bluetooth 2.0
 Up to 7 Bluetooth
controllers
equis: engineering interactive systems
Source: http://en.wikipedia.org/wiki/Playstation_3
Consoles: Nintendo Wii
 Released November
2006
 Cost: $209 CDN
 802.11B/G wireless
via Nintendo hotspots
 Controller – simplified
design (TV remote),
positional sensing
 6 DoF Accelerometer
 IR-based pointing
 512 MB RAM
 ATI “Hollywood” GPU
 No HD support
Source: http://en.wikipedia.org/wiki/Nintendo_Revolution
equis: engineering interactive systems
Consoles: Programming
Consoles: Development
 Two consoles introduced significantly different
programming architectures
 Proprietary software development kit
available for Windows PCs



6 cores in Xbox 360
7 cores in PlayStation 3
Extensive vector processing capabilities
 Difficulty of finding this much parallelism in games

Obvious candidate: AI
 Develop, debug on PC
 Cross-compile to console
 E.g., XNA for Xbox 360
 Difficulty of concurrent processing
 In Xbox 360, GPU and CPU share memory
 Many years required to learn how to develop for new
consoles
 Developers do not necessarily make it
easy to port to other consoles
equis: engineering interactive systems
equis: engineering interactive systems
 Battle for which console is “native”
implementation, as it will be better than
ported ones
Consoles: Software Delivery
PC’s
 Typically CD/DVD/Blu-ray delivery
 Traditionally consoles have no/small HD,
games played directly from DVD
 Enormous variety of hardware platforms
 OS
 Implies no opportunity for patching
 Compare to PC games where patches
routinely delivered after release, require
download by players
 E.g., Battlefield 1942: patch to version
1.6.19 is 267 MB
 Requires rock-solid software engineering,
QA processes
 Windows, MacOS, Linux
 Windows PC’s have open hardware/software
environments
 Video card, CPU, memory differ in capability by
orders of magnitude
 Different versions of DirectX, video card drivers
cause enormous difficulties with QA
 Compare to consoles which offer completely uniform
environment
 Tendency of new games to support higher-end
PC’s
 E.g., recommended system for Final Fantasy XIV:
 2.66 GHz Pentium i7, 768 MB Video Card
 Drive hardware sales
 Limit games to serious hobbyists
equis: engineering interactive systems
equis: engineering interactive systems
Portable Game Devices
PlayStation Portable
 Handheld devices for gaming
 Extension into other entertainment areas
– movies, MP3’s
 E.g.
 PlayStation Portable
 Nintendo DS
 170x74x23 mm
 480x272 pixel display
 222 MHz dual core
MIPS32R2 CPU
 32 MB RAM
 Graphics chip: 166
MHz, 2 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
 Upper screen is
output-only
 Lower screen offers
touch-sensitive input
 Microphone input
 Wireless hotspots
 Dual screen allows
innovative game
design
Source: http://en.wikipedia.org/wiki/Nintendo_DS
equis: engineering interactive systems
equis: engineering interactive systems
Mobile Devices
 Cell Phones





Touch-based input
Powerful 3D GPUs
iPhone: Objective C
Android: Java / C
Windows Phone:
C#/XNA
Input Devices
 Largest install base of all
gaming platforms
 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
 Keyboard, Mouse
equis: engineering interactive systems
equis: engineering interactive systems
Game Controllers: Logitech PS2
Game Controllers
Jog dial
Buttons
PS3 Controller
Joysticks
+ Force-feedback
equis: engineering interactive systems
Xbox 360 Controller
equis: engineering interactive systems
Game Controllers
 Controller joysticks less
accurate than mouse
 No possibility of text entry
 Choices generally limited
to 4, or using awkward
scrolling mechanism
 Great for sofa, floor use
 In general – games
involving text entry,
presentation of lots of
data, requiring detailed
selection tasks are PConly
Wiimote Game Controller
Wiimote
Sensor Bar
equis: engineering interactive systems
Kinect
Images c/o Wikipedia
equis: engineering interactive systems
Kinect
Depth camera
Delivers
colour and
depth of each
pixel
Emits IR dot pattern, examines
deformation of reflected pattern
to estimate depth
equis: engineering interactive systems
equis: engineering interactive systems
Other input devices
Other Input Devices
Logitech Driving Force EX
Logitech Freedom 2.4 Cordless Joystick
with force feedback
equis: engineering interactive systems
Other Input
Logitech G7 Laser Cordless Mouse
2000 dpi resolution
equis: engineering interactive systems
equis: engineering interactive systems
Other Input Devices
Sparco Racing Cockpit Pro
equis: engineering interactive systems
Game Genres
Game Genres












First-Person Shooter
Racing Games
Interactive Fiction
Role-Playing Games
Massively Multiplayer Online Games
Real-Time Strategy Games
Turn-Based Strategy Games
God Games
Puzzle Games
Sports Games
Simulations
Card Games
equis: engineering interactive systems
equis: engineering interactive systems
First-Person Shooter (FPS)
Battlefield 1942
Played in first-person
Lots of shooting
Capture the flag gameplay
Often multiplayer, team-based
Among the most violent games in
existence – often hyper-realistic graphics,
sometimes situations based on real-life
events
 E.g., Modern Warfare 2, Half-life,
Counterstrike, Battlefield 1942





equis: engineering interactive systems
equis: engineering interactive systems
Racing Games
Gran Turismo
 Racing cars
 Around track
 Rally
 Combine reflexes, strategy, car fantasies
 Ideal multiplayer game
 E.g., Gran Turismo, Colin McRae Rally
equis: engineering interactive systems
equis: engineering interactive systems
Gran Turismo
Interactive Fiction
 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
equis: engineering interactive systems
equis: engineering interactive systems
4K Adventure
4K Adventure
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
Role-Playing Games
Neverwinter Nights
 Lineage from Dungeons and Dragons role
playing game (paper and pencil)
 Focus on quests, story-telling, character
development
 Can be open-ended, or closely guided
 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
MMOGs
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 end
 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
TBS
TBS: Europa Universalis
 Turn-Based Strategy
 Lineage in Board Games (war games)
 Turn-based
 One player performs a set of moves
 Next player performs a set 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
Source: http://www.strategyfirst.com/en/games/redir/?iGameID=17
equis: engineering interactive systems
equis: engineering interactive systems
RTS
God Games
 Real-Time Strategy
 Strategy games played in real-time – no turns,
no pauses for reflection
 Differ from TBS: player speed is important;
ability to manage 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
series, Age of Empire
 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
Civilization 4 Technology Tree
equis: engineering interactive systems
equis: engineering interactive systems
Civilization 4 Diplomacy
Puzzle Games
 Games based around solving puzzles
 Geometric (e.g., Tetris)
 Words (e.g., Yahoo! Text Twist)
 One of the few non-violent game genres
equis: engineering interactive systems
equis: engineering interactive systems
Yahoo! Text Twist
Sports Games
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
NHL 2k6
Simulations
 Simulation of some real-world
phenomenon
 Vary in how detailed the simulation, how
realistic, how much it is a game rather
than an opportunity to experience
something unusual
 Examples: The Sims, Microsoft Flight
Simulator, Orbiter Space Flight Simulator,
Roller Coaster Tycoon
equis: engineering interactive systems
equis: engineering interactive systems
Microsoft Flight Simulator
Orbiter Space Simulator
equis: engineering interactive systems
equis: engineering interactive systems
Roller Coaster Tycoon
The Sims 2
equis: engineering interactive systems
equis: engineering interactive systems
Card Games
Yahoo! Games
 The most popular games of all!
 Computer implementations of popular
card games
 E.g., Solitaire, Hearts, Poker
 Enormous multiplayer play via free sites
equis: engineering interactive systems
equis: engineering interactive systems
Yahoo! Addiction Solitaire
Developing Games
equis: engineering interactive systems
equis: engineering interactive systems
Game Development Teams
Game Development Teams
 For “AAA” games, teams typically 10-100 people
 Multi-disciplinary
 Red Alert 2













Producer
Designer(s)
Programmers
Level designers
Modelers
Animators
Sound Engineers
Musicians
Quest developers
Writers
Testers
Actors
…











3 producers
10 designers
3 story writers
16 artists
18 programmers
3 audio
31 video production
21 quality assurance
9 marketing
41 live actors
26 voice actors
equis: engineering interactive systems
equis: engineering interactive systems
Game Development Teams
Game Development Teams
 Battlefield 1942 Core Team
 Civilization 4









Producers: 2
Designers: 3
Programmers: 11
Artists: 12
Sound: 2
Music: 1
Testers: 51
Documenters: 2
Voice actors: 18
equis: engineering interactive systems







Producers: 3
Designers: 2
Programmers: 18
Writers: 5
Artists: 34
Voice actors: 1 (Leonard Nimoy!)
QA: 26
equis: engineering interactive systems
Development Tools
Game Architecture
 Modeling, animation tools
 Creating people, animals, monsters, attaching
animation
 Animation by hand, or using motion capture
 Level design tools
 Designing landscapes, large interiors
 Quest design tools; NPC interaction
 Visual environments, scripting languages
 Programming tools
 Visual C++ …
 Sound editing tools
 For sound effects, looping background noise
 Texture/image editing tools
equis: engineering interactive systems
equis: engineering interactive systems
Open-Source Engine
Example Tools
Graphics
OGRE
Terrain Modeling
EQUIS Landscape Generation
Input
Simple DirectMedia Layer (SDL)
Entity Modeling
SoftImage XSI
Physics
Open Dynamics Engine (ODE)
Level Modeling
None
Sound
OpenAL
Image Manipulation
GIMP
GUI
Crazy Eddie’s GUI System (CEGUI)
Animation
AI
Custom
Keyframe in XSI;
Vicon motion capture + Alias MotionBuilder + XSI
Compiler
Visual Studio .NET
Source Documentation
Doxygen
Design Documentation
Poseidon for UML
Revision Control
Subversion
equis: engineering interactive systems
equis: engineering interactive systems
Here’s that URL again…
http://equis.cs.queensu.ca/~graham/cisc877