CMPS-4490 Game Development, Spring 2022
Amendment added below
See Attendance policy. See Recordings policy.
Gordon Griesel
Office: Sci III 337 Office is virtual this semester.
Office Hours: see my schedule, or make an appointment
Email: gordon@cs.csub.edu

Course web site: https://www.cs.csub.edu/~gordon/4490/

Course meets:
MWF 8:00am - 8:50am virtual on Zoom (lecture 32220)
Thurs 7:20am - 9:50am virtual on Zoom (lab 32221)
Course Description:
This course introduces the fundamentals of Computer Game Programming.

From the catalog:
The course will cover fundamental concepts behind designing a game engine. The concepts, theories, and programming aspects of physics engine, graphics engine, and control engine will be covered. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2120, or 3480, or 3350.

Lecture Topics and Rough Schedule
The topics below are the general subjects of the course, and will
be introduced and discussed sequentially as the course progresses.
Subjects could be added or removed.

Elements of a game engine
• main game program
   input
      . events
      . keyboard
      . mouse
      . communication
   physics
      . collision detection
      . timing
      . optimization
   rendering
      . computer graphics
	  . static scene
      . characters
      . lighting
      . special effects
      . 2D and 3D
• audio
   . OpenAL
   . Listener
• communication
   . multi-player
   . POSIX sockets
• artificial intelligence
   . path finding
   . enemies
• scoring
   . web interface
• configuration
• help
Distribution
• vendor service

Textbooks:
Our textbook material will come from the school's Safari website.
These books are provided free by the CSUB Library.
Sections of the following books will be used:

Game Development Patterns and Best Practices
   By: John P. Doran; Matt Casanova
   Publisher: Packt Publishing
   Pub. Date: April 27, 2017
   Print ISBN-13: 978-1-78712-783-8
   Web ISBN-13: 978-1-78712-696-1
   Pages in Print Edition: 394

Game Physics Cookbook
   By: Gabor Szauer
   Publisher: Packt Publishing
   Pub. Date: March 24, 2017
   Print ISBN-13: 978-1-78712-366-3
   Web ISBN-13: 978-1-78712-081-5
   Pages in Print Edition: 480

Supplemental Materials:
OpenGL Programming Guide:
The Official Guide to Learning OpenGL, Version 4.3.
8th Edition
Available free online at: http://www.glprogramming.com/red/

Grading Policy:
General assignments   50%
  . labs
  . homework
  . quizzes
Exams                 20%
Project               30%
-------------------------
Total                100%

Grading scale used during the semester...
    A   93%
    A-  90%
    B+  87%
    B   83%
    B-  80%
    C+  77%
    C   73%
    C-  70%
    D+  67%
    D   63%
    D-  60%
    F   50%

Attendance
Class attendance is required.
Log into Zoom a few minutes before class so that you are in class at 8:00am.

Each late earns 1-mark.
Each unexcused absence earns 2-marks.

Penalty to your overall grade:
   Weeks 1 through 3:  0.1%
   Weeks 4 through 15: 0.25%


Labs
Lab attendance is required.
Labs are hands-on programming assignments.

   1. Do not be late to a lab.
   2. Stay the whole lab period, unless excused by the instructor.

Each lab will have some tasks that are due by the end of the lab period.
A lab assignment could be extended into a homework assignment.

Homework
Homework assignments and due dates will be posted on the course website.
It is common for a lab assignment to be extended into a homework assignment.

Quizzes
A quiz is a short exam that covers current material from reading, lecture,
lab, homework, and project material. Quizzes can be online or written.
A quiz can be given at any time during any class session.

Exams
Exams will be announced in advance.

Late Assignment Policy
Assignments submitted late are not accepted and can receive a score of zero.

Compile and build standards for all work
Compile flags C++11, C++14, and C++17 are not needed for work in this course.
If you need them, please make sure your programs compile on the Odin server.

Accommodations
Students requiring accommodations should speak with the instructor at the start
of the course. To make arrangements for accomodations, please contact SSD at
the following link: http://www.csub.edu/univservices/ssd/services2.htx


Absence from class
If you miss a class and wish to make up the work, it is your responsibility to
inform your instructor of the reason for missing class (documentation required)
and to arrange to make up exams, quizzes, and class work, to the extent that
this is possible. Excusable absences include, but are not limited to:
Illness, injury, family emergency, etc.
See a complete list at CSUB Catalog page 64.

Academic Integrity Policy
All work done in this course is individual work, unless specified otherwise.
Please do not share your work with other students.
Refer to the Academic Integrity policy printed in the campus catalog and class
schedule. Violations are enforced in accordance with the Department's policy
on academic honesty.

***

Amendment 1

No Recordings Allowed:

Under California Education Code Section 51512, it is illegal for any person, 
including a student, to use an electronic device to record what is happening 
in the classroom without the consent of the instructor.

The instructor for this course DOES NOT give consent for recording of any kind.

If a disability requires you to record a class session, then please 
contact SSD so accommodations can be made.



Your instructor reserves the right to amend this syllabus during the semester.