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/