CS3113 - Introduction to Game Programming
2014 Spring
http://cis.poly.edu/jsterling/cs3113
Instructor:
John Sterling
Office: MetroTech 2, 872 / 10.090
email: jsterling@poly.edu
phone: (718) 260-4138
Course Description:
- Fundamental concerns in video game programming
- Using Microsoft's XNA game development framework and C#.
Textbook
There is no single text. Where possible, we will use resources
from the web. Below I will mention various books that I have
looked at that may be useful.
Topics
- Game development tools - Libraries, engines and frameworks
- Collision detection and resolution
- Aiming, Chase and Evade, "Flocking"
- AI: Path-finding, Finite State Machines, Fuzzy logic
- Audio programming, Sound Engines
-
Math Fundamentals
Trigonometry, matrix algebra, homogeneous
coordinates, linear transformations
- 3D Graphics programming, Lighting models
- Architecture, optimization, threading
- Network programming, client/server architecture, shared virtual worlds
Grading
-
Grading will be based on weekly assignments, tests and a course
project.
Course Overview (tentative)
Week |
Topics |
1 |
Overview
History
Basics of C# / XNA
|
2 |
Time, sprite animation and transparency
|
3 |
Mouse interaction and drawing
|
4 |
Search
|
5 |
Basic Physics
Collision detection
|
6
|
Transformations, Vectors and Matrices
|
7 |
Aim / Chase / Evade
|
8 |
Combining Behaviors: flocking
|
9 |
3D graphics intro
|
10 |
Yaw, pitch and roll.
|
11 |
Shaders |
12 |
Audio |
13 |
Project demos |
Resources
- Lecture log
- In class code
- Slides
- Code Samples
- Online resources
- gamasutra.com: "The Art
and Business of Making Games"
- gamedev.net.
- Articles about programmng games. Review of books.
- Some articles are clearly old, so the content/opinions may
be less relevant.
- www.dreamspark.com
- Source for free legal versions
of Visual Studio (and other products) for students.
- MSDN
-
C# Standard
-
History of Video Games (neat ~45 minute Youtube)
- AI
-
Amit's A* Pages
- Pac-man dossier
-
Interesting host of details about the workings of
Pacman, including the AI involved. (Note, the AI for
Games book, below, makes very different statements about
Pacman's AI.)
- Books
- Tools
-
Unreal Development Kit
- Gimp
- Blender
- Tutorials
- Book: Essential Blender
- Two-page "Quickstart".
Really a crib-sheet for the interface, not so much of a
guide. Note that this is claimed to be the "updated"
guide. I have not compared it with the original. Both
are posted on wiki.blender.org.
-
A guide on flossmanuals.net. Can be extracted as a
pdf file or read online.
-
Some other tutorials. The Yellow Submarine was
recommended and it looks pretty neat. Starts with a 2D
graphic and creates a 3D sub based on it.
- Exporters
-
Blender exporters. Both .x and .fbx are apparently
included in that standard package. Choose
File->Export->AutoDesk FBX, for example.
- TripleBGames
has a link to an exporter that seems to be specific to
XNA. Don't know what is different from the one on
Blender's site.
- It also points to some tutorials that look like
they might be fairly straightforward.
Books offline
- XNA
- Learning XNA 4.0 by Aaron Reed. O'Reilly.
- A handy guide to the basic mechanics of programming
a game in XNA. Starts with 2D and builds up to 3D.
- Microsoft XNA Game Studio 3.0 Unleashed
- Discusses 3D before 2D, the opposite of what I would
like to see.
- Game Programming Gems Series; Charles River Media.
- Each volume contains lots of articles by various authors
highlighing some potientially useful technique.
- The first volume, for example, has a set of articles on
path-planning.
- Introduction to Game Development; Rabin; Cengage
- An overview of issues in game programming, from the
definition of fun, through history and project management
issues.
- Game Coding Complete; McShaffry.
- An interesting read. Don't assume that "complete" means
that you will be able to run out an program a game, but you
will probably know more about what goes into the whole
process.
- Artificial Intelligence
- Artificial Intelligence, A Modern Approac.; Russell and Norvig; Prentice Hall.
- Not a "game programming" book, but a handy book for
discussions of various approaches to AI issues. Probably
the most widely used intro to AI book used in college
courses for quite a few years.
- Artificial Intelligence for Games; Ian Millington and
John Funge; Morgan Kaufman.
- Useful. A bit plodding as it builds its way up, but
covers a lot of material
- AI Game Engine Programming; Schwab; Cengage Learning,
Course Technology (Charles River Media); 2009.
- Game Physics
- Game Physics; David Eberly; Morgan Kaufman.
- Game Physics Engine Development; Ian Millington; Morgan
Kaufman.
- Looks to be a reasonably gentle intro to programming
physics in a game environment. Not a "how-to for
dummies", but doesn't demand that my math and physics
skills be at their peak.
- C#
- C# 4.0 in a Nutshell; Albahari and Albahari; O'Reilly.
- A reasonably well written explanation of C#. Should
be easy to jump in and pick up what you need. Don't let
the "in a Nutshell" portion of the title fool you; this
is still over a 1000 pages, even if they are relatively
small pages.