COURSE DESCRIPTION
An introduction to the fundamental concepts of computer game programming. Students design and develop original games for PCs applying proven game design and software engineering principles.
COURSE OBJECTIVES
- Build and then integrate technologies such as multimedia, artificial intelligence, and physics modeling into a cohesive, interactive game application.
- Introduce the principles of game design that make for a playable experience.
- Learn and use software engineering, team project management, and prototype presentation principles in a game development context
COURSE TOPICS
- GUI programming for games
- Tile-based graphics
- Page & side scrolling algorithms
- Sprites & bitmap animation
- Collision detection
- Physics based modeling
- Differing game types, modes, & perspectives
- Game & level design
- Rapid prototyping & game testing
- Game project management
- Game design documentation
- Game program architecture
- Sound & Music
- Game input devices
- Artificial Intelligence in games
- Pathfinding Algorithms
- Render Threading
- Efficient Memory Managment
- Game Timing
- Game Engine Design Patterns
- Optimization techniques
- Gaming industry issues
- Video game history
REGISTRATION
Those interested in registering for CSE 380 should be aware of the following:
- You must have taken CSE 214 and received a C or better
- You should attend the first lecture to ensure your spot in the course.
INSTRUCTOR
Richard McKenna
Lecturer
Computer Science 1436
Office Hours: MW 12 pm - 2 pm and by appointment

TEACHING ASSISTANT (Grading & Guru)
Shah Pavel Jamal
Office Hours: Tuesday & Thursday, 5:30pm-7:30pm
in CS 2110

LECTURE
Tuesdays & Thursdays
11:20 pm - 12:40 pm
Computer Science Building Room 2129
COURSE PLATFORMS
All work in this class will be done using the following:
- C/C++ Programming Languages
- Windows platform
- DirectX SDK (November 2008 is latest release)
- Visual Studio IDE, to get your own copy:
- Go to Stony Brook's MSDNAA Web page and login (first Register if you don't have an account of course)
- 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.
COURSE TEXTBOOKS
Reading assignments may be given this semester from the following textbooks:
Introduction to Game Development
by Steve Rabin
Published by Course Technology, 2005
ISBN 1584503777
C++ Primer Plus, 5th Edition
by Stephen Prata
Published by Sams, 2004
ISBN 0672326973
REFERENCE TEXTBOOKS
Content will referenced periodically from the following textbooks:
Rules of Play: Game Design Fundamentals
by Katie Salen and Eric Zimmerman
Published by MIT Press, 2003
ISBN 0-262-24045-9
Best of Game Programming Gems
by Mark DeLoura
Published by Course Technology, 2008
ISBN 1-58450-571-0
COURSE COMPONENTS
- Individual mid-semester Project - Each student will demonstrate their ability to complete a working scrolling computer game by making an original game where the student is the main character. This game will turn ordinary day to day events into action, employing the programming and design concepts learned early in the semester. Periodic benchmarks will be required as the semester progresses to ensure progress is made at the proper pace. Games will be graded based on a set of technical requirements as well as the playability (is it fun?) of the game and creativity. All students will give a presentation of their game when it is complete.
- Individual Project Benchmarks - Periodic benchmarks will adhere to the following rules:
- Benchmarks will provide specific requirements from the instructor with regards to design, coding, and documentation.
- A grade will be given for each benchmark.
- Should a student miss a benchmark, the next one cannot be met unless all previous ones are also met.
- Credit for individual benchmarks will not be given for late completion.
- Serious Game Group Project & Presentation - As the semester progresses, students will divide themselves into teams of 2 or 3 and will design and develop their own original serious computer games. A serious game is a game that educates the player in some way. Serious games can be brutally boring (like a training game), or can be fun and entertaining if done well. This semester each group will choose a subject and make a game around that subject that entertains and informs the user. Note that a serious game does not have to be a tutorial-like game, but rather can simply reinforce prior knowledge of some material. Teams may employ whatever game genre they like (i.e. Strategy, Action, Role Playing, etc.), as long as it is a real-time game (not event based) that meets the benchmark technical requirements.
Teams will work together to come up with their own game concept, and then will decide how to divide the work fairly among the team members. As with the individual projects, teams must meet periodic benchmarks. Team programs will be presented to the class at the end of the semester. Each team member will receive a separate grade according to their contributions to the project and presentation. Grades will be based on technical game requirements as well as game design, playability, documentation, and presentation. - Group Project Benchmarks - Group project benchmarks will adhere to the same rules as those for the individual projects.
- Design Exercises - In-class and take-home design exercises to help students think more creatively and to get them thinking about game and level design.
- Live Coding Exam - This exam will be given at a prescribed time that is convenient for all. Students will be given created projects with partially complete classes to which they will add to source files to complete coding exercises. The exam will take place in the TransLab.
GRADING BREAKDOWN
| Individual Project Benchmarks | 15 % |
| Individual Project Demo | 15 % |
| Group Project Benchmarks | 15 % |
| Serious Game Group Project Demo | 25 % |
| Design Exercises | 10 % |
| Live Coding Exam | 20 % |
| 100 % |
STUDENT PROJECT PAGES
Each student will provide the instructor with a URL that provides links to the given student's individual and team project pages. These project pages will specify all project details, and are where all benchmark progress (including design documents, source code, and further documentation) is to be posted. All student pages will be made available through the navigation bar of this site.
ACADEMIC DISHONESTY
Read This! You may discuss the assignments in this course with anyone you like, however each student's submission must be his or her own work, and only his or her own work. Any evidence that a submission has been copied, shared, or transmitted in any way between students, or has been downloaded from the Internet, or has been written by others in previous semesters will be regarded as evidence of academic dishonesty. Additionally, any evidence of sharing of information or using unauthorized information during an examination will also be regarded as evidence of academic dishonesty.
The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an `F' grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.
Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College laws. If you have a situation that may tempt you into doing something academically dishonest, resist the urge and speak with your instructor during office hours for help.
SPECIAL ASSISTANCE
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS) in the ECC building (where the Computer Store used to be), 632-6748v/tdD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.
If you need general computer help, you can use the Computer Science Help Desk. Services offered include setting up an account on a department server, using Windows NT, using a browser, and connecting to the campus network. The Help Desk office is located in the SBCS Office - Room 2110.
Web page created and maintained
by Richard McKenna