Courses and Programs
Undergraduate Program |
Graduate Program(work in progress; check back soon!) |
The Department of Computer Science at NC State houses the nationally-recognized undergraduate Video Game Development Concentration. Students in the game design concentration gain a strong foundation in computer science through the core curriculum in Computer Science including Data Structure, Algorithms, Operating Systems, Software Engineering, Programming Languages and Compilers [View all Computer Science Courses].
CSC 281 : Foundations of Game Design
Surveys history, technology, narrative, ethics, and design of interactive computer games. Work in teams to develop novel game designs and computer games. Introduction to the interplay of narrative, technology, rule systems, play and culture in the creation of interactive games. Programming experience not required. Enrollment restricted to students with at least sophomore status. |
CSC 411: Artificial Intelligence
Overview and definitions of Artificial Intelligence [AI]. Search, including depth-first and breadth-first techniques with backtracking. Knowledge representation with emphasis on logical methods, Horn databases, resolution, quantification, unification, skolemization and control issues; non-monotonic reasoning; frames; semantic nets. AI systems, including planning, learning, natural language and expert systems. An AI programming language may be taught at the instructor’s discretion. Prerequisite: CSC 316 |
CSC 454: Human-Computer Interaction
Units: 3 A survey of concepts and techniques for user interface design and human computer interaction. Emphasizes user-centered design, interface development techniques, and usability evaluation. Prerequisite: CSC 316 |
CSC 461: Principles of Computer Graphics
Units: 3 Principles of computer graphics with emphasis on two-dimensional and aspects of three-dimensional raster graphics. Topics include: graphics hardware devices, lines and polygons, clipping lines and polygons to windows, graphical user interface, vectors, projections, transformations, polygon fill. Programming projects in C or C++. |
CSC 481: Game Engine Foundations
Units: 3 An introduction to game engines, the technologies underlying computer and console game development. This course will cover engine components, architectures, and designs. Topics include asset management, resource management, event management, memory management, timelines, multithreading, network architectures, and game object models. A sequence of programming assignments will lead students through the implementation of their own game engine, which they will use to design their own game. |
CSC 482: Advanced Game Development Projects
Units: 3 Principles of computer game development with emphasis on 3D first-person game engines. Topics include: advanced character behavior control, procedural content generation, large scale mulit-player game design and infrastructure, serious games for education, training and other applications, the game production pipeline and project built on top of a commercial game engine. Consideration of the game production pipeline, including project pitches, requirements and design detail. Programming project with written and oral reporting is required. Enrollment open to CSC majors only. |
CSC 484: Building Game AI
Units: 3 In this course we will examine Artificial Intelligence [AI] techniques that are used in the design of computer games. We will look at techniques for game playing as well as the design of AI opponents tasked with creating “good experiences” for players. The course will begin with a discussion of general AI, common algorithms, data structures, and representations. From there, we will cover topics in character movement, pathfinding, decision making, strategy, tactics, and learning. In a sequence of programming assignments students will create increasingly sophisticated AI implementations. Students will also critically review the projects conducted by graduate students enrolled in CSC584. CSC majors only. Students cannot get credit for both CSC 484 and CSC 584. |
CSC 492: Senior Design Project
Units: 3 Application of software engineering principles and basic computer science to the total development of a software system. Consideration of the software system design process, including requirements and design detail. Development and evaluation of a prototype accomplished through design team activity. Comprehensive written and oral project report is required. Open to CSC majors. Restricted to students with 6 hours of Computer Science Restricted Elective. |
Graduate Program
The department is currently in discussions to develop a Masters program. Details coming soon; check back here periodically.
For students interested in existing courses part of the Computer Science Masters or Ph.D. programs, please consult the Department of Computer Science Graduate Program website.
For students interested in digital media or animation at the graduate level, please consult the College of Design website.