CS 413: Virtual Worlds

Fall 2009 Course Syllabus

Northern Arizona University • College of Engineering, Forestry, and Natural Sciences
Department of Electrical Engineering and Computer Science

Course Information

Catalog Description: Explores the modeling, representation, and simulation of abstract environments. Topics include data organization, 2D and 3D graphics techniques, physics, AI, and user interaction. Prerequisite: CS 249
Software Used: The Plasmacore game framework is suggested; others (such as SDL/OpenGL) may be used.
Prerequisites: CS 249
Co-requisites: None
Skill Level: Advanced
Credit Hours: 3
Meeting Time: (LEC 10686) MWF 4:25-5:40, Engineering Room 314
Required Texts (2): Millington, "Artificial Intelligence for Games". Morgan Kaufmann, 2006. ISBN 978-0-12-497782-2.

Verth & Bishop, "Essential Mathematics for Games and Interactive Applications", 2nd. Ed. Morgan Kaufmann. ISBN 978-0-12-374297-1.

Web Pages: http://www.cefns.nau.edu/~ap27/cs413 (primary page - assignments posted here)
http://vista.nau.edu (for project submissions).
http://plasmaworks.com/plasmacore (for Plasmacore download).

Instructor Information

Instructor: Abe Pralle (Prah-lee), M.Eng. CSE
Office Hours:
Engineering Bldg. Rm 253
MF 3:00-4:00
Engineering Bldg. Rm 106
W 3:00-4:00
Email: Abe.Pralle (at) nau.edu
Phone: 523-8882 (email preferred)
NAU Address: Box 15600
Flagstaff, AZ 86011

Course Description

Video games and simulations are among the most complex and demanding software systems that a programmer can create. They require a mastery of and cohesive synergy between software techniques, algorithms, and data structures - all implemented in efficient, optimal ways.

In Virtual Worlds you will learn the most fundamental and useful techniques and design patterns for modeling, rendering, and controlling simulated game environments. After completing the course you will know the essentials of how to make 2D and 3D games and simulations.

Topics Covered

Coursework and Grading

The work consists of a number of research homework assignments and a number of software projects which include programming, creating a report, and making a presentation. Projects are individual effort.

Homework will be due every 1-2 weeks on Mondays. Projects will be due every 1-2 weeks on Wednesdays. Homework assignments and projects are both graded on a letter grade basis, with all homework assignments (roughly 10) weighted at 25% of your class grade and all programming projects (roughly 8) weighted at 75% of your class grade.

There are a number of objectives to accomplish with each project, but you have a fair amount of flexibility regarding the overall implementation details.

There are no exams or quizzes. No grades are curved or dropped.

Attendance

Attendance is not mandatory. However, you will need to come to class to learn the concepts that your projects are based around and to make your presentations!

Plagiarism and Cheating

Grades are a way to motivate and evaluate a student's mastery of a subject and their ability to get work done. The grades you get are not themselves truly important, but instead are representative of your knowledge, capabilities, and work ethic, and those are the things that matter.

If you plagiarize source code, fabricate results, make fraudulent claims, or attempt to cheat in any way, you are misrepresenting yourself, your level of understanding, your capabilities, and your ability to accomplish things. It is dishonest and unethical.

Anyone who plagiarizes, fabricates, or cheats will at the least receive a zero on that project.

Consulting with others and using their advice on projects is fine. However, the programs you submit should be your own work that you thoroughly understand and are entirely responsible for.

Web Page

Most assignments and handouts will only be available on the class web page at http://www.egr.nau.edu/~ap27/cs413 - they will not be handed out in class. Projects will be posted at least a week before they're due - usually the next project will be posted on the same day as the old project is due. Homework assignments will be posted by the Wednesday of the week before they're due. Any clarifications, corrections, and announcements will be posted on the web page.