- Course Description
This course presents game implementation techniques and engine architecture. Students will 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. CS 230 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 will create and expand their own collision, vector, and matrix libraries, enabling them to incorporate basic physics engines. Students will 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.
- Course Objectives
This course represents the basis for the 2nd year at DigiPen, by giving an introduction to major topics that will be taught thoroughly later in other major courses such as CS200, CS250, GAM200 and GAM 250.
Upon successful completion of the course, students will learn:
Foundational topics in programming interactive applications including simulations and games.
Gaining programming experiences in C/C++ and getting familiar with using game engines.
Ability to design and implement simple 2D games with special emphasis on:
Game loop
Frame rate controller
Basic collision-detection techniques
State machines
Applications of kinematics and dynamics in game physics
Particle systems
How to handle the “time factor” which is a main component in all time based applications and games, and the synchronization between the game loop time and the “real” time within the game loop, which is extremely useful in physics formulas and simulations in general.
Starting point for understanding technical literature and foundation for independent research related to game programming and development.
Implementation of mathematical techniques including linear algebra.
Introduction to event-driven and Windows programming techniques for implementing GUI-based game tools.
Overview of the Direct3D graphics API.
- Teachnig Method
During lectures, all electronic devices must be turned OFF. This includes cell phones, pagers, PDAs, game consoles, digital cameras, laptop computers, or any other device that can turn your attention away. The use of electronic devices for the sole purpose of taking notes during lecture requires written permission from the instructor. If you absolutely must have a cell phone on for an emergency situation, then you must clear it with the instructor BEFORE class begins.
In addition to showing up for class on time, other student responsibilities include proper behavior during class, learning the material, completing assignments correctly, submitting assignments properly and on time, and participating in class by asking or answering questions during the lectures. Finally, all students are required to bring to class a writing instrument and papers to take notes, answer questions posed during lectures, and perform other tasks.
Open food and drinks are not to be brought to class and they are banned from all labs.
- Textbook
- Assessment
- Requiments
CS120, C Programming Language
- Practical application of the course
This 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. This course 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.
- Reference