Game Programming (BS)

Students will develop strong problem-solving skills, learn to write efficient code, and collaborate with artists and designers to provided optimized solutions for game design. The BS in Game Programming curriculum emphasizes the data structures, algorithms, and software architecture techniques used by the industry to create cutting edge games.

Bachelor of Science (BS) Degree
Core Classes

This program is available online and on campus

GAM 110

Introduction to Game Development Core/3

Learn the fundamentals of game development focusing on the various disciplines and roles involved in professional video game production. You will be exposed to industry-standard tools, workflows, and best practices that drive successful studios.

GAM 405

Games Portfolio Preparation Core/3

As a senior, you will organize and enhance your accumulated work to create a portfolio that showcases your skills and accomplishments. Plus, learn professional practices and how to apply for employment.

GAP 120

Principles of Computer Science Core/3

Learn to think like a programmer. You'll write programs to move a robot, learn numbering systems, problem-solving, API design, and other concepts foundational to programming. Designed to support GAP 125, but topics apply to all forms of programming.

GAP 125

Programming for Games 1 Core/3

Become proficient in C++. To learn the game industry's most-used language, you'll write text-based games using variables, branching, looping, console input/output, pointers, heap allocation, and more.

GAP 225

Programming for Games 2 Core/3

Increase your abilities using the most common C++ language features. You'll learn to write preprocessor directives, unit tests, custom operators, file I/O, and templates.

GAP 235

Data Structures and Algorithms Core/3

Take the leap from coder to software engineer. You will learn about asymptotic analysis of the various algorithms involved with arrays, linked lists, queues, stacks, strings, hash tables, trees, graphs, and more.

GAP 255

Object-Oriented Programming and Design Core/3

Learn essential techniques for organizing code into classes. Explore common design patterns used throughout game programming to facilitate in writing scalable, maintainable code.

GAP 275

Programming for Games 3 Core/3

Make a simple 2D game. You'll learn to solve specific game programming challenges using 2D graphics, capturing player input, basic audio programming, simple physics and collision, and more.

GAP 285

AAA Game Engine Architecture Core/3

Make simple games using the Unreal Engine to learn about AAA game architecture. You'll get a behind-the-scenes look at how Unreal works, and why it was built this way.

GAP 295

Low-Level Programming and Optimization Core/3

Learn the internals of the CPU and memory systems in modern computers and consoles. You'll study optimization theory and gain hands-on experience with concurrency and multi-threaded programming.

GAP 301

Programming Game Engines Core/3

Design your own game engine. You'll follow a step-by-step process to build a stable, scalable, reusable engine that will form the foundation for future classes.

GAP 305

Programming for Production Core/3

Build two games, one using an engine from GAP 301 and another using a tool of your choice. Learning the role of engineer, you'll work in teams using industry-standard tools and methodologies to produce the games.

Degree Requirements

Unit RequirementsUnits
Core36
Major30
Electives9
Liberal Arts45
Total120

BS GAME PROGRAMMING DEGREE REQUIREMENTS

  • Minimum grade of C- in all major coursework and the following:
    LA 107 Writing for the Multilingual Artist
    LA 255 College Math
    LA 271 College Algebra with Geometry
    LA 286 Discrete Mathematics
    LA 288 Vector, Matrices, & Transformations
     
  • Minimum 2.0 GPA and the following general education requirements:
    1 Art Historical Awareness course
    1 Creative Communication course
    1 Written Communication: Critical Thinking course
    1 3D Math course
    1 Fundamental Math course
    1 Applied Math course
    1 Discrete Mathematics course
    1 Historical Awareness course
    1 Cultural Ideas & Influences course
    1 Employment Communications and Practices course

After above general education requirements are met, take Liberal Arts electives as needed to fulfill the Liberal Arts unit requirement.

Additional Information

Program Learning Outcomes

Undergraduate students will meet the following student performance criteria:

Architecture

  • Use architectural design patterns as appropriate to improve program cohesion and limit coupling between systems
  • Write professional-quality technical documentation
  • Create data-driven code

Implementation

  • Implement appropriate data structures to manage program data
  • Write efficient algorithms to solve programming problems
  • Write defensive, error-free code

Professionalism

  • Conform to industry standard software engineering practices, such as commenting, following a coding standard, following naming conventions, etc.
  • Demonstrate mastery of industry standard tools
  • Produce a professional portfolio which meets industry standards
  • Work cooperatively and effectively in a professional production environment