Introduction - Computer Science Department

advertisement
CSE 381 – Advanced Game Programming
Introduction
Pong by Atari, released to public 1975
Who am I?
Richard McKenna
E-mail: richard@cs.stonybrook.edu
Work phone: 631-632-9564
Office Location: CS Room 1436
Office hours:
Mondays 12pm-2pm
Wednesdays 11am-1pm
and by appointment
Personal Link: http://www.cs.stonybrook.edu/~richard
Course Web Page
• Home page:
–
–
–
–
http://www.cs.stonybrook.edu/~cse381
announcements
syllabus
schedule
• Blackboard (http://blackboard.stonybrook.edu)
– message boards
– grades
What is this course about?
• This course explores the concepts and
technologies behind making 3D, networked
games. This will include the examination of game
engine creation as well as the use of middleware to
build graphically sophisticated game systems.
• Prerequisite: CSE 380 or CSE 328
Course Topics
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Using 3D Graphics
Lighting Techniques
Meshes & Materials
Texturing
Skeletal Animation
Shading
Game Engine Creation
Game Engine Scripting Languages
3D World Collision detection algorithms
Peer-to-Peer Networked Gaming
Client/Server Networked Gaming
Special Effects in Games
Creating Worlds
MMORPG Architecture (conceptually only)
Course Goals
• At the end of the course you should have the
following knowledge and skills:
– Fluency in the vocabulary of graphical and networked
game programming
– An understanding of the technologies underlying
modern graphical game systems.
– Skill in the use of middleware to build graphically
powerful game systems.
– The ability to piece together various established game
technologies such that they may form a cohesive unit.
What will not be covered?
•
•
•
•
•
Windows Programming
Game Timing
Game Input Programming
Game Sound & Music Programming
Game Design & Gameplay issues
Lab Facilities
• CS Windows Lab
– http://www.cs.stonybrook.edu/facilities/windowslab
– CS 2114, CS 2120, CS 2126, & CS 2129
– all registered students have accounts
• Room combo
– soon to follow
Course Textbook
Game Coding Complete, 4th Edition
by Mike McShaffry & David Graham
Published by Cengage
ISBN 978-1133776574
http://www.mcshaffry.com/GameCode/
Good Reference Course Textbooks
Game Engine Architecture
by Jason Gregory
Published by A K Peters, 2009
ISBN 978-1568814131
Real-Time Collision Detection
by Christer Ericson
Published by Morgan Kaufmann, 2005
ISBN 978-1558607323
Good Reference Course Textbooks
Best of Game Programming Gems
by Mark DeLoura
Published by Cengage
ISBN 978-1584505716
3D Graphics for Game Programming
by JungHyun Han
Published by Chapman & Hall
ISBN 978-1558607323
Your First Assignment
Game Coding Complete, 4th Edition
by Mike McShaffry & David
Graham
Read Chapter 1 for Wednesday
Note Reading Assignments on class
schedule page
How are grades computed?
• Midterm Exam:
20%
• Final Exam
20%
• Team 1 Project Assignments:
30%
• Team 2 Project Assignments:
30%
_____
100%
AN IMPORTANT NOTE ON ACADEMIC DISHONESTY
• All work you submit for homework, projects, or
exams MUST be your own work.
• If you cheat or aid someone in cheating, you will
automatically fail this course and be brought up on
charges of academic dishonesty without warning.
• NO EXCEPTIONS WILL BE MADE!
Game Technologies
• Games have become amazingly complex
• Use many different technologies seamlessly
My Criteria for Choosing Game Technologies
1. Is it high quality?
– Can it do all the things I want to do?
– Can it do them well, i.e. efficiently ?
2. Is it easy to use?
3. Is it widely used?
– important for distribution & usage
– reading file formats
4. Is it well supported/documented
– tutorials and communities are important
5. Is it free/affordable?
What types of tools might we need to build an FPS?
• Game Engine
– optimize commonly used functions (like drawing
world)
– bring everything together (place things in world)
• IDE
– for writing engine & game code
•
•
•
•
•
Terrain modeler
Shape modeler
Animator
Texture Editor
Building/Interior modeler (maybe)
We’re programmers
• So we care about 2 tools:
• Game Engine
– optimize commonly used functions (like drawing
world)
– bring everything together (place things in world)
– Author’s code base + your code
• IDE
– for writing engine & game code
Our Tools
•
•
•
•
•
•
•
C++
C#
DirectX & HLSL
Visual Studio 2012
The Gimp
Blender3D
And of course, SVN!!!
Unity3D
• For Team Project #2
For Visual Studio
• To get your own copy:
– Go to DreamSpark and login (first Register if you don't have an
account of course)
– http://it.stonybrook.edu/software/dreamspark-premium
– Click on "To order new software click here" link
– From the "Search by product titles" combo box, select "Visual
Studio Professional Edition and it to your cart
– Check out your order
– Download and install.
Programmers Dilemma
• We write programmed solutions that give us less
work
• Who gets the work?
– designers, artists, etc.
• Tools continue to become more capable
– look at Maya
– used to be the work of programmers
C/C++
• C++ is almost the industry standard
• Why would programmers still use C?
• Why not Java or C#?
Wednesday
• We talk big picture
• We setup the code
• Your HW:
• Read Ch.1
• Make an account to ask questions:
http://www.mcshaffry.com/GameCode/
Download