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

2010 Tuition Fees—Resident
Undergraduate tuition for 2010 is $9,400.00 per semester.

2010 Tuition Fees—UAT-Online
Undergraduate tuition for UAT-Online students for 2010 is $5,400.00 per semester.

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 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 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): 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): 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
Prerequisite(s): CSC215 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.
CSC360 Artificial Life Programming (3)
Artificial Life Programming
Prerequisite(s): CSC202 or CSC203 or CSC215 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?” Students will design and implement computer programs and computer simulations using methodologies like evolutionary algorithms, genetic algorithms, swarm intelligence, ant colony optimization, agent-based models and cellular automata. Using these methodologies, students will create models of real-life organisms and situations. The strengths, weaknesses and applications of various models and methodologies will also be discussed.
CSC370 Artificial Intelligence (3)
Artificial Intelligence
Prerequisite(s): CSC262 or CSC263 or CSC275 This course surveys artificial intelligence (AI) 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
Prerequisite(s): CSC263 or CSC275 This course will examine parallel programming techniques needed for multiprocessor shared-memory computer systems. Multi-processor architectures will be studied to illustrate their effect on program efficiency. Messagepassing 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 2D Graphics Programming (3)
2D Graphics Programming
Prerequisite(s): CSC215 Raster graphics programming is a comprehensive course on 2D graphics programming, including coverage of 2D animation tools and 2D programming techniques such as side scrolling, vertical scrolling, animated sprites and collision detection. This course will use the open-source Allegro game library and the C language. This course may be used as a prerequisite for handheld and Web game courses. Students will create a complete game project. This is an alternative to MTM101 since both 2D software and programming will be covered.
GAM275 Mobile Game Programming (3)
Mobile Game Programming
Prerequisite(s): CSC203, GAM205 Mobile games is 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 Java Micro Edition (Java ME) and Java Wireless Toolkit. Students will explore the mobile hardware and learn the specific techniques required to develop a game for a small screen and limited user input capabilities. Using Java ME, students will begin by loading and rendering bitmaps, which leads to sprites and animation, before learning to tap the audio system. The course finally covers 3D graphics programming using the Java 3D library based on OpenGL.
GAM315 Console Game Development (3)
Console Game Development
Prerequisite(s): CSC275, GAM205 This course teaches console video game system programming using professional software development kits and the C++ language. Students will learn the black art of development for current and recent generation systems such as the PSP, GameCube, PS2, and newer systems that become available. Students will learn about the architecture of these systems, about the development tools and compilers, and they will learn how to tap into libraries and development kits provided by hardware developers. Students will gain valuable console development experience while learning about the compiler tool chain, 2D graphics, 3D graphics, controllers, memory management, timing and audio systems, and concludes with a game project.
GAM327 Game Development in C++ (3)
Game Development in C++
Prerequisite(s): CSC275, GAM205, GAM235 This course introduces the student to the concepts of game programming in C++ using an open source, cross-platform game library called Allegro. In this course, students will dig beneath the surface and examine C++ in detail to learn the advantages of the language and gain experience using a modern C++ IDE such as Visual C++. This course follows Gameplay Programming Concepts by going a step further with the C++ language and a game library. Students will continue to explore gameplay programming concepts with an applied approach, creating numerous small games to demonstrate the various concepts learned in previous courses. Since Allegro is a cross-platform library, students may have an opportunity to explore game development on Mac and Linux systems as well.
GAM420 Game Engine Development (3)
Game Engine Development
Prerequisite(s): CSC280, GAM215, GAM322 This course covers the design and implementation of a game engine using the C++ language and the DirectX API on the Windows platform. The goal of this course is to build a game engine based on the skills developed in DirectX II and the other prerequisites. Students who will have already completed DirectX II will expand their advanced rendering systems into a full engine with the addition of device input, an audio system, a timed animation system, scripting language support, a linked list-based entity manager, a resource system and multiplayer support. Students will demonstrate a proof of concept game that demonstrates their engine’s API through both the C++ interface and script code.

Recommended - Complete 12 credits minimum:

GAM101 Introduction to Game Design (3)
Introduction to Game Design
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.
GAM150 Evolution of Game Design (3)
Evolution of Game Design
Prerequisite(s): none This is a critical review of the technology and design history of video games, from the first all-analog machines to the powerful console systems of today. This course will discuss primary innovators and historical figures of the industry and the origins of game design elements such as scoring, risks and rewards, level design, interacting with AI and interface design. Through analysis and example, students will look at the development of the industry, the formation of the classical game genres, the explosion of game-related technology and the possible futures of the field. These design lessons will be applied to simple projects to reinforce how game design elements from three decades ago still shape our industry and its products.
GAM170 Game Design Workshop I (3)
Game Design Workshop I
Prerequisite(s): GAM101, GAM150 Corequisite(s): GAM112 This course explores the invention, revision 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 potential future production. The end product will be several robust, polished game designs that have been tested by the most critical audience—your peers.
GAM200 Critical Game Studies (3)
Critical Game Studies
Prerequisite(s): GAM170 This course is an introduction to advanced critical techniques and approaches to game design, analysis of games and game theory. Using techniques of critical theory, ludology and semiotics, students will explore the structure of games, interaction with the user and how games balance rules with freedom and risk with reward. The course will also delve into interface design, user control issues, data representation for the gamer and feedback loops. Present and future game genres will be examined and 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): GAM112, GAM170 This course will cover the topics in level design, including history and types of games, the role of the level designer, good level design, player puzzles and strategies that will keep players interested in a game, and level creation that is challenging for players and not overly difficult for average players.
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): GAM202 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 and Torque Game Builder to rapidly prototype and study several self-contained projects. The goal is to become adept at turning game 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 without formal training or experience but with an interest in creating music to use with projects. Various MIDI sequencers will serve as an experimental proving ground 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): CSC262 or 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. Students in this course will explore and develop applications utilizing these principles.
CSC451 Application Testing and Metrics (3)
Application Testing and Metrics
Prerequisite(s): CSC202 or CSC203 or CSC215 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
Prerequisite(s): none This course will cover the theory of database design and manipulation. Students will learn about relational modeling, normalization in the area of database design and the theories of transaction management . Students will use Structured Query Language to manipulate data.
GAM300 Applied Game AI Concepts (3)
Applied Game AI Concepts
Prerequisite(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.