Course Introduction

Web Only

This textbook was authored for the CIS 580 - Fundamentals of Game Programming course at Kansas State University. This front matter is specific to that course. If you are not enrolled in the course, please disregard this section.

Course Goals

This course is intended to introduce the fundamentals of creating computer game systems. Computer games are uniquely challenging in the field of software development, as they are considerably complex systems composed of many interconnected subsystems that draw upon the breadth of the field - and must operate within real-time constraints. For this semester, my goals for you as a student are:

  1. To develop a broad understanding of the algorithms and data structures often utilized within games.
  2. To recognize that there are many valid software designs, and to learn to evaluate them in terms of their appropriateness and trade-offs.
  3. To expand your games portfolio with fun, engaging, and technically sophisticated games of your own devising.
  4. To practice the software development and communication skills needed to participate meaningfully within our industry.
  5. To develop a feel for the aesthetics of game design.

All of our activities this semester will be informed by these goals.

Course Resources

Welcome Message

Hello students, and welcome to CIS 580 - Foundations of Game Programming. My name is Nathan Bean, and I will be your instructor for this course.

Playing Sequence Playing Sequence