The representation of the following Course Requirements on a year-by-year basis is just a suggestion. Students are free to take these courses in any order they choose, provided they have mastered the course-specific prerequisites.
Game Design Concentration
First Year
Second Year
Third Year
- 3 Liberal Studies
- 2 Major Elective
- 1 Open Elective
Fourth Year
Gameplay Programming Concentration
First Year
Second Year
Third Year
Fourth Year
Systems Programming Concentration
First Year
Second Year
Third Year
Fourth Year
GAM 226
FUNDAMENTALS OF GAME DESIGN
This course provides students a practical foundation in game design with a focus on concept development, design decomposition, and prototyping. Using game design theory, analysis, physical prototyping, playtesting, and iteration students learn how to translate game ideas, themes, and metaphors into gameplay, game pitches, and design documents. Students will analyze and recognize play that exists in important games, stories, and other media.
GAM 240
PLAYGRAMMING
This workshop introduces computer programming to artists and game designers. Programming is an art, but before students can create masterpieces they first need to explore, play, and sketch with code. Students learn basic concepts and techniques of computation and apply these to craft gameplay experiences, improvisational experiments, and software toys. Students will author code from scratch and remix code to complete their weekly projects. No prior programming experience or knowledge is required. PREREQUISITE(S): None
GAM 244
GAME DEVELOPMENT I
This course provides students additional theory and practice with an emphasis on game design and storytelling for games. Students continue learning about game development processes and techniques and how to apply advanced game design principles to create components of a 2D game.
GD 105
INTRO TO VISUAL DESIGN
This course introduces the basic concepts of design for time-based digital media. Students study the principles of composition and color theory, and how these are affected by movement, duration and display. Vector and bitmap manipulation tools are explored in relation to game design, video and Internet production. PREREQUISITE(S): None
ANI 230
3D DESIGN & MODELING
Students will use computer modeling to explore the principles of 3-dimensional design. Projects involving object, character and architectural modeling will emphasize the aesthetic concepts of spatial proportion (scale, angle and position), silhouette, negative space, rhythm, balance, light/shadow and texture. Students will emerge with the ability to create well designed 3D models, and be familiar with the basics of polygonal modeling, texturing, lighting and rendering for animation, computer games and cinema. This course has an additional fee. PREREQUISITE(S): None
GAM 205
EVOLUTION OF GAMES
This lecture course introduces students to the evolving forms, uses, and design of games. Topics covered include the relationship between game design and play, the role of games in fueling the technological imagination, the changing contexts in which game are designed and played (art, social impact, health, education), and the rise of the independent games sector. Students will produce weekly written responses to course material, lead a seminar discussion in small teams, and produce a final written or multimedia paper. PREREQUISITE(S): None
GAM 341
INTRODUCTION TO LEVEL DESIGN
Level design is the art of creating believable environments, stages and missions for video games. This course explores topics including architecture, flow, pacing and puzzles. Using a 3D level editor, students will investigate technical design issues including the construction, texturing, lighting and scripting of modern game levels. The roles, duties and challenges of the level designer will also be discussed. PREREQUISITE(S): (GAM 224 or GAM 226) and GAM 245
GAM 245
GAME DEVELOPMENT II
This course emphasizes 3D game production. Students apply advanced 3D game design development principles to create deliverables for 3D games. Students will work with an existing game engine and content pipeline. The focus of the class will be on the creation and use of different types of content, key development issues, process management, and professional practices. PREREQUISITE(S): GAM 244
GAM 340
PRACTICAL SCRIPTING FOR GAMES
This workshop introduces game scripting to artists and game designers. A game script is a short list of commands that control something in a game, such as how a character moves, or an enemy's behavior. Students will learn to read, modify, and author scripts that generate and affect a variety of game elements over the course of weekly projects. PREREQUISITE(S): GAM 240 or CSC 241
ANI 231
3D ANIMATION
This is an introductory course in 3D animation. It will emphasize traditional animation principles as applied to 3D animation. Topics will include: principles of animation, storyboarding, transformations and deformations of 3D objects, rigging, camera and light animation. This course has an additional fee. PREREQUISITE(S): ANI 230
GAM 230
INTRO TO GAME PRODUCTION
Game development is a big business, and production teams can now exceed one hundred people. This course is an introduction to the production methods used in the game industry, and to the demanding role of the Producer on the game development team. Students will work to develop skills in team building, project presentation, organization, and dealing with people. Subjects covered include scheduling tools, collaborative software, project management, vendor relations, inter-departmental relations, and quality assurance. PREREQUISITE(S): none
GAM 365
ADVANCED GAME DESIGN
This is a studio course in which students work in teams to design and develop slices of polished small-scale gameplay experiences. The focus is on developing team-based creative and technical processes to produce innovative, engaging, and playable games. Teams will iteratively design and develop two distinct gameplay experiences or "vertical slices." Each slice will demonstrate an understanding of the role of game mechanics, game art, audio, and technology platform in creating a cohesive and compelling gameplay. PREREQUISITE(S): GAM 341
GAM 392
GAME MODIFICATION WORKSHOP
In this course, students will develop skills in game design and development through the construction of a "mod" of an existing game. Emphasis will be placed on the game development life cycle from concept through release, on productivity in a team environment, and on effective project management practices. Prerequisite: GAM 245
GAM 312
GAME USABILITY AND PLAYTESTING
The goal of game user research (GUR), which includes game usability and playtesting, is to collect unbiased game play data that willl help design/development teams make better games. There are multiple GUR methods that work best at different points in the development cycle and it is the game user researcher's job to understand how and when to effectively use them. In this course students will learn a variety of methods for evaluating games, where in the development cycle they are applied, and perform common GUR evaluations including competitive reviews, heuristic evaluations, usability tests and playtesting. PREREQUISITE(S): GAM 244
GAM 250
DIGITAL SOUND FOR COMPUTER GAMES
Acquisition and computer representation of sound. Sound standards. lossy and lossless compression. Synthesis and processing of acoustic signals. Acquisitions of physical acoustic signals. Microphone geometries. Introduction to Foley editing. Game specific topics include: game audio design patterns, interactive processing pipeline for digital audio, music sequencers for games, sound APIs.
GAM 229
DESIGN WRITING AND PRESENTATION
This lecture course focuses on effective communication throughout the development process from writing game design documents to playtesting reports and postmortems. Special attention will be paid to the critical and analytical components of design writing and the clarity of articulation. A further emphasis is put on the preparation and delivery of engaging presentations, particularly game pitches. PREREQUISITE(S): GAM 226 and WRD 104
IT 223
DATA ANALYSIS
(FORMERLY CSC 323) Application of statistical concepts and techniques to a variety of problems in IT areas and other disciplines, using a statistical package for simple data analysis. Course topics include descriptive statistics, elementary probability rules, sampling, distributions, confidence intervals, correlation, regression and hypothesis testing. PREREQUISITE(S): MAT 130 or placement
GAM 333
THE BUSINESS OF GAMES
This course gives an introduction to the business aspects of the game development industry, including development, publishing, distribution and marketing. Subjects covered include game development contracts, milestone-based development, management techniques, marketing, customer and community support, personnel, budgeting, outsourcing, pipelines, and external partnerships. PREREQUISITE(S): GAM 224 or GAM 226
GAM 394
GAME DEVELOPMENT PROJECT I
Students work in teams to design and develop a videogame that demonstrates their mastery of game design and development. Additionally, students will reflect on ethical decision making and professional ethics in the game industry. This course and its continuation, GAM 395, must be taken consecutively. PREREQUISITE(S): GAM 374 (Senior standing)
GAM 395
GAME DEVELOPMENT PROJECT II
Continuation of GAM 394. PREREQUISITE(S): GAM 394
CSC 241
INTRODUCTION TO COMPUTER SCIENCE I
An introduction to problem solving, algorithms and structured programming using a higher-level programming language. The course will focus on skills for developing algorithms, and for writing and debugging programs. Students will learn how and when to use loops, conditionals, and functional abstractions in the context of problems motivated by real world applications. PREREQUISITE(S): MAT 130 or Mathematics Diagnostic Test placement into MAT 140.
CSC 242
INTRODUCTION TO COMPUTER SCIENCE II
An intermediate course in problem solving, algorithms and programming. Programming skills are further strengthened through more complex and larger programming assignments. The assignments will also be used to introduce different Computer Science areas (e.g. a Client/Server application for the Distributed Systems area). Classes and object oriented programming are motivated and introduced. PREREQUISITE(S): CSC241
MAT 140
DISCRETE MATHEMATICS I
Combinatorics, graph theory, propositional logic, singly-quantified statements, operational knowledge of set theory, functions, number systems, methods of direct and indirect proof.
Prerequisites:
MAT 130 or above or equivalents or placement by test is a prerequisite for this class.
CSC 309
C++ FOR PROGRAMMERS
This course covers the essentials of C and C++ programming, focusing primarily on the topics of memory management and object-oriented programming. Topics include pointers and dynamic allocation, operator overloading, copy constructors and destructors, inheritance and polymorphism. PREREQUISITE(S): CSC 242 or CSC 243 or CSC 224 or proficiency in another programming language.
CSC 393
DATA STRUCTURES IN C++
This course covers the design, implementation, application and analysis of algorithms on a variety of data structures, including lists, stacks, queues, trees, heaps, hash tables and grpahs. Implementation is done in C++, in particular with the use of templates and the C++ standard template library (STL). PREREQUISITE(S): CSC 262 or CSC 309
GAM 372
OBJECT-ORIENTED GAME DEVELOPMENT
Students will learn principles and techniques needed to build robust and efficient large scale game software systems. Principles of object-oriented modeling, design, implementation, and testing of large-scale game systems will be emphasized. Topics include design patterns, application frameworks, architectural design, and the applications in the software development process to improve the extensibility, maintainability, and reliability of software systems. PREREQUISITE(S): CSC 393
GAM 374
FUNDAMENTALS OF GAME PROGRAMMING I
Many computer games are based on physical interactions between game objects e.g. collisions, evasions, pursuit, etc. Design and implementation of these actions is not an easy problem. Concept and character development, storyboarding, prototyping, testing and implementation will be discussed. Students will gain hands on experience in game programming using a low level graphical library. PREREQUISITE(S): CSC 262 or CSC 309
GAM 377
FUNDAMENTALS OF GAME PROGRAMMING II
The class moves beyond the basics of game programming and into advanced programming, architecture, and integration techniques. Topics include working with a production-quality content pipeline, integration of external digital content creation tools, scalability, complex animations, shaders, environment construction, gameplay techniques, controllers, camera theory, and collisions. PREREQUISITE(S): GAM 374
GPH 321
COMPUTER GRAPHICS DEVELOPMENT I
This course presents the fundamental mathematical foundations of graphics including an introduction to the basic geometric constructions of points, vectors, transformations, matrices and homogeneous coordinates. The course will explore applications of these mathematical techniques to rendering 3D scenes and lighting and shading surfaces in 3D. Advanced topics will include several key techniques from computational geometry such as the computation of object intersections and applications to rendering 3D scenes and object collisions. The focus of this course is on building the software from scratch rather than using a graphics application programming interface (API) so that students will gain a deeper understanding of the techniques they will be using in later courses through an API such as OpenGL or Direct3D. PREREQUISITE(S): CSC 300 or CSC 383 or CSC 393
GPH 329
COMPUTER GRAPHICS DEVELOPMENT II
(Formerly CSC 329) Basic graphics architecture. Coordinate systems. Three-dimensional representations and transformations. Simple visible-surface algorithms. Introduction to illumination. Gouraud and Phong shading. Antialiasing. Texture mapping and elements of animation. Students create a graphics package using a high-level graphics API such as OpenGL. PREREQUISITE(S): GPH 321 or(CSC 393 and either MAT 220 or MAT 262)
CSC 373
COMPUTER SYSTEMS I
A course on computer systems topics, focusing on machine-level programming and architecture and their relevance for application programming. Information representations, assembly language and debuggers, processor architecture, program optimization, memory hierarchy and caching. PREREQUISITE: ((CSC 383 or CSC 393 or CSC 301) and Math 140) or (CSC 224 or CSC 261 or CSC 309 ) and graduate standing.)
CSC 374
COMPUTER SYSTEMS II
A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Linking, processes, virtual memory, dynamic memory allocation, system level I/O, networking and network programming, concurrent servers and web services. PREREQUISITE: CSC373
GAM 391
GAME PERFORMANCE OPTIMIZATION
This game programming class will focus on developing software to efficiently use the fixed CPU power and resources that are found in today's console and mobile devices. This course will use real-world game examples that demonstrate performance and optimization issues that software architects face in game development. These problems include: performance enhancements through extended matrix instruction set, dynamic memory usages, performance related to increasing run-time systems to very large scale, C++ language enhancements and extensions, algorithms, streaming and profiling. PREREQUISITE(S): (CSC 301 or CSC 383 or CSC 393) and CSC 374