While enrolled in game degrees at UAT, students experience a dual curricular approach.
The first element is a carefully crafted set of classes that are designed to rigorously
prepared students for the game industry. The programs themselves move from entry level
work, through generalist work, to specialist work and beyond. Programs are designed to
solidly equip students with the skills needed to get a job in the industry. The second
element is a required studio experience that accompanies the curriculum and fully simulates
a game development studio to get students working to produce complete, original games before
they graduate. The studio experience links deeply to the classes students take and creates
an integrated experience that provides a real path to mastering the skills needed to succeed
in the industry today.
CSC102 - Introduction to Programming
Credits: 3.00
Prerequisite(s): None
The purpose of this course is to introduce the fundamentals of computer science and programming to students majoring in this area. Students will become familiar with problem-solving techniques and algorithm development using computers, including a structured high-level programming language. Students will also explore object-oriented programming including the design considerations and conventions used in development of object-oriented applications. Topics will include flow of control, assignment, arrays, functions, and input and output, among others.
CSC202 - C# Programming I
Credits: 3.00
Prerequisite(s): CSC102
Based on the .NET framework, C# provides a full-fledged development system for creating powerful, stand-alone applications. This course introduces the student with the C# code structure and syntax. Topics include data types, control structures, functions, file management, string manipulation, windows forms fundamentals, console-based applications and an introduction toobject-oriented design in C#.
CSC203 - Java Programming I
Credits: 3.00
Prerequisite(s): CSC102
This course surveys the major elements and applications of object-oriented programming and the JAVA programming language. Students are introduced to JAVA syntax, data types, operators, IO operations, control structures, member functions and classes. Students learn the fundamental skills needed to develop and debug simple object-oriented applications.
CSC215 - C/C++ Programming I
Credits: 3.00
Prerequisite(s): CSC102
This course provides an introduction to the syntax of C++ as a programming language, as well as an introduction to related concepts in C. Topics include data types, control structures, arrays, pointers, functions, classes, inheritance, virtual functions and polymorphism.
CSC280 - Data Structures and Algorithms
Credits: 3.00
Prerequisite(s): CSC215, MAT250
This course surveys the specification and implementation of containers as abstract data types (ADTs). Structures covered include strings, vectors, stacks, queues, sequential lists and binary trees. Other topics include running time analysis, recursion, generic programming and dynamic memory management. Object design and object tools are emphasized.
GAM101 - Introduction to Game Design
Credits: 3.00
Prerequisite(s): none
Whether the goal is to become a game designer, artist or programmer, this course is a path into the world of video game production. Students will explore what career paths lay ahead in the respective areas of game development through an understanding of the game design process and develop awareness of the many positions within the game industry. By learning fundamental design and visualization techniques needed to express complex game ideas, students will apply professional documentation techniques to their projects. Students will also learn how to convert their own game-playing skills to tools used to analyze popular games and break down game play elements to discover what makes the greatest games tick.
GAM104 - Introduction to Game Programming
Credits: 3.00
Prerequisite(s): CSC102 or instructor approval
Recommended for students with little or no prior programming experience. Students will use a scripting language to study the basics of computer programming: variables, data types, looping, conditional logic, functions, arrays, types, and other basic concepts. The ability to explore these concepts prior to learning a more complex language such as C++ allows the student to learn game concepts without a language course and prepares the student for future courses in this program during the first year. Students will gain valuable programming experience by writing simple tutorial-based games.
CSC262 - C# Programming II
Credits: 3.00
Prerequisite(s): CSC202 or CSC203
C# Programming II concentrates on object-oriented principles. Students will learn how to create and integrate class objects. Topics will include the use of inheritance, files access, error handling, collections, user-defined types, events and polymorphism. Student will also create assembly libraries.
CSC263 - Java Programming II
Credits: 3.00
Prerequisite(s): CSC202 or CSC203
This course introduces the advanced principles of object-oriented programming using the Java programming language. Students are introduced to the concepts of developing a business application, including user interfaces, file input and output (both data and text), security considerations and database connectivity.
CSC275 - C++ Programming II
Credits: 3.00
Prerequisite(s): CSC215
Built upon CSC215, this course explores advanced coding techniques in C++. Topics include interface-based programming, basic data structures, exception handling, advanced algorithms, sockets, templates and the Standard Template Library.
CSC318 - Software Engineering Principles
Credits: 3.00
Prerequisite(s): CSC280 and (CSC262 or CSC263 or CSC269 or CSC275) and ENG301
This course introduces the principles of software engineering. Students are introduced to the concepts of requirements development and analysis, scheduling, project estimation, design and development, statistical tracking, as well as testing and verification techniques. This course will involve a smallto- medium- scale software engineering project that will require team effort.
GAM205 - Gameplay Programming Concepts
Credits: 3.00
Prerequisite(s): GAM104 and (CSC215 or CSC202 or CSC203)
Gameplay Programming Concepts teaches students the most important theories and concepts in game programming, and is the prerequisite for most of the game programming curriculum. Students learn concepts such as the game loop, frame rates, synchronization, timing, 2D and 3D graphics rendering, timed animation, user input, collision detection, and the most common algorithms used in game development. The platform used in this course to study these concepts is Microsoft's XNA Game Studio. Although XNA is based on the C# language, this course does not require C# as a prerequisite because a custom framework within the XNA environment is provided to students, with no significant programming requirement. However, students will benefit from prior knowledge of C#.
GAM215 - Game Scripting
Credits: 3.00
Prerequisite(s): GAM104
High-level scripting languages allow for rapid development, content creation and interactive events, and drive many of today’s most powerful game engines and tools. Used for both game logic and automation tools, scripting language has become a mainstay in game production. Some of these languages have become so powerful that users can create entire stand-alone games, and are becoming a basis for full-scale AAA development. In this course students will choose a scripting language (such as MAX, MEL, LUA, Python, TorqueScript, Ruby or ActionScript) and create game-related projects, tutorials and proof-of-concept applications.
GAM240 - Game Engine Programming I
Credits: 3.00
Prerequisite(s): GAM104 and (CSC215 or CSC202 or CSC203)
Recommended: RBT131
This course introduces the fundamentals of game engine programming by customizing and enhancing an existing framework. Students will learn the core concepts of engine programming. Symptoms of taking Game Engine Programming I may include a greater understanding of frame rates, synchronization, timing, 2D and/or 3D graphics rendering, timed animation, user input, multiplayer, physics, collision detection and the most common algorithms used in game development. Many of these fundamentals will be implemented into a working engine from which playable games may be developed.
GAM303 - Applied Game AI Concepts
Credits: 3.00
Prerequisite(s): CSC280, CSC215
Quality implementations of artificial intelligence can make or break a game. This course will synthesize the theories and concepts of artificial intelligence with the skills of game programming. Students will program a wide variety of artificial agents utilizing a variety of tradition, modern and theoretical techniques. The student will apply algorithms for pathfinding, strategy, personality and other behaviors. Player interactions with these behaviors will be examined to provide challenging, balanced and enjoyable gameplay.
GAM322 - DirectX Programming II
Credits: 3.00
Prerequisite(s): GAM222
DirectX is the core game and graphics library used for game development on the Windows and Xbox 360 platforms today, which represent the largest majority of users in the game industry. This second course extends the subjects learned in DirectX I with a primary focus on the Direct3D graphics library. Students will learn the fundamentals of 3D graphics and then move on to camera control, direct lighting, motion, 3D mesh loading and rendering, 3D mesh animation (key frame and skeletal), and 3D collision detection. These core subjects will prepare the student for the latter part of the course which covers pixel shaders, vertex shaders, particle systems, indoor and outdoor environments, and terrain and water rendering.
GAM275 - Mobile Game Programming
Credits: 3.00
Prerequisite(s): CSC203 and (GAM205 or GAM240)
Recommended: CSC330
Mobile games are a lucrative industry that is still in a state of rapid growth with tens of millions of users as a potential market for games, all delivered wirelessly on a royalty basis. This course teaches how to develop games for mobile platforms using appropriate languages and toolkits. Students will
explore the mobile hardware and learn about the specific techniques and challenges present in developing a game for a small screen and limited user input capabilities.
GAM315 - Console Game Development
Credits: 3.00
Prerequisite(s): CSC280 and (GAM205 or GAM240)
Recommended: CSC202, (CSC275 or CSC262) and RBT131
Developing games for dedicated hardware comes with its own set of challenges. This usually requires the game programmer to think in new and different ways. Students will explore techniques to optimize algorithms, memory usage and operations that are often taken for granted. The class will examine the architecture of these systems, the development tools, compilers, and any available libraries and development kits. The class will conclude with a game project.
GAM341 - Game Tools Development
Credits: 3.00
Prerequisite(s): GAM240, CSC318
Recommended: GAM322
A game is only as good as its tool chain. The engine, art, asset management, editors, physics, AI and sound are all tools that create a game. Almost every aspect of game development requires several custom-designed tools. This course teaches fundamentals of tool development. Art tools such as game-specific plug-ins are almost always required. Most of these plugins use scripting systems and this course will give an overview of those most commonly-used. Levels used in today's games are often complex and the amount of data itself can be overwhelming, thus the need for efficient data asset management systems for monitoring the integrity of game data. Data asset management methods are covered in both C++ and scripting languages such as Python or Lua. Basic editor creation and image manipulation are also covered.
GAM390 - Experimental Gameplay
Credits: 3.00
Prerequisite(s): (GAM370 and GAM215) or (GAM205 and GAM303)
Beyond the conventions of genre and the limitations of the commercial market lies the unexplored territory of radical new styles and types of gameplay. This course will toss out traditional genre in favor of blended designs and fresh ideas and explore such diverse topics as ARGs, user-generated content, physics and graphics toys, algorithmic games, one-button games, and alternative interfaces and input devices. Students will produce game projects based on nontraditional approaches to gameplay and original designs that innovate beyond static genres.
GAM403 - Advanced Game Programming Topics
Credits: 3.00
Prerequisite(s): Instructor approval
Note: A Student may take this up to 3 times for credit toward their degree This course covers advanced material not generally covered by other courses. Game programming consists of both science and art. The "art" of the process comes by learning advanced concepts and applying them in an efficient, cohesive manner. Students at this level will have learned the fundamentals of several topics. This course allows the opportunity to delve deeper into subjects such as advanced collision detection, game audio, motion planning, advanced AI, ray casting, advanced 3D game programming, physics and new technologies that may become available. Since this course covers a variety of topics with each semester possibly differing from the previous, students are allowed to take this course up to 3 times for credit toward their degree.
GAM470 - Advanced Gameplay Project
Credits: 4.00
Prerequisite(s): SEE INSTR
This comprehensive course allows the student to fully synthesize the techniques and skills learned to create a fully realized gameplay project. This course is dedicated toward producing a high quality player experience. Students will set a development schedule and work toward meeting their goals. Aside from programming, quality communication and teamwork will be stressed throughout the course.
COM226 - Communication in Technology
Credits: 3.00
Prerequisite(s): none
Through the exploration of technology concepts, students will introduce, demonstrate, inform and/or persuade the audience. Effective use of voice, nonverbal skills and visuals will be applied to topics such as robotics, virtual reality, internet speech and privacy, and/or technology ethics. Presentations will be followed by student-led discussions and brainstorming sessions about each technology topic. The art of seeing pros and cons pertaining to controversial concepts will be explored through group discussions. And, students will have the opportunity to create a resume and be formally interviewed for a technology position.
ENG101 - Composition I
Credits: 3.00
Prerequisite(s): ENG055 or equivalent
This course is designed to present effective techniques in organizing, developing and revising academic essays that reflect collegiate-level critical and logical thinking skills. Students will write a minimum of four essays, directed toward audiences with specific rhetorical situations, that stress descriptive, analytical, evaluative and persuasive/ argumentative writing. Students will also develop their critical reading skills: analyzing, evaluating and critiquing the claims and evidence used by various authors.
ENG102 - Composition II
Credits: 3.00
(GE, Humanities)
Prerequisite(s): ENG101
ENG102 is designed to introduce students to the essential language, theories and strategies of argumentation and research. The purpose of the course is to provide students with the tools necessary to develop arguments for specific audiences within specific rhetorical situations. Students will also develop their critical reading skills: analyzing, evaluating and critiquing the claims and evidence used by various authors. Finally, students will learn proper research skills and write an in-depth research essay/project.