pong by atari, released to public 1975 cse 381 – advanced game programming introduction

24
Pong by Atari, released to public 1975 CSE 381 – Advanced Game Programming Introduction

Upload: hugh-bell

Post on 22-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Pong by Atari, released to public 1975

CSE 381 – Advanced Game ProgrammingIntroduction

Who am I?Richard McKenna E-mail: [email protected] Work phone: 631-632-9564 Office Location: CS Room 1436 Office hours:

Mondays 12pm-2pmWednesdays 11am-1pmand 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 Editionby Mike McShaffry & David GrahamPublished by CengageISBN 978-1133776574

http://www.mcshaffry.com/GameCode/

Good Reference Course Textbooks

Game Engine Architectureby Jason GregoryPublished by A K Peters, 2009ISBN 978-1568814131

Real-Time Collision Detectionby Christer EricsonPublished by Morgan Kaufmann, 2005ISBN 978-1558607323

Good Reference Course Textbooks

Best of Game Programming Gemsby Mark DeLouraPublished by CengageISBN 978-1584505716

3D Graphics for Game Programmingby JungHyun HanPublished by Chapman & HallISBN 978-1558607323

Your First Assignment

Game Coding Complete, 4th Editionby 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/