UCSB offers one of the most comprehensive curricula on video games and game development in the world by offering a large number of courses across 9 departments (ECE, CS, CCS, MAT, COMM, ARTHI, LIT, F&MST, ENGL). Our curriculum consists of four courses in game design and development that form the core of the UCSB Gaucho Game Lab program, a set of courses on game-related topics and technologies you can take to delve deeper in certain aspects of game development, and other non-game courses to complement your education and ensure that our graduates are among the most competitive in the industry.


Core Courses

These are the core courses that form the foundation of the UCSB Gaucho Game Lab game-development program.

ECE 184 – Introduction to Video Game Development

When: Every Spring quarter, two lectures per week (1:50 each), and a 1:50 discussion section (a total of 5.5 hours of instruction per week)

Credits: 5 units

Pre-Reqs: CS 130A, CS 130B

Description: This course is an introduction to video game development, covering game-dev topics such as the fundamentals of game design, developing and pitching game ideas, designing the game play and mechanics, writing development specifications, implementing game system architectures, creating specific user experiences, and conducting play testing and revisions. Students will be using the Unity game engine to build their games, so the course will also introduce topics such as graphics, physics simulations, AI, and user interfaces and discuss how to specifically implement such algorithms within the Unity framework. Finally, since games are basically highly complex software products, a significant part of the course will cover software engineering principles for large-scale codebases such as software design patterns and best practices for commercial software engineering.

The first half of the course consists of weekly homework assignments to build students’ understanding of the basics of game development and familiarity with the Unity platform by making simple, focused games with specific tasks. In the second half, students will work on an individual game project of their own design which will be featured at a public showcase on campus and released publicly through an online platform. Through this process, students will get experience in speccing out a software project, giving and implementing notes to improve the software, and developing software products that can be used by a broad audience.

Note that this class requires students to build large software systems with many files and assets, so students must be experienced programmers comfortable in writing and debugging large amounts of code and structuring large programs. This is not an “intro-to-programming” class.

ECE 194P – Advanced Video Game Dev. I – Video Game Design & Prototyping

When: Every Fall quarter, two lectures per week (1 hr 50 minutes each), for a total of 3:40 hours of instruction per week)

Credits: 4 units

Pre-Reqs: ECE 184 with a grade of A or above

Notes: Course can be taken concurrently with ECE 189 Capstone (with permission of ECE 189 instructor), where advanced game would be developed.

Description: This first course in a three-course sequence builds upon ECE 184 but goes into considerably more depth on the game development process. In particular, the course emphasizes large-team game production which would allow students to work as a team to develop and release a major game over the course of a year. To this end, the class begins by covering topics on software engineering such as version-control systems like GIT, Agile software development (Scrum), and large-team collaborative work-flows. It then moves on to more advanced topics on game development such as pitching projects with large teams, securing funding for large-scale projects, learning the different roles in a game-development team, pre-production design, themes and counter-themes, developing preliminary game mechanics, producing game design documents (GDDs), and prototype development, in particular how to develop sandboxes for experimenting with game mechanics. Special topics such as advanced graphics and user interfaces will also be covered in depth. Grade will depend on written and programming assignments along these topics. The goal of this class is that students should be able to take the knowledge gained in this class and work on a team to develop a prototype of a sophisticated game in the concurrent Capstone sequence. The goal of the overall sequence is that students 1) learn the fundamenals of product design (how to start with a blank canvas and produce something of value), 2) how to design and create large software systems, 3) how to work on large engineering teams, and 4) cross-disicplinary workflows (since good games require a tight integration of engineering and art). These topics are not often covered in other classes, but are extremely important in industry.

ECE 194Q – Advanced Video Game Dev. II – Full-Scale Video Game Development & Production

When: Every Winter quarter, two lectures per week (1 hr 50 minutes each), for a total of 3:40 hours of instruction per week)

Credits: 4 units

Pre-Reqs: ECE 194P with a grade of B or above

Notes: Course can be taken concurrently with ECE 189 Capstone (with permission of ECE 189 instructor), where advanced game would be developed.

Description: This course builds on ECE185A and focuses on the “middle third” of the game-development process: how to scale up a working prototype into an actual, fully fleshed-out game release. As such, topics will include level design and world-building (both in tactical and strategy planning, as well as low-level terrain and level-design tools), building interesting quests and puzzles, interactive story-telling techniques and strategies, and building infrastructure tools for large-scale development. As the codebase grows and the games become more complicated, students will also need to know how to do optimization and performance profiling, asset and scripting optimization, as well as QA and testing (unit and integration testing, using debugging tools, and QA processes). Finally, because artists might be involved in the development process to help scale the project up, students will learn how to work with and manage artists, set timelines and deliverables, and give feedback. The goal is that students should be able to take the knowledge gained in this class and flesh out their game prototype from the Capstone sequence into an ALPHA release offering ore than 8 hours of playtime.

ECE 194T – Advanced Video Game Dev. III – Video Game Finalization, Marketing, and Distribution

When: Every Spring quarter, two lectures per week (1 hr 50 minutes each), for a total of 3:40 hours of instruction per week)

Credits: 4 units

Pre-Reqs: ECE 194Q with a grade of B or above

Notes: Course can be taken concurrently with ECE 189 Capstone (with permission of ECE 189 instructor), where advanced game would be developed.

Description: In this last-course of the game development sequence, students will learn to deal with what is perhaps the toughest part of any large software project: finalizing the code and getting it ready for release, something not covered in any other course. To this end, students will learn about in-depth playtesting and getting player feedback, refining game play and improving the game, iteration and refinement, and handling updates. The second half of the course will focus on learning how to get a game ready for public release, including learning to create and executing a marketing plan, learning how to produce promotional videos and other marketing materials, getting the codebase ready for release, and product launch. Finally, there will be some discussion on post-release product support, hot updates, etc. The goal of the course is to be able to take the knowledge gained in this class and use it to finalize their game from the Capstone sequence to get it ready for a major public release.


Other UCSB Courses in Game Design, Development, & Related Technologies

In addition to the UCSB Gaucho Game Lab's core courses, UCSB also offers many other courses covering various important aspects of video games.

Technical Courses

CMPTGCS 20 – Video Game Design for Non-Majors

When: Winter quarter

Credits: 4 units

Pre-Reqs: Enrollment in the College of Creative Studies (CCS)

Description: Video games are a unique interactive experience created with components spanning many fields of study. Experiences are formed by allowing the player to interact with artistic elements (environment, character, sound, narrative, etc.) and the underlying technology (software, hardware, display, controllers, etc.). This course focuses on game design principles and how they can shape the player experience. Lectures will focus on these principles and analysis of existing games. Class projects allow students to design, program, and demo their own small games.

CMPTGCS 20 is open to all CCS students interested in creating video games and/or learning about software programming in a video game creation context. Depending on students' programming proficiency, various game engines (Scratch, Unity, or other engines with instructor's approval) can be used for course projects. This is a great “launch” course for many students to get started with game development before taking the core sequence of courses listed above.

CS 180 – Computer Graphics

Credits: 4 units

Pre-Reqs: None

Description: Overview of OpenGL graphics standard, OpenGL statemachine, other 3D graphics libraries, 3D graphicspipeline, 3D transformations and clipping, colormodel, shading model, shadow algorithms, texturing, curves and curved surfaces, graphics hardware, interaction devices and techniques.

CS 184 – Mobile Application Development

Credits: 4 units

Pre-Reqs: None

Description: An introduction to programming mobile computing devices. Students will learn about and study the shift in software development from desktop to mobile device applications. Topics will include software engineering and design practices, advances in programming practice, and support tools for mobile application development and testing. Students will develop and deploy mobile applications as part of their course work, including mobile games.

CS 185 – Human-Computer Interaction

Credits: 4 units

Pre-Reqs: None

Description:The study of human-computer interaction enables system architects to design useful, efficient, and enjoyable computer interfaces. This course teaches the theory, design guidelines, programming practices, and evaluation procedures behind effective human interaction with computers.

CS 190I – Spatial Interface Design and Implementation

Credits: 4 units

Pre-Reqs: None

Description: Real world tasks such as assembly, repair, or surgery, often require the simultaneous use of both hands. In these scenarios, one hand is used to grasp a tool like a screwdriver or a scalpel, while the other hand is engaged in manipulating the object being worked on. Creating one-handed interfaces for users engaged in physical tasks that involve tools or objects presents several challenges. Learning how do to these tasks with an AI-based task assistant in AR/VR requires the ability to not only perform the task but engage with the AR/VR interface simultaneously. In this course we will learn the design and implementation (in Unity) of such one-handed spatial user interfaces (SUIs) for task assistance in AR/VR. Through a combination of theoretical insights and a Unity group project, students will learn the fundamentals of spatial interface design and implementation. Prior programming experience is required.

MAT 232 – Advanced Computer Graphics

Credits: 4 units

Pre-Reqs: None

Description: Covers advanced computer graphics topics in rendering, animation, and modeling. Topics may include, but are not limited to: programmable shading, General-Purpose GPU (GPGPU) computing, rigid body dynamics, OpenCL programming, physically based animation, subdivision surfaces, shadow algorithms, character skinning methods, ambient occlusion, and fractal growth algorithms.

MAT 236 – Computational Systems for Visual Art and Design

Credits: 4 units

Pre-Reqs: None

Description: Computational systems of rules, relationships, and behaviors can extend traditional art and design practices or support new creative workflows. We will explore the creation of computational systems for visual art and design. We will use creative coding platforms and algorithms to create visual works that are flexible, dynamic, and generative. In the process, we will touch on the design philosophy and abstractions of existing creative coding platforms and examine methods to create alternatives. Students learn basic approaches to modify creative programming languages and frameworks or develop new software interfaces for visual expression. Technical production will be complemented by readings on computational art and design theory.

MAT 240ABC – Digital Audio Programming

Credits: 4 units

Pre-Reqs: None

Description: This 3-course sequence explores human-computer interfaces, communication schemes, and mapping strategies in the context of audio software development. It also introduces audio and audio programming. We explore high- and low-level aspects of interactive control of musical systems by designing and using digital musical instruments (DMI) and tools. Topics include graphical user interface (GUI), tangible user interface (TUI), essential audio synthesis and processing techniques, and considerations of embedded audio systems. Each student is guided through stages of development such as sketching, research, prototyping, implementation, and performance and then demonstrates their open-source software. Students develop audio apps using state-of-the-art methods and tools such as c++, Max, SuperCollider, javascript, and rust.

CS 291A – Mixed and Augmented Reality

Credits: 4 units

Pre-Reqs: None

Description: Mixed and Augmented Reality, an active research field since the 1990s, has recently gained significant popularity because of the possibility of being implemented on smartphones and because of its unique approach of offering context-based computing directly in a person's field of vision. Augmented Reality is the concept of overlaying computer-generated information on top of the physical world. Mixed Reality is a bit broader and subsumes the fields of Augmented Reality, Augmented Virtuality, and Virtual Reality. Recent game blockbusters (or rather block-fillers) such as Pokemon GO have popularized the concept, but much more is possible. All the major players in the technology sector today invest more or less heavily in this paradigm. This class provides a hands-on introduction to these novel interface technologies. This is an advanced research-oriented course. Programming experience and knowledge of computer graphics and computer vision concepts is expected. A special focus area this quarter, promoted by the circumstances, will be remote AR/VR collaboration. We will have plenty of opportunity to think about these things from a new perspective!

CS 292F – Real-Time High Quality Rendering

Credits: 4 units

Pre-Reqs: CS 180/280

Description: One of the perennial goals of Computer Graphics is creating high quality images which are indistinguishable from photographs: a goal referred to as photorealism. Another important goal is interactivity for visualization, simulation, gaming and other real-time applications. These two goals have historically been at odds with each other. In this course, we will review the history and some of the recent ideas that seek to bridge the gap between realism and interactivity. We will focus on the use of complex lighting and shading within limited computation time. Specifically, topics will cover programmable shaders, real-time shadows, interactive global illumination, image-based rendering, precomputed rendering, adaptive sampling and reconstruction, and real-time ray tracing. This course will be constantly evolving over iterations. Lecture topics and/or reading materials will be subject to change to keep up with the latest development of real-time rendering. Currently, this course is for graduate students. In subsequent years, this course might be moved into undergraduates' curriculum.

Non-Technical Courses

ARTHI 6L – Playful Spaces: A Cultural History of Games

Credits: 5 units

Pre-Reqs: None

Description: Explores the fascinating profusion of games in early-modern Europe, ca. 1400-1700, including card games, board games, and visual, mechanical and mathematical puzzles. Topics include the role of fate and chance; the phenomenon of puzzle pictures; illusionism and other eccentric images; and the social and moral implications of games.

INT 36GS – How Games Tell Stories (and What We Learn From Them)

Credits: 4 units

Pre-Reqs: None

Description: How are game narratives designed, how they are experienced, and what do they do? In this course we consider a wide variety of games from a wide variety of game forms and genres: text-based and visual novels, learning games and casual games, indie and triple-A. You will write about games and you will create your own simple prototypes and playable essays. Throughout the process of playing, studying, writing about, and creating games, we will work together to discover what we learn from games, and how they change us. The course will involve writing workshops and exercises in which you learn to use basic code on interactive writing platforms and tools such as Twine, Inky, Inklewriter, or Inform. This course requires no coding experience.

MAT 80VR – Mediated Worlds: Enacting the Metaverse - Generative Worldmaking and Virtual Reality

Credits: 5 units

Pre-Reqs: None

Description: Enacting the Metaverse studies the imminent integration of real and virtual worlds. Recent advancements in parallel computation have fueled the growth of transformative new technologies. Artificial intelligence performs tasks at a level that exceeds human ability. Blockchain technology enables virtual ownership of digital assets. Extended reality augments and reconfigures our experience of the world. The metaverse is the outgrowth of these technologies. It is a shared virtual 3D world that intermeshes with the real. We will be the citizens of this new hyper-mediated world. It is our responsibility to confront these developments from technical and critical perspectives. This course develops the knowledge and skills needed.

WRIT 105M – Multimedia Writing

Credits: 4 units

Pre-Reqs: None

Description: Focuses on new modes of writing and publishing enabled by computer technology. Projects involve analyzing, creating, reading about, and reflecting on multimedia writing. Students create works suitable for web, video games, or other digital formats.

ARTHI 107D – Puzzles and Vexations: Games in Early-Modern Art and Culture

Credits: 5 units

Pre-Reqs: Not open to Freshmen

Description: This course introduces students to the history of games. It is organized chronologically as a global survey. We study games and the social, political, and economic conditions that support them, as well as the interface between the human player and the imagined world of the game. Taking as its premise that games are artifacts of culture, this course focuses on the visual and spatial practice of games in social context.

LIT 109 – Games and Literature

Credits: 5 units

Pre-Reqs: Upper Division standing

Description: An interdisciplinary inquiry into the motive of games in 18th-20th century literature. Focus is on the moral, psychological and epistemological dimensions of games according to both form and function. Considerations of the stylistic, narrative and rhetorical components of texts.

COMM 115 – Interactive Media Theory and Design

Credits: 4 units

Pre-Reqs: Not open to Freshmen

Description: Examines cognitive, emotional, social, and physiological processing of interactive media and effects of these media on users' learning, decision-making, skills, and behavior. Students will learn and apply research findings and theories of communication, psychology, and human-computer interaction to understand how people interact with computer-based media (delivered via web, mobile technologies, virtual reality, robots, video games, social networks) during leisure time and at work, and how to design media content to best serve various user needs and interests.

ENGL 147VN – Visual Narrative

Credits: 4 units

Pre-Reqs: None

Description: Visual Narrative considers the media history and theories of visual storytelling, with an emphasis on comics, graphic novels, webcomics, motion comics, and interactive comics.Unit topics include: Defining Visual Narrative, Sequential Art, Vocabularies of Style, Medium and Design, Visualization and Mapping, Interaction and Media Adaptation, and Remediating History. Example theoretical readings may include works such as The Medium is the Massage (McCluhan and Fiore), Exercises in Style (Queneau), 99 Ways to Tell a Story (Matt Madden), Understanding Comics (McCloud), and selected essays on information visualization, infographics, and maps by Tufte, Manovich, Lima, and others.

COMM 154 – Video Game Research

Credits: 4 units

Pre-Reqs: None

Description: An introduction to social scientific research on the motives, responses, and consequences of playing video games.

FAMST 166IG – Special Topics in Cultural Studies: Indie Games

Credits: 4 units

Pre-Reqs: None

Description: A course on nontraditional or experimental games, including art, empathy, and serious games and games made by amateurs or small studios. Positions game studies in relation to cultural studies, disability studies, subculture, pop culture, and visual culture studies, software/platform studies, and production cultures.

FAMST 166GG – Special Topics in Cultural Studies: Green Games

Credits: 4 units

Pre-Reqs: None

Description: This course puts game studies in conversation with environmental science and media. Explore whether analog and digital games present unique opportunities to engage with ecological crisis and human-environment relations, and work with others to develop your own green game prototypes.


Complementary Courses

Finally, these are additional courses that are not game-related specifically but would further complement your education if you want to have a successful career in game design and development or in high-tech industry in general.

CS 16 – Problem Solving with Computers I

Credits: 4 units

Pre-Reqs: MATH 3A or 2A with a grade of C or better (may be taken concurrently), CS 8 or ENGR 3 or ECE 3 with a grade of C or better, or significant prior programming experience

Description: Fundamental building blocks for solving problems using computers. Topics include basic computer organization and programming constructs: memory CPU, binary arithmetic, variables, expressions, statements, conditionals, iteration, functions, parameters, recursion, primitive and composite data types, and basic operating system and debugging tools.

CS 24 – Problem Solving with Computers II

Credits: 4 units

Pre-Reqs: CS 16 with a grade of C or better; and Mathematics 3B or 2B with a grade of C or better (may be taken concurrently)

Description: Intermediate building blocks for solving problems using computers. Topics include intermediate object-oriented programming, data structures, object-oriented design, algorithms for manipulating these data structures and their run-time analyses. Data structures introduced include stacks, queues, lists, trees, and sets.

CS 32 – Object Oriented Design and Implementation

Credits: 4 units

Pre-Reqs: CS 24 with a grade of C or better

Description: Advanced topics in object-oriented computing. Topics include encapsulation, data hiding, inheritance, polymorphism, compilation, linking and loading, memory management, and debugging; recent advances in design and development tools, practices, libraries, and operating system support.

CS 64 – Computer Organization and Logic Design

Credits: 4 units

Pre-Reqs: CS 16 with a grade of C or better; and Mathematics 3C or 4A with a grade of C or better.

Description: Assembly language programming and advanced computer organization; Digital logic design topics including gates, combinational circuits, flip-flops, and the design and analysis of sequential circuits.

CS 130A – Data Structures and Algorithms

Credits: 4 units

Pre-Reqs: CS 40 or MATH 8 with a grade of C or better; CMPSC 24 or CMPSC 9 with a grade of C or better; PSTAT 120A or ECE 139 (may be taken concurrently with CMPSC 130A); open to computer science, computer engineering, and electrical engineering majors only.

Description: Data structures and applications with proofs of correctness and analysis. Hash Tables, Priority Queues (heaps); Balanced Search Trees. Graph Traversal techniques and their applications.

CS 130B – Data Structures and Algorithms II

Credits: 4 units

Pre-Reqs: CS 130A

Description: Design and analysis of computer algorithms. Correctness proofs and solution of recurrence relations. Design techniques; divide and conquer, greedy strategies, dynamic programming. Applications of techniques to problems from several disciplines. NP - completeness.

CS 156 – Advanced Applications Programming

Credits: 4 units

Pre-Reqs: None

Description: Advanced application programming using a high-level, virtual-machine-based language. Topics include generic programming, exception handling, automatic memory management, and application development, management, and maintenance tools, third-party library use, version control, software testing, issue tracking, code review, and working with legacy code.

CS 172 – Software Engineering

Credits: 4 units

Pre-Reqs: CS 130A. Open to Computer Science or Computer Engineering majors only, or by consent of department.

Description: Software engineering is concerned with long-term, large-scale programming projects. Software management, cost estimates, problem specification and analysis, system design techniques, system testing and performance evaluation, and system maintenance. Students will design, manage, and implement a medium-sized project.