The BS in Computer Science and Game Design programme combines game design theory and practice, with coursework in computer science, mathematics and physics. In this programme, students learn to leverage the technical tools and processes used by professional designers, including scripting languages, level and map editors, databases, while designing, prototyping, and iterating their projects in a collaborative, deadline-driven environment. The result is a proficient computer scientist and designer who has mastered the intersection of technology and design.
Students in the BS in Computer Science and Game Design programme concentrate on the following subjects:
Graduates of this programme are prepared to enter the video game industry as
Learn more about DigiPen's Bachelor of Science in Computer Science and Game Design.
Eligibility and Exemption
Graduates from the following list of Polytechnic Diploma programmes are eligible for credit exemptions in the DigiPen's BS in Computer Science and Game Design degree programme:
Ngee Ann Polytechnic
Applicants who are not graduates from a Polytechnic in Singapore, but have completed a formal 12th year education equivalent to A-Levels, are eligible to apply for the following degree programme at SIT:
Overseas University Partner
DigiPen Institute of Technology
Bachelor of Science in Computer Science and Game Design
Credit transfers and duration of studies will be reviewed on a case-by-case basis.
Students who have relevant post-secondary qualifications may complete DigiPen’s degree programmes within seven semesters. To be eligible for the abridged programme, students must successfully satisfy the following criteria:
Actual number of credits may vary from one student to another depending on the individual course work completed. Any course(s) not transferred must be completed within the duration of the programme.
All students have to complete a 12-week immersion programme at the home campus of DigiPen Institute of Technology in Redmond. Students will take classes in Redmond’s summer semester and work with faculty and students from different programmes. The estimated cost for the programme ranges from S$8,000 - S$9,000 (based on prevailing currency exchange rates and flight ticket prices).
This course provides a detailed examination of the fundamental elements on which computers are based. Topics include number systems and computation, electricity and basic circuits, logic circuits, memory, computer architecture, and operating systems. Operational code and assembly languages are discussed and then implemented on a hardware platform, such as a personal computer or an autonomous vehicle.
In presenting the C programming language, this course serves as a foundation for all high-level programming courses and projects. It provides the fundamentals of programming, including control flows, such as statement grouping, decision-making, case selection, procedure iteration, and termination test and basic data types, such as arrays, structures, and pointers. Additionally, it intensively discusses the lexical convention, syntax notation, and semantics.
This course focuses on generating and discussing ideas for composition and engages in all stages of the writing process, with emphasis on the development and application of critical thinking skills. The primary focus of the course is developing the ability to construct, write, and revise argumentative/persuasive essays. Assignments may also include other types of writing, such as narrative, descriptive, and comparative essays.
This class presents an overview of the way the game development industry works and a history of game development. It exposes students to the positions and job responsibilities that each member of a game development team has, along with the industry requirements for concept pitches, design documents and schedules. It also introduces sprite animation, object motion, and input processing, which students use in the creation of a game of their own design.
The two main themes throughout the course are vector geometry and linear transformations. Topics from vector geometry include vector arithmetic, dot product, cross product, and representations of lines and planes in three-space. Linear transformations covered include rotations, reflections, shears and projections. Students study the matrix representations of linear transformations along with their derivations. The curriculum also presents affine geometry and affine transformations along with connections to computer graphics. This course also includes a review of relevant algebra and trigonometry concepts.
This course provides an introduction to interpersonal and professional communication. Particular attention is paid to verbal and nonverbal communication skills, small-group communication, and conflict resolution.
This course introduces the C++ language with particular emphasis on its object-oriented features. Topics include stylistic and usage differences between C and C++, namespaces, function and operator overloading, classes, inheritance, templates, and fundamental STL components.
CS230 presents game implementation techniques and engine architecture. Students investigate foundational 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. CS230 introduces Windows programming, state machines, and collision detection algorithms, which students will integrate into their own remakes of classic games. As part of their implementation, students create and expand their own collision, vector, and matrix libraries, enabling them to incorporate basic physics engines. Students survey concepts in space partitioning, particle systems, map editors, and other elements as a bridge to more advanced concepts in implementation techniques and engine architecture.
This project focuses on the creation of a simple game or simulation. Students work together on teams of three or four members. All projects must be written entirely in C (C++ is not allowed) and cannot use external libraries or middleware of any kind (except those provided by the instructor). Topics include effective team communication, planning, documentation, debugging, source control, testing, and iterative software development techniques.
This course introduces the calculus of functions of a single real variable. The main topics include limits, differentiation, and integration. Limits include the graphical and intuitive computation of limits, algebraic properties of limits, and continuity of functions. Differentiation topics include techniques of differentiation, optimisation, and applications to graphing. Integration includes Riemann sums, the definite integral, anti-derivatives, and the Fundamental Theorem of Calculus.
This course extends the standard calculus of one-variable functions to multi-variable vector-valued functions. Vector calculus is used in many branches of physics, engineering, and science, with applications that include dynamics, fluid mechanics, electromagnetism, and the study of curves and surfaces. Topics covered include limits, continuity, and differentiability of functions of several variables, partial derivatives, extrema of multi-variable functions, vector fields, gradient, divergence, curl, Laplacian, and applications.
This course presents an overview of modern operating systems as implemented on personal computers. It presents an overview of what an operating system is and does, with emphasis on the following topics: organization and design, process management, threading, interprocess communication, process synchronization, and memory management.
This course builds on the foundation created in the first two high-level programming courses (CS120/170). It presents advanced topics of the C/C++ programming language in greater detail. Such topics include advanced pointer manipulation, utilizing multi-dimensional arrays, complex declarations, and standard library functions. Advanced C++ topics include class and function templates, operator overloading, multiple inheritance, runtime type information, the standard template library, and performance issues.
This course is an introduction to game design theory and the process of designing games. Topics may include design principles, writing rules, playtesting, game state, randomness, hidden information, and game balance.
This project is divided into two semesters and focuses on the creation of a simple real-time game or simulation with 2D graphics (3D games are not allowed). Students work together on teams of three or four members to implement technical features, such as audio effects, music playback, pattern movement, simple artificial intelligence, same-machine multiplayer (networking is not allowed), particle systems, scrolling, and simple physics. All projects must be written with a core of C++ code and cannot use middleware such as pre-existing physics engines, networking engines, etc. Additional topics may include basic software architecture, essential development practices, fundamentals of team dynamics, and task prioritisation methods.
This course builds on the introduction to calculus in MAT150. Topics in integration include applications of the integral in physics and geometry and techniques of integration. The course also covers sequences and series of real numbers, power series and Taylor series, and calculus of transcendental functions. Further topics may include a basic introduction to concepts in multivariable and vector calculus.
This course is a continuation of MAT180. Topics covered include differential operators on vector fields, multiple integrals, line integrals, general change of variable formulas, Jacobi matrix, surface integrals, and various applications. The course also covers the theorems of Green, Gauss, and Stokes.
This course introduces the classical abstract data types (ADT) in computer science. ADTs provide the hierarchical views of data organisation used in programming. Among the topics covered are the algorithms and primitives of the data structures for arrays, linked lists, stacks, queues, trees, hash tables, and graphs. In addition, the course provides an introduction to algorithm complexity and notation.
This course focuses on how to analyze and simulate game systems. Topics may include system analysis, system simulation, system balancing, combat systems, and economic systems.
Credit may be received for only one of: DES 212, DES 220, GAT 211.
In this class, students work to complete and polish the projects they began in GAM200. Additional topics may include intermediate software architecture, advanced debugging techniques, bug tracking, formal playtesting, game pacing, and game balance.
This course presents the mathematical foundations of linear algebra, which includes a review of basic matrix algebra and linear systems of equations as well as basics of linear transformations in Euclidean spaces, determinants, and the Gauss-Jordan Algorithm. The more substantial part of the course begins with abstract vector spaces and the study of linear independence and bases. Further topics may include orthogonality, change of basis, general theory of linear transformations, and eigenvalues and eigenvectors. Other topics may include applications to least-squares approximations and Fourier transforms, differential equations, and computer graphics.
This calculus-based course presents the fundamental principles of mechanics, including kinematics, Newtonian dynamics, work and energy, momentum, and rotational motion.
This course presents the concepts of PHY 200 in the laboratory. The experiments allow the student to experience the laws of basic physics involving linear motion, force, gravitation, conservation of energy, conservation of momentum, collisions, rotational motion, and springs. Error analysis and data reduction techniques are taught and required in experimental reports.
This course provides students with an introduction to the analysis of algorithms, specifically proving their correctness and making a statement about their efficiency. Topics for discussion may include loop invariants, strong mathematical induction and recursion, asymptotic notation, recurrence relations, and generating functions. Students examine examples of algorithm analysis from searching and sorting algorithms.
This course introduces students to a wide range of concepts and practical algorithms that are commonly used to solve game AI problems. Case studies from real games are used to illustrate the concepts. Students have a chance to work with and implement core game AI algorithms. Topics covered includes the game AI programmer mindset, AI architecture (state machines, rule-based systems, goal-based systems, trigger systems, smart terrain, scripting, message passing, and debugging AI), movement, pathfinding, emergent behavior, agent awareness, agent cooperation, terrain analysis, planning, and learning/adaptation.
The course focuses on methods for creating spatial environments, along with the controls and camera systems needed to navigate those environments. Additional topics include guiding the player and controlling pacing through the placement of encounters.
This course is the first semester of a two- or three-semester project, which will be continued in GAM 350, and then in GAM 375 for a three-semester project. Students will work together on teams of three or more to create an advanced real-time game or simulation. Techniques are explored for creating high-performance teams, tuning development processes for specific projects, using advanced discipline-based best practices, and applying specialized discipline-based skills to game development. This first semester focuses on pre-production to ensure the technology, tools, design, art, audio, and team are ready for full production in the following semester.
This course gives an introduction to several mathematical topics of foundational importance in the mathematical and computer sciences. Typically starting with propositional and first order logic, the course considers applications to methods of mathematical proof and reasoning. Further topics include basic set theory, number theory, enumeration, recurrence relations, mathematical induction, generating functions, and basic probability. Other topics may include graph theory, asymptotic analysis, and finite automata.
This calculus-based course presents the fundamentals of fluid dynamics, oscillations, waves, geometric optics, and thermodynamics.
This course presents fundamental topics in the field of human-computer interface design. Topics covered in the course will help students understand human capabilities, design principles, prototyping techniques and evaluation methods for human-computer interfaces, with special emphasis on natural user interfaces. The course will guide the students towards an implementation of a novel user interaction.
College 499 is a capstone course for students to prepare their job application materials and learn how to effectively search for an entry-level job in their field. The goal of the course is for each student to have a polished resume, cover letter, business card, and online/web presence by the end of the semester, as well as a search strategy for seeking employment.
This course focuses on designing and implementing digital game prototypes, with an emphasis on integrating mechanics, controls, and camera. Additional topics include building tension to create engagement and implementing player feedback techniques.
This course is the second semester of the three-semester project begun in GAM 300 or GAM 302. This semester focuses on moving into full production, ending with the project ready to enter post-production in GAM 375 in the following semester.
This course introduces major topics in psychology, specifically as they relate to cognition and learning. These topics include perception, cognition, personality and social psychology, and biological aspects of behavior. Students are also introduced to human information processing, memory, problem solving, attention, perception, and imagery. Other topics covered may include mental representation and transformation, language processing, and concept formation.
This course is the final semester of the three-semester project begun in GAM 300 or GAM 302 and continued in GAM 350. This semester focuses on post-production and shipping the final project.
In this course, students prepare their personal portfolio of projects in order to be ready for a professional job search. This can involve a new project to demonstrate a particular professional skill, or working to complete a project they began in GAM 400.
In this course, students focus on preparing their personal portfolio of projects to be ready for a professional job search. This can be a new project to demonstrate a particular professional skill, or taking a previous project to very high level of quality.In this course, students focus on preparing their personal portfolio of projects to be ready for a professional job search. This can be a new project to demonstrate a particular professional skill, or taking a previous project to very high level of quality.