Course Organization

Transcription

Course Organization
CISC 877
Course Organization
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…











Video game design
Gaming
gp
platforms and fundamental technologies
g
Game development processes and pipeline
Software architecture of video games
Video games as distributed systems
Game physics
G
Game
AI
Scripting languages
Game development tools
Social and ethical aspects of video games
User interfaces
Use
te aces o
of ga
games
es
equis: engineering interactive systems
Timeline and Marking Scheme
Activity
Due Date
Grade
Project Proposal (2-3 pages, hand-in)
January 26,
2010
10%
Progress Presentation (involves
presentation and online report)
Mar 2, 2010
20%
Informal progress reports
Weekly
5%
Final Project Presentation / Show
April 6, 2010
(tentative)
10%
Final Project Report
April 9, 2010
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
 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,
resources must go further
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
game. Change it to allow multiple players to interact. Each player
g and villagers.
g
should have their own village
 Zones: The game currently takes place in one relatively small
terrain. Change it to allow any number of such terrains to be linked,
with some mechanism of transitioning from one zone to another.
Z
Zones
might
i ht h
have radically
di ll diff
differentt styles
t l - e.g., desert,
d
t
moonscape, etc. You can use the EQUIS Terrain Generation tools
to generate zones for experimentation.
 Persistence: The game currently terminates when the player exits.
exits
When the player returns, the game starts afresh. Change the game
to be a persistent world, where the game keeps running even if the
player is not there, allowing the player to rejoin the world in
progress. Persistence should be compatible with multi-player play.
 Mounts: Players can chase after mounts (e.g., horse, unicorn,
giant spider). If the player catches the mount, they can jump on top
g
g benefits such as increased speed.
p
of it,, gaining
 Level of detail AI: Modify the AI manager to allocate time to AI
entities consistently with their importance in the game – part of
scaling to very large scenes or networked play.
 Physics: Currently, the world has rather strange physical
properties. Collision detection: Physical objects such as buildings
and trees are currently blocked off so that players cannot enter
them These rules should be relaxed
them.
relaxed, e
e.g.,
g so that a player can
jump off a mountain and land on the roof of a building. It should be
possible to charge towards a ramp, and fly into the air in a
physically realistic fashion. This work is best done with the Open
Dynamics Engine.
equis: engineering interactive systems
equis: engineering interactive systems
Why Study Game Development?
Why Study Video Games?
equis: engineering interactive systems
 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,
writers,
actors musicians
 Video games are an emerging artistic medium
 In computer science, combines the hard problems of
graphics artificial intelligence,
graphics,
intelligence database
database, distributed systems
systems,
human-computer interaction, computer-supported
cooperative work, software architecture, quality assurance,
project management
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
 Electronic Arts, Vancouver
 Larger than Hollywood’s box office take
 Demographics

Average age of gamers: 30

Average hours played: ~7
7.5
5 hrs/week
 43% female
 22 hrs/week for MMORPG players
 Effect on Real Life





About 50% of MMORPG players consider themselves to be
addicted
ddi t d
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
 Second Largest Game Development Studio WorldWide
 Ubisoft,
Ubisoft Montreal
Montreal, > 1
1,500
500 employees
 Most popular modeling tools
 Maya (Alias, Toronto), XSI (SoftImage, Montreal), 3ds Max
(Discreet, Montreal)
 Most popular animation tool
 Motion Builder (Alias
(Alias, Montreal)
Sources: Entertainment Software Association, Daedalus Project, Business Week Online, BBC News
equis: engineering interactive systems
equis: engineering interactive systems
Platforms for Gaming
Platforms for Gaming
equis: engineering interactive systems




Consoles
PC’s
PC
s
Portable Game Devices
Mobile Devices
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
 Typical life cycle: 5 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
Photo c/o
/ http://www.xbox.com
//
HD Resolution up to
1920 1080 (16
1920x1080
(16:9,
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
equis: engineering interactive systems
Consoles: PlayStation 3
Consoles: Nintendo Wii
 Released December 2006
 Sales price: $299+
 3.2
3 2 GHz Cell Processor



 Released November
2006
 Cost:
C
$
$269 C
CDN
 802.11B/G wireless via
Nintendo hotspots
p
 Controller – simplified
design (TV remote),
positional sensing
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
C
““Reality S
Synthesizer””
Graphics Processor
(NVIDIA/Sony)

 6 DoF Accelerometer
 IR-based pointing
Resolution: up
p to
1920x1080 (1020p)
 512 MB RAM
 ATI “Hollywood” GPU
 3 Gbps Ethernet ports,
802.11G, Bluetooth 2.0
 Up to 7 Bluetooth controllers
 No HD support
Source: http://en.wikipedia.org/wiki/Playstation_3
equis: engineering interactive systems
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
 Difficultyy of finding
g this much p
parallelism in g
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 memoryy
 Will certainly take developers 5 year span of consoles’ life cycle 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
Consoles: Software Delivery
PC’s
 Typically CD/DVD/Blu-ray delivery
 Traditionally consoles have no/small HD
HD,
games played directly from DVD
 Enormous variety of hardware platforms
 OS
 Implies
p
no opportunity
pp
y for p
patching
g
 Compare to PC games where patches routinely
delivered after release, require
q
download by
y
players
 E.g., Battlefield 1942: patch to version 1.6.19 is
267 MB
 Requires rock-solid software engineering, QA
processes
equis: engineering interactive systems
 Battle for which console is “native” implementation,
as it will be better than ported ones
 Will be particularly interesting with new
architectures
 Windows,
Wi d
MacOS,
M OS Li
Linux
 Windows PC’s have open hardware/software
environments
 Video card,
card CPU
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.,
E g recommended system for Civilization 4:
 3.2 GHz Pentium, 256 MB Video Card
 Drive hardware sales
 Limit games to serious hobbyists
equis: engineering interactive systems
Portable Game Devices
PlayStation Portable
 170x74x23 mm
pixel display
p y
 480x272 p
 222 MHz dual core
MIPS32R2 CPU
 32 MB RAM
 Graphics chip: 166 MHz,
2 MB RAM
 802.11B Wireless
networking
 Handheld devices for gaming
 Extension into other entertainment areas –
movies, MP3’s
 E.g.
Eg
 PlayStation Portable
 Nintendo DS
Source: http://en
http://en.wikipedia.org/wiki/PlayStation_Portable
wikipedia org/wiki/PlayStation Portable
equis: engineering interactive systems
equis: engineering interactive systems
Nintendo DS
Nintendo DS
 Dual screen
 Upper
pp screen is outputp
only
 Lower screen offers
touch sensitive input
touch-sensitive
 Microphone input
 Wireless hotspots
 Dual screen allows
innovative game design
 Over 10 million units
sold so far
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
Very simple input
Typically programmed
using Java 2 Mobile
Edition or Objective C
Input Devices
 Enormous market
 Programming challenge in
diversity of devices
Image Source: http://www.airshiptwo.com/crystalalliance.php
equis: engineering interactive systems
Input
equis: engineering interactive systems
Game Controllers: Logitech PS2
 Input devices significantly direct the kinds of
games offered
 Consoles
 Game controller
 PC’s
 Keyboard,
y
, Mouse
equis: engineering interactive systems
equis: engineering interactive systems
Game Controllers: Logitech PS2
Game Controllers
Jog dial
Buttons
PS3 Controller
Joysticks
+ FForce-feedback
f db k
Xbox 360 Controller
equis: engineering interactive systems
equis: engineering interactive systems
Game Controllers
Wiimote Game Controller
 Controller joysticks less
accurate than mouse
 No
N possibility
ibilit off ttextt entry
t
 Choices generally limited to
4, or using awkward scrolling
mechanism
h i
 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
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
Project Natal
Game Genres
equis: engineering interactive systems
equis: engineering interactive systems
Game Genres
First-Person Shooter (FPS)

















First-Person Shooter
Racing Games
Interactive Fiction
Role-Playing Games
Massively Multiplayer Online Games
Real-Time Strategy Games
Turn-Based Strategy
gy Games
God Games
Puzzle Games
S t Games
Sports
G
Simulations
Card
Ca
d Ga
Games
es
equis: engineering interactive systems
Played in first-person
Lots of shooting
Capture the flag gameplay
Often multiplayer,
multiplayer team
team-based
based
Among the most violent games in existence –
often hyper-realistic graphics
graphics, sometimes
situations based on real-life events
 E.g.,
E g Modern Warfare 2
2, Half-life
Half life, Counterstrike
Counterstrike,
Battlefield 1942
equis: engineering interactive systems
Battlefield 1942
Racing Games
 Racing cars
 Around track
 Rally
 Combine reflexes,, strategy,
gy, 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,
Adventure Zork
 Less popular since advent of graphical user
interfaces
 Emphasis on story-telling somewhat lost in
modern games
g
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
 Can
C b
be open-ended,
d d or closely
l
l guided
id d




Characters gain levels/skills over time
Usually involve combat
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
e d
end
 Players cooperate, or fight with each other
 Often open-ended gameplay – can have career as
warrior crafter
warrior,
crafter, merchant
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
q
equis: engineering interactive systems
equis: engineering interactive systems
MMOGs
TBS
 Turn-Based Strategy
g in Board Games ((war g
games))
 Lineage
 Turn-based
 One player performs a set of moves
 Next
N t player
l
performs
f
a sett off 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 for
f reflection
f
 Differ from TBS: player speed is important; ability to
manage
g lots of information q
quickly
y
 Gameplay: build base, build units, gather resources,
destroy other players
 Maps well to multiplayer play
play, as there are no turns – all
players play simultaneously
 E.g., Starcraft, Warcraft, Command and Conquer
series,
i
A
Age off Empire
E i
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
history,
allowing player to start with a primitive village,
build up
p 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 g
game g
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
simulation, how
realistic, how much it is a game rather than an
opportunity
pp
y to experience
p
something
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.g.,
g , 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
Developing Games













Producer
P
d
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
p
10 designers
3 story writers
16 artists
ti t
18 programmers
3 audio
31 video production
21 quality assurance
9 marketing
41 live actors
26 voice actors
equis: engineering interactive systems









Producers: 2
Designers: 3
Programmers: 11
Artists: 12
Sound: 2
Music: 1
Testers: 51
Doc menters 2
Documenters:
Voice actors: 18
equis: engineering interactive systems
Game Development Teams
Development Tools
 Civilization 4
 Modeling, animation tools







Producers: 3
Designers: 2
Programmers: 18
Writers: 5
Artists: 34
Voice actors: 1 (Leonard Nimoy!)
QA: 26
 Creating people, animals, monsters, attaching animation
 Animation
A i ti b
by h
hand,
d or using
i motion
ti capture
t
 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
Game Architecture
EQUIS Engine
equis: engineering interactive systems
Graphics
OGRE
Input
Simple DirectMedia Layer (SDL)
Physics
Open Dynamics Engine (ODE)
Sound
p
OpenAL
GUI
Crazy Eddie’s GUI System (CEGUI)
AI
EQUIS AI
equis: engineering interactive systems
EQUIS Tools
Terrain Modeling
EQUIS Landscape Generation
E i M
Entity
Modeling
d li
S fI
SoftImage
XSI
Level Modeling
None
Image Manipulation
GIMP
Animation
Keyframe in XSI;
Vicon motion capture + Alias MotionBuilder + XSI
Compiler
Visual Studio .NET
Source Documentation
Doxygen
g Documentation
Design
Poseidon for UML
Revision Control
Subversion
equis: engineering interactive systems
Here’s that URL again…
http://equis.cs.queensu.ca/wiki/index.php/CISC_877