Game Design - Game Programming School
     
 
Game Design.
Game Programming.
Game School.

 

A Degree in Game Programming

Where?
At UAT's campus in Tempe, Arizona.

How Long?
To earn a Bachelor of Science degree: 120 weeks.
To earn an Associate of Science degree: 60 weeks.

When can I start?
Apply anytime. Classes on UAT's campus start three times a year: September, January and May. See start dates

Tuition

2008 Tuition Fees—Resident
Undergraduate tuition for 2008 is $8,400.00 per semester.

2008 Tuition Fees—UAT-Online
Undergraduate tuition for UAT-Online students for 2008 is $4,900.00 per semester.

Legacy Tuition: see details

A UAT graduate with a major in Game Programming will:

  • Master the same languages and software used by the game industry.
  • Create game projects with C, C++, DirectX or OpenGL, as well as scripting languages.
  • Design projects in game engine creation, animation and rendering.
  • Focus on complex subjects such as game AI, interactive scripting and Artificial Life.
  • Create projects with industry-standard developer kits for consoles and handhelds.
  • Participate in every level of game development, from concept to publishing.
  • Graduate with contributions to or as author of at least three complete game projects.


See degree requirements

Game Programming Recommended Courses
UAT creates recommended course listings for every major to provide guidance to students in choosing courses that will appropriately support the described major. Recommended courses provide foundational knowledge in the discipline being studied. Students should work with an advisor in making course selections and when they wish to customize their major.

All course titles are followed by their number of credit hours. Prerequisites and co-requisites (if any) are listed below course titles.

Recommended - Complete 18 credits minimum:

CSC203 Java Programming I (3)
Java Programming I
Prerequisite(s): CSC100 Corequisite(s): CSC130 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 (3)
C/C++ Programming I
Prerequisite(s): CSC100 Corequisite(s) CSC130 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.
CSC263 Java Programming II (3)
Java Programming II
Prerequisite(s): CSC100, CSC130, 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 (3)
C++ Programming II
Prerequisite(s): CSC100, CSC130, 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.
CSC280 Data Structures I (3)
Data Structures I
Pre-Requisite(s): CSC100, CSC215, CSC130 Program specification and implementation of containers as abstract data types (ADT's); the structures 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.
CSC360 Artificial Life Programming (3)
Artificial Life Programming
Prerequisite(s): any level I programming course (CSC201 or CSC202 or CSC203 or CSC215) Artificial life, also known as A-life, is the study of life through the use of simulations of living systems. This course uses computer science as a test bed to attempt to answer such questions as: "What is life?", "How can we measure evolution?", and "Under what conditions does life-like behavior emerge?"
CSC370 Artificial Intelligence (3)
Artificial Intelligence
Prerequisite(s): any level I programming course (CSC201 or CSC202 or CSC203 or CSC215) This course surveys artificial intelligence techniques, theories, and applications including: knowledge representation, searching, expert systems, and machine learning. Modern AI research is concerned with producing useful machines to automate human tasks requiring intelligent behavior.
CSC425 Graphical Programming: OpenGL (3)
Graphical Programming: OpenGL
Prerequisite(s): CSC275, CSC280 Graphical Programming will include using both hardware and software components. The software components include optimized 3D data structures, rendering algorithms, object transformations, projections and interactions. Graphical Programming is a course designed to provide the student with the opportunity to learn about and implement the algorithms used to perform these graphic operations using OpenGL.
CSC465 Graphic Programming I: DirectX (3)
Graphic Programming I: DirectX
Pre-Requisite(s): CSC215 This course introduces the student to the concepts of game programming with DirectX. This course will introduce DirectX and its components. The course will utilize object-oriented C++. Students will examine DirectX development issues and their advantages.
CSC471 Parallel Programming (3)
Parallel Programming
Prerequisites: CSC263, CSC275 or CSC280 Parallel programming techniques needed for multi-processor shared-memory computer systems. Multi-processor architectures will be studied to illustrate their effect on program efficiency. Message-passing API, process synchronization and communication using appropriate languages are also applied.
GAM105 Introduction to Game Programming II (3)
Introduction to Game Programming II
Prerequisite(s): CSC100 and GAM104 or instructor approval Introduction to Game Programming II is the second part of this first-year crash course covering the basics of game programming. Students will learn to program 2D and 3D games with the game prototyping tool, DarkBasic Professional. This software uses the BASIC language, and features a powerful 3D game engine, making it possible to demonstrate high-level game programming concepts using a minimum amount of code. This first-year course will give students some experience writing several complete games in 2D and 3D, before moving on to a more challenging language such as C++.
GAM225 Web Game Programming (3)
Web Game Programming
Prerequisite(s): CSC100, CSC203 This course teaches students how to design and create webbased games using the Java language. Students learn how to create an Applet project in Java using the most popular IDEs, JBuilder and Eclipse. Students will start with writing simple vector graphics and will progress to raster graphics, learning how to load and draw bitmaps, how to create animated sprites and draw them transparently, and how to implement advanced 2D concepts like tile-based scrolling. By the end of the course, students will have created a complete game that runs in a web browser.
GAM275 Handheld Video Game Systems (3)
Handheld Video Game Systems
Prerequisite(s): CSC215 Handheld Video Game Systems is a comprehensive course on programming handheld devices with emphasis on Game Boy Advance and Pocket PC. Students will learn how to write and compile programs for these devices using C or C++, and how to test programs on the actual devices. The GBA section of the course will produce a complete game suitable for the student's portfolio, and which may be demonstrated on a real GBA. This course will also discuss and evaluate games on other handheld systems, such as PlayStation Portable, Nintendo DS, and cell phones.
GAM315 Console Game Programming (3)
Console Game Programming
Prerequisite(s): CSC215 Console Game Programming is a course focusing on console video game system development using the professional software development kits. The course at present focuses entirely on the Nintendo GameCube. Students will learn about the architecture of the GameCube, about the development tools and compiler, and will learn how to tap into the Dolphin SDK. Students will be writing complete GameCube programs while learning about 2D graphics, 3D graphics, controllers, memory management, and the audio system. The course concludes with students developing a complete game project.
GAM327 Game Development in C++ (3)
Game Development in C++
Prerequisite(s): CSC215 This course introduces the student to the concepts of game programming in C++ as well as programming for Windows and DirectX. In this course, students will dig beneath the surface and examine C++ in detail so they can get the advantages of C++ with none of the drawbacks. We'll examine a number of real-world C++ development issues along the way.
GAM420 Game Engine Development (3)
Game Engine Development
Prerequisite(s): CSC465 Game Engine Development is a comprehensive course that covers the design and implementation of a complete game engine. The goal of this course is to build a game engine from scratch, covering 2D & 3D rendering, user input, sound, music, AI, with complete game projects created during the course. Students will be free to explore different game genres as they build their ideal game engine, although the emphasis of the course lecture and textbook is on first-person shooter (FPS) games.

Recommended - Complete 12 credits minimum:

GAM101 Game Concept Design (3)
Game Concept Design
Pre-requisites: None Want to Play? This course is an overview of game development from the creative and theoretical (as opposed to purely technical) standpoint. Students will learn to analyze games and gameplay elements, examine genres and trends in gaming and formulate their own outline for an "ideal" game. We will also examine social issues and pressures related to gaming, and the ultimate question: why do we play games?
GAM150 Evolution of Electronic Games (3)
Evolution of Electronic Games
Prerequisite(s): none This is a critical review of the technological and cultural history of video games, from the first all-analog machines to the powerful console systems of today. We will discuss the primary innovators and historical figures of the industry as well as its continuing integration into everyday life, and analyze the trends and cycles that drive game design. Through analysis and example we'll look at the development of the game GUI, the formation of the classical game "genres," the explosion of game-related technology and the possible futures of the industry.
GAM170 Game Design Workshop I (3)
Game Design Workshop I
Prerequisite(s): GAM101 This course explores the conception, refinement and presentation of game design ideas in an atmosphere similar to a creative writing workshop. Students will work singly and in small groups to develop game ideas, compare and contrast them with published games and then create focused design documents for possible future production. We'll analyze past and present games with a focus on their ideas, concepts and mechanics and explore outside the boundaries of the traditional genres and limitations of the mass market. The end product will be several robust, polished game designs that have been tested by your most critical audience - your peers.
GAM200 Critical Game Studies (3)
Critical Game Studies
Prerequisite(s): GAM101, GAM220 This course is an introduction to advanced critical techniques and approaches to game design, game theory and the gaming audience. Using techniques of critical theory, ludology and game theory, we'll take a deep look at the structure of games and their interaction with the user, and explore how games balance rules with freedom and risk with reward. The course will also deal with interface design, user control issues, data representation for the gamer and feedback loops. Present and future game genres will also be examined, as well as compared and contrasted among different platforms and styles of play.
GAM220 Applied Game Theory (3)
Applied Game Theory
Pre-requisite(s): GAM101 This course will apply the theories of game design by taking a game concept from the conceptual stage to a completed project. Students will continue the exploration of game theory by discussing and demonstrating how it is applied to production based projects. Students will leave this course with an extension of good game design as a completed project that demonstrates their understanding of the topic.
GAM230 Level Design (3)
Level Design
Prerequisite(s): GAM101, GAM252 Level Design will introduce students to the tools and concepts used to create levels for games. The course will incorporate level design and architecture theory, concepts of the "critical path" and "flow," game balancing, playtesting and storytelling. Using user-friendly toolsets from "AAA" industry titles, students will build and test levels that reflect design concepts.
GAM250 Gaming Platforms and Standards (3)
Gaming Platforms and Standards
Pre-Requisite(s): GAM101 This course gives an overview of different platforms available to the game designer. The students will have an understanding of the strengths and weaknesses of the different gaming platforms. This course will also address the technical and psychological aspects of multi-user / multi-player gaming environments. Finally students will be exposed to the current standards that exist in the industry. This includes but is not limited to modeling, texturing, sound editing, programming, video creation, marketing, etc.
GAM252 Game Tools and Techniques (3)
Game Tools and Techniques
Prerequisite(s): GAM220 One of the challenges of the game development environment is the constant flux of tools, plug-ins and engines used by developers and the "mod" community. Often these tools have poor documentation, rough user interfaces and less-than-stellar stability, making mastery an elusive goal. The purpose of this project-based course is to allow a student to choose a game toolset, SDK or "mod" environment and produce a project in a team-oriented environment with a focus on learning the tool itself and its quirks, limitations and workarounds. During the course we will discuss team building, asset and script generation, moving and converting data types between applications and producing polished, final work; these skills will be put to use in Level Design and "mod" projects for both artists and programmers.
GAM280 Rapid Game Prototyping (3)
Rapid Game Prototyping
Prerequisite(s): GAM105, GAM220 Recommended: GAM170, GAM200 or other game design courses In a fast-paced industry, prototypes are becoming the key to understanding and refining complex gameplay before committing to full-scale development. Students will create traditional paper prototypes as well as use industry-standard tools such as Flash, DarkBasic and Torque Game Builder to rapidly prototype and study several self-contained projects. The goal is to become adept at turning bright ideas into practical game mechanics and the foundations for future complete game projects.

Recommended - Complete 6 credits minimum:

AUD111 Basics of Music (3)
Basics of Music
Prerequisite(s): none This course is designed for students who have an interest in creating music to use with their projects, but who have had no formal training or experience. Various MIDI sequencers will serve as an experimental proving grounds in which students will explore basic musical concepts. Topics covered include beat, meter, tempo, phrasing, frequency, wavelength, pitch, melody, harmony, chords, key signature, accidentals and notation.
CSC412 Software and Simulation (3)
Software and Simulation
Prerequisite(s) (choose one): CSC261, CSC262, CSC263 or CSC275 Simulation is useful for modeling natural and human systems in order to better understand the operation of those systems. The applications of computer simulation include the generation of believable virtual worlds, the automation of elaborate, software-driven special effects for film, and the creation of business analysis tools that can extrapolate information more accurately. Simulation allows the analysis of complex systems without the need to incur the expenses of actually constructing the real system.
CSC451 Application Testing and Metrics (3)
Application Testing and Metrics
Prerequisite(s): any 200-level CSC course Key aspects of software production are the reliability and robustness of the application. Application Testing and Metrics explores the most important testing procedures used in the industry. Topics may include Project Life Cycle, test scripts and test scenarios; test items; Static Testing, Dynamic Testing, Black Box Testing, White Box Testing, Function Testing, Non-Function Testing and test approaches for object-oriented systems.
DBT200 Database Theory: Introduction to SQL Language (4)
Database Theory: Introduction to SQL Language
Pre-Requisite(s): None This course will cover the theory of database design and manipulation. Students will learn about relational modeling and normalization in the area of database design. Students will use Structured Query Language to manipulate data. The theories of transaction management will also be discussed.
GAM300 Game AI Concepts (3)
Game AI Concepts
Pre-requisite(s): CSC100, GAM220 This course will discuss AI challenges involved in the creation of games. Understanding concepts such as pathfinding, movement, flocking, agents, scripting, strategy and others will allow the designer to implement smarter features, from unit formations and squad strategy to ambient life and smart camera systems. Students will use a variety of tools to create functioning projects that demonstrate class concepts, and study various game AI systems and theories.