Lecture notes.

CS 679: Computer Game
Technology
http://www.cs.wisc.edu/~cs679-1/
Fall 2003
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
The Professor…
•
•
•
•
Stephen Chenney
[email protected]
Office: 6387 Comp Sci
Office Hours: Email to arrange a time
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
The TAs
•
•
•
•
Matt Anderson ([email protected])
Eric McDaniel ([email protected])
Office: 1347 (Graphics research lab)
Office Hours: Email
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Contacting Us
• Email Prof and TAs: [email protected]
• Email class: [email protected]
• Use these lists
– Email to one TA or Prof will not be read by others, thus slowing the
response
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
The Interactive Entertainment
Industry
• Hardware makers produce gaming hardware
– eg Sony, Nintendo, Microsoft, …
• Game Developers create games
– eg Electronic Arts (EA), Epic, ID, thousands of others
• Publishers publish games
– eg Sony, Nintendo, EA, …
• The model is similar to books or movies
– One group creates it, another distributes it, and another supplies the
underlying infrastructure
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Flavors of Game Developer
• Game Designers decide on the format and behavior of the game
• Artists design models, textures, animations and otherwise are
responsible for the look of the game
• Level Designers create the spaces in which the game takes place
• Audio Designers are responsible for all the sounds used in the game
• Programmers write code, to put it all together, and tools, to make
everyone else’s job simpler
• And others: Production, management, marketing, quality assurance
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Course Outline
• Real-time graphics
– Lighting and shading, modeling, data management
• AI: Game term for behavior
– Creating characters, path planning, generating motion
• Networking: Playing together
– Protocols for gaming, architectures, managing bandwidth
• Full (tentative) syllabus online
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Disclaimer
• Game development requires more than graphics, AI and
networking
– Design, Art, Software engineering, Production, Audio, …
• This course won’t formally cover any of that stuff
– Nor will it give you much experience with middleware, console
programming, mobile gaming, contract negotiation, …
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Books
• Official textbook: “Real-Time Rendering, 2nd Edition”
– Probably the best single book on real-time techniques, and not just
rendering
• Other useful books:
– “The OpenGL Programming Guide”
– “The Cg Tutorial” covers some material for the project
– “Game Programming Gems” and the sequels and offshoots have many
useful things
– “3D Game Engine Design”, lots of equations, not much exposition
• Website: www.gamasutra.com
– Game developer technical and trade news
– Other specific web sites
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
What I assume you know
• 3D graphics concepts and programming
–
–
–
–
“Standard” lighting and shading
Modeling techniques
Vectors, matrices, geometric reasoning
OpenGL will be the graphics API discussed in lectures
• I assume you are competent with at least one user interface
toolkit eg FLTK, MFC, Glut, Gtk, …
– Make sure it’s supported on Windows
• I assume you are competent with at least one programming
language and environment under Windows
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Grading
• Midterm and final
– Approx 40% of the grade, might change
• Project
– Multiple stages staggered through the semester
– Work in groups of 3-4
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Project
• The project is to create a game
• Issues:
–
–
–
–
–
09/02/03
Game design
Groups
Timeline
Grading
Tools
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Game Design
• Design your game around the concept of guiding a vehicle
– Race games
– Scavenger hunt games
– Puzzle games
• Why this theme?
– Easy to get started and clear progression
– Simple alternatives for all the important pieces: art, physics, control
– Wide range of potential game styles
• Feel free to steal ideas from existing games
– It’s what the professionals do
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Working in Groups
• Working in groups is not easy, and it is an acquired skill
• For some information on group functioning, read
– http://www-honors.ucdavis.edu/vohs/index.html
• I want you to form groups by Monday
– Use the whiteboard in 1347
– Move your name from the “unattached section” to the “groups”
section, starting a new group if necessary
• There will be some group evaluation exercises through the
semester
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Timeline
• Something due roughly every 2 weeks throughout the
semester
• First stage: Design and User Interface programming
• Subsequent stages:
–
–
–
–
Advanced rendering
AI
Physics
Networking (?)
• Refinement of earlier stages is allowed
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Grading
• Groups will be graded as one, but there may be adjustments
for individuals
• Each group will set goals for the stage
– Advice will be given on reasonable goals
– Goals will be discussed and recorded near the start of each stage
– Goals can be modified in the face of problems
• You will be graded based on how well you achieve your
goals, with a degree of difficulty factor
• Each stage will require a demo
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Tools
• The only requirement is that your project run in B240
(Windows 2000)
• We strongly prefer OpenGL
– The lectures will assume OpenGL, and we know nothing about
DirectX
• Choose any UI toolkit: Natural options are FLTK, MFC,
Glut, …
– We are most familiar with FLTK, but it has some (non-debilitating)
issues for real-time interactive programming
• You will probably want to use Cg for the second project
stage
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
More Tools
• Models and art will be an issue
– We have licenses for Maya, but no well established path to get
models into OpenGL
– Building models by hand might be the most efficient option
– You are free to use any available tools, provided you acknowledge it
• Textures should be a lesser problem
• Don’t be scared to write small tools if you think it will make
your project easier
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
First Stage
• Due Mon Sept 22, 4pm
• First stage, 1st part: Design a game, put it on paper
– Outline of game objectives
– Sketches of potential looks
• First stage, 2nd part: Get a simple environment up and
running with a vehicle and some control
– Minimal requirements for rendering quality – colored boxes is fine
– You can modify something you have previously written
– You can even borrow something from someone else
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin
Todo
• By Monday: Formulate groups, whiteboard room 1347
• By Monday: Read booklet on group work
– http://www-honors.ucdavis.edu/vohs/index.html
• By Friday, Sept 12: Goals for stage 1
09/02/03
CS679 - Fall 2003 - Copyright Univ. of Wisconsin