CMSC 491/691: Graphics for Games

Fall 2017, TuTh 11:30 — 12:45, ITE227

Description:

This course is an introduction to some of the computer graphics methods commonly used in 3D computer games. Computer graphics encompasses a wide variety of algorithms and techniques, many more than can be covered in just one or two courses. This course is similar in style and scope to CMSC 635/Advanced Computer Graphics, but uses computer games as a focus and motivation to explore a different set of graphics algorithms. Topics include graphics data structures, design of interactive applications, and real-time graphics. Students will learn several common algorithms in each topic area in sufficient depth for implementation.

Note that (as the course title says), this is a course about computer graphics, specifically 3D graphics, as used by many games. It is not a class about playing games, nor about all of the other equally important aspects of creating a game (AI, art, game play, interface design, ...). I expect that the class will be a lot of work, but hope that you will find it rewarding.

Objectives

On successful completion of this course, students will

Know a variety of advanced graphics techniques used in games

Apply a selection of these techniques

Integrate an advanced graphics technique into a game environment

Present technical topics to a knowledgeable audience

Instruction:

Piazza

There is a Piazza site for this class. Everyone enrolled in the class will be added to this site. Class
announcements will be made there, so you should either check this site periodically, or make sure it is set to send you messages by email. You should also use it
for public communication with your classmates, and the
instructor. Questions on concepts and algorithms, especially relating to the assignments, should be asked on Piazza.

Please only post messages
appropriate for the entire class to see. Be sure to send messages
about grades or other private matters directly to the instructor
or grader.

Texts

None Required

Possibly useful

Grades:

Grades will be based on programming assignments (40%), one in-class presentation (10%), presentation feedback (20%), and a final project (30%).

Students taking the course for graduate credit (i.e. CMSC 691)
will be expected to do extra readings and extra parts on each
assignment.

Academic Honesty

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong.

For the individual assignments, you are allowed to discuss concepts, assignments and algorithms, but the actual programming is expected to be your own work. Submit a readme with each assignment describing the assignment and also any and all help you received.

The group project can use additional external software and libraries with prior instructor approval. Combining this project with projects in other classes is also OK, as long as you get prior approval from both class instructors. Outside of approved exceptions, everything else you submit should be your own. If you are required to have a written submission, all text, figures and images should be your own.

Assignments:

Programming assignments will be built within the Unreal Engine game engine, but will require the use of
the C/C++ programming language. These assignments may be
time-consuming. START EARLY! A tentative list is
given below:

Assignments are to be submitted electronically by 11:59 PM on
Friday of the week listed. Assignments submitted up to two days
late (by Sunday) will be penalized 15 percent of the possible
score. Assignments more than two days late will receive a score of
0.