CSC-246 Game Programming Algorithms and Techniques

This course presents a detailed overview of many of the important algorithms and techniques used in video game development. Coursework will build on students' current knowledge of programming and game design and will focus on many concepts used in the game industry today. Fundamental techniques in 2D and 3D graphics, lighting, input, sound, physics, and AI will be covered. There is a strong emphasis on manipulating vectors using vector math, as well as studying key transformation matrices and their functioning. These techniques will be used to develop sample games and simulations.

Credits

3

Prerequisite

CSC-190, PHY-118 Strongly Recommended

Lecture Contact Hours

3

Lab Contact Hours

0

Other Contact Hours

0

Department

  • Computer Science

Grading Scheme

  • Letter

SUNY Gen Ed Credit

  • No

Semesters Course Will Be Offered

  • Fall

Course Learning Outcomes

  1. Design and construct simulations and games in 2D/3D environments manipulating elements of the game (e.g. light, sound, game objects, physics, collision detection, AI, pathfinding, animations, and camera).
  2. Create appropriate user interface designs and controls to handle input from a variety of sources.
  3. Study and analyze the graphic pipeline used to display virtual environments from coordinate space to a 2D screen using the transform matrix and projection space.
View Course Outline

CSC 246: Game Programming Algorithms and Techniques

Department

Computer Science

Course Description

This course presents a detailed overview of many of the important algorithms and techniques used in video game development. Coursework will build on students' current knowledge of programming and game design and will focus on many concepts used in the game industry today. Fundamental techniques in 2D and 3D graphics, lighting, input, sound, physics, and AI will be covered. There is a strong emphasis on manipulating vectors using vector math, as well as studying key transformation matrices and their functioning. These techniques will be used to develop sample games and simulations.

Credit Hours

3

Contact Hours

Lecture3
Lab0
Other0

Grading Scheme

Letter

Semester(s) Course Will Be Offered

Fall

Prerequisites

CSC-190, PHY-118 Strongly Recommended

Course Learning Outcomes

  1. Design and construct simulations and games in 2D/3D environments manipulating elements of the game (e.g. light, sound, game objects, physics, collision detection, AI, pathfinding, animations, and camera).
  2. Create appropriate user interface designs and controls to handle input from a variety of sources.
  3. Study and analyze the graphic pipeline used to display virtual environments from coordinate space to a 2D screen using the transform matrix and projection space.

Topic Outline

  1. Basic differences of game programming and application programming
    1. Evolutions of Game Programming
    2. The Game Loop
    3. Time
    4. Game Objects
  2. The benefits and tradeoffs of scripting languages
    1. Scripting Languages
    2. Other options for programming besides a scripting language
  3. Models in 2D and 3D graphics and basic manipulate of them
    1. The coordinate system used
    2. Sprites and Models
    3. Tile Maps and Environments
    4. Attaching functionality to game objects
  4. How to implement movement, gravity, and collisions in a game
    1. Constant velocity
    2. Adding acceleration, drag, and gravity
    3. Parabolic motion
    4. Collision of game objects
    5. Collision triggers
  5. Manipulating camera and lighting in an environment
    1. Different camera positioning for different genre games
    2. Moving camera based on game object
    3.  Moving camera based on user input
    4. Adding different lighting in an environment
    5. Manipulating the lighting during gameplay
  6. Manipulating different inputs from the user
    1. Input Devices
    2. Keyboard
    3. Mouse
    4. Game Controller
    5. Mobile Devices
  7. Implementing different systems of user interface
    1. Menu System
    2. HUD
    3. Transitioning between different Shells and game modes
  8. Choosing and working with different data formats for development
  9. Basic artificial intelligence and path finding algorithms
    1. Real AI versus Game AI
    2. Pathfinding algorithms
  10. Game Development
    1. Side-Scroller
    2. Tower Defense