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 or CSE 230 or CSE 260 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 12pm - 2pm and by appointment
richard@cs.stonybrook.edu
HOMEWORK GURUS (Office Hours in CS 2110)
Chris Chen
Office Hours in CS 2110:
-Tuesdays & Thursdays 3pm-5pm
chenstopher@gmail.com
Matt Gruen
Office Hours in CS 2110:
-Wednesdays & Fridays 10am-12pm
mgruen@ic.sunysb.edu
Anthony Lomonaco
Office Hours in CS 2110:
-Mondays & Wednesdays 3pm-5pm
PMRAIDER00@YAHOO.COM
Office Hours Grid
| MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY |
|---|---|---|---|---|
| Richard McKenna (12pm-2pm) Anthony Lomonaco (3pm-5pm) |
Chris Chen (3pm-5pm) |
Matt Gruen (10am-12pm) Richard McKenna (12pm-2pm) Anthony Lomonaco (3pm-5pm) |
Chris Chen (3pm-5pm) |
Matt Gruen (10am-12pm) |
LECTURE
Mondays & Wednesdays
5:20 pm - 6:40 pm
Computer Science 2129
COURSE PLATFORMS
To be used for both the individual and group projects:
- C/C++ Programming Languages
- Windows platform
- DirectX SDK (June 2010 release is fine)
- Visual Studio IDE (2010 is latest version), 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.
To be used only for the group projects:
COURSE TEXTBOOKS
Reading assignments may be given this semester from the following 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
REFERENCE TEXTBOOKS
Content will also be 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
C++ Primer Plus, 5th Edition
by Stephen Prata
Published by Sams, 2004
ISBN 0672326973
COURSE COMPONENTS
- Individual mid-semester Project - Each student will demonstrate their ability to complete a working scrolling platformer computer game by making an original game where the student is the main character. This game will employ 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 primarily based on a set of technical requirements with playability (is it fun?) as a secondary criteria. 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, students may not make up that grade in the next one, but the project should continue
- Credit for individual benchmarks will not be given for late completion.
- Game Group Project & Presentation - As the semester progresses, students will divide themselves into teams of 3 and will design and develop their own original game. 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. Group projects will be required to employ use of the Lua scripting language for all game level data and the Box2D Physics Engine for collision detection.
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.
- Class Participation - There will be some in-class design exercises to help students think more creatively and to get them thinking about game and level design as well as to learn new technologies.
GRADING BREAKDOWN
| Individual Project Benchmarks | 15 % |
| Individual Project Demo | 25 % |
| Group Project Benchmarks | 15 % |
| Group Project Demo | 40 % |
| Class Participation | 5 % |
| 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.