UXG1116 Introduction to Computer Technology and Programming (7 credits)
Prerequisite(s): None
This class introduces programming environments to non-computer science major students. The module provides students with an introductory overview of the fundamental elements on which computers are based, including basic computer hardware systems, operations, and structures. An introduction to basic programming includes simple logic, programming flow, loops, variables, and arrays. Conditionals, evaluations, and other control structures are also included. The instructor may cover special topics in programming or scripting and may focus on currently popular scripting languages in the video game industry.
UXG1175 Scripting Languages (5 credits)
Prerequisite(s): UXG1116
Topics may include classes, inheritance, interfaces, polymorphism, and data structures. This module covers the concepts and implementation strategies for using high-level scripting languages in game development. Students will focus on object-oriented programming, high-level English-like structure, speed of development, and ease of use. The module includes a survey of commercial languages, as well as proprietary scripting languages from industry applications. Students will examine the process of conceptualizing a syntax for a game-based scripting language and examine how such a language is compiled and interpreted by a game engine. Using the syntax they have created, they will create a number of scripts that could be used in a game. Additionally, the class will cover such relevant topics as data-driven technology, modular coding, function calls, and procedures.
UXG1165 Programming Foundations (7 credits)
Prerequisite(s): UXG1116
This module expands on basic programming skills through an exploration of object-oriented programming techniques. Topics may include classes, inheritance, interfaces, polymorphism, and data structures.
UXG2176 Advanced Scripting (5 credits)
Prerequisite(s): UXG1175
This module presents game implementation techniques and game architecture in a scripting language environment. Students investigate concepts of game architecture, such as game-system component separation and game flow while learning about essential elements such as the game state manager, input/output handler, and frame rate controller.
Students learn how to create several different types of classic games in a variety of scripting languages most commonly used for professional games, learning the specific syntax and approaches of each language in the process. As part of their implementation, students learn how to use the specific graphics, audio interface, physics and math APIs found in the scripting environments used. Students also survey concepts in space partitioning, particle systems, map editors and other elements so that they are capable of creating working prototypes of 2D games.