MATH/PHYS 191 – Math & Physics for Games I

Syllabus

Credit Hours: 4.0
Lecture: MWF 2:00 to 2:50 in RC 378
Lab: M 3:00 to 4:50 in RC 378

Instructors:

  • Rob Grondahl, CLB 244, 469-8500 x2802, email: ude.cccj|lhadnorgr#ude.cccj|lhadnorgr.
  • J. Douglas Patterson, CLB 302, 469-8500 x4268, e-mail: ude.cccj|rettapd#ude.cccj|rettapd.

Office Hours:

Course Description:
This introductory course focuses on the mathematics and physics concepts needed to program a variety of video game scenarios. Students will learn to use vectors and matrix transformations to model the motion of physical objects in two and three dimensions. Students will also learn various computer programming methods in order to model these mathematical and physical concepts.

Prerequisites:
MATH 171 (College Algebra) or MATH 173 (Precalculus) with a grade of ‘C’ or higher or appropriate score on the math assessment test. GAME 121 (Game Programming I) or equivalent programming experience.

Text: You're looking at it! This wiki will be the location for all of the textbook and laboratory material.

Supplies: Calculator with trigonometric functions, your brain.

Objectives

  1. Locate, describe and transform objects in two and three dimensions.
  2. Model linear motion kinematics and dynamics.
  3. Detect and resolve collisions between objects.
  4. Model rotational motion kinematics and dynamics.
  5. Construct code to carry out the basic functions of a physics engine.

Content Outline and Competencies:
I. Vector Algebra and Transformations
- A. Use trigonometry to determine the components and direction angles of a vector.
- B. Compare the concepts of scalar and vector.
- C. Compute vector arithmetic graphically and numerically.
- D. Compute the angle between two vectors.
- E. Normalize vectors.
- F. Compute the normal vector to a surface.
- G. Construct code that will perform vector arithmetic and normalization.
- H. Convert between polar and rectangular coordinates.
- I. Convert units of measurement.
- J. Compute matrix arithmetic graphically and numerically.
- K. Describe scaling using matrices and homogeneous coordinates.
- L. Construct code that will perform scaling on vectors and geometric objects using matrices.
II. Linear Motion
- A. Compute distance, displacement, velocity, speed and acceleration for one-dimensional motion.
- B. Use vectors to describe displacements, velocities and accelerations in two and three dimensions.
- C. Use Newton's Laws to determine the effect of forces on the motion of an object.
- D. Derive and solve the equations of motion of an object.
- E. Calculate the work done by a force on an object.
- F. Calculate the kinetic energy, potential energy, and momentum of an object.
- G. Compute the force vector acting on an object resulting from a scalar potential energy field.
- H. Describe the Forward Euler and Velocity Verlet integration methods.
- I. Compare the advantages and disadvantages of the Forward Euler and Velocity Verlet integration methods.
- J. Construct code that can simulate the motion of an object according to Newton’s Laws of Motion.
- K. Describe translations using matrices and homogeneous coordinates.
- L. Construct code that will perform translation on vectors and geometric objects using matrices.
III. Collision Detection and Resolution
- A. Determine the distance between an object and a line or plane.
- B. Construct code that will compute the distance between an object and a line or plane.
- C. Determine if two circles or two spheres are intersecting.
- D. Calculate the point of intersection of two line segments.
- E. Determine if two axially-aligned bounding boxes are intersecting.
- F. Construct code that will detect collisions between circles, spheres, axially aligned bounding boxes and line segments.
- G. Use conservation of energy and conservation of momentum to model the collision of objects.
- H. Construct code that can simulate the collision between two objects.
IV. Rotational Motion
- A. Describe rotations using matrices and homogeneous coordinates.
- B. Construct code that will rotate an object using matrices.
- C. Compute angular displacement, angular velocity and angular acceleration.
- D. Determine the angular motion caused by a torque on an object.
- E. Calculate the rotational kinetic energy and angular momentum of a rotating object.
- F. Construct code that can model the two-dimensional motion of a rigid body incorporating the concepts of the conservation of energy and momentum and Newton’s Laws of Motion.
- G. Compute quaternion arithmetic numerically.
- H. Construct code that will rotate an object using quaternions.

Course Requirements:
Lectures:
The lecture will consist of traditional instructive lectures, class discussions, video material, and laboratory demonstrations. Not all material in the lecture will appear in the text and not all material in the text will be discussed in the lecture. Students are responsible for material covered in lecture as well as in the text.

Homework:
Homework will be assigned and collected on a regular basis. Doing the homework problems is just as essential to success in this course as a daily practice is in sports. No late homework will be accepted.

Labs:
There will be weekly laboratory assignments. A technical design document including a flowchart and class diagram is due at the beginning of the lab period. This will help you plan for the lab. Working code is to be demonstrated before the end of the lab period. A type-written post-mortem report will be due at the beginning of the next lab session. No late work will be accepted. There will be no make-up labs during the semester except if the lab was missed because of an excused absence as described in the Student Handbook.

Tests:
There will be unit tests and a final exam. Unit tests will cover material from lecture, homework, lab, and the text. The final exam will be comprehensive.

Grading Standards:
Grades will be based upon the following:

Assignment Points Possible
Homework 16%
Lab Reports 24%
Unit Tests 40%
Final Exam 20%
Total 100 %

Letter grades will be assigned as follows:

  • 90 - 100% = A
  • 80 - 89% = B
  • 70 - 79% = C
  • 60 - 69% = D
  • below 60% = F

CAVEATS:
The majority of mathematics and physics courses are sequential. Students must earn a grade of C or higher in a prerequisite course to progress to its subsequent course.

In accordance with the assertion made on your billing statement, during the first two weeks of the semester, if a student is found not to have successfully fulfilled the prerequisite(s) for this course, the student will be dropped from the course. He/she will be allowed to enroll in the appropriate lower-level course on a space-available basis with an even exchange of tuition. After the first two weeks, students who have not met the prerequisite(s) will be dropped from the course with no refund of tuition.

Computer Literacy Expectations:
Students will need basic word processing and Internet searching skills for the completion of some papers, exercises, and projects.

Academic Dishonesty Policy Statement:
Academic dishonesty will not be tolerated and will be subject to the appropriate penalties. Please make every effort to avoid the appearance of dishonesty in all course activities. All cases of academic dishonesty will be brought to the attention of the Program Director for the Division.

Safety:
Students are expected to conduct themselves in a safe manner at all times. Unsafe activities are not allowed. Students should realize that their own safety, as well as that of others around them, is each individual's responsibility. Students performing laboratory experiments are responsible for planning and conduction operations in accordance with institutional chemical hygiene procedures, and for developing good personal chemical hygiene habits. Additional safety rules (when required) will be attached to laboratory handouts.
Classroom and campus safety are of paramount importance at Johnson County Community College, and are the shared responsibility of the entire campus population. Please review the following:

  • Report Emergencies: to Campus Police (available 24 hours a day)
    • In person at the Carlsen Center (CC115)
    • Call 913-469-2500 (direct line) – Tip: program in your cell phone
    • Phone app - download JCCC Guardian (the free campus safety app: http://www.jccc.edu/guardian)
      • instant panic button and texting capability to Campus Police
    • Anonymous reports to KOPS-Watch http://www.jccc.edu/kops or 888-258-3230
  • Be Alert:
    • You are an extra set of eyes and ears to help maintain campus safety
    • Trust your instincts
    • Report suspicious or unusual behavior/circumstances to Campus Police (see above)
  • Be Prepared:
    • Identify the red/white stripe Building Emergency Response posters throughout campus and online that show egress routes, shelter, and equipment
    • View A.L.I.C.E. training (armed intruder response training - Alert, Lockdown, Inform, Counter and/or Evacuate) – Student training video: https://www.youtube.com/watch?v=kMcT4-nWSq0
    • Familiarize yourself with the College Emergency Response Plan
    • During an Emergency: Notifications/Alerts (emergencies and inclement weather) are sent to all employees and students using email and text messaging
    • students are automatically enrolled, see JCCC Alert - Emergency Notification
  • Weapons Policy: Effective July 1, 2017, concealed carry handguns are permitted in JCCC buildings subject to the restrictions set forth in the Weapons Policy. Handgun safety training is encouraged of all who choose to conceal carry. Suspected violations should be reported to JCCC Police Department 913-469-2500 or if an emergency, you can also call 911.

Disability Statement:
JCCC provides a range of services to allow persons with disabilities to participate in educational programs and activities. If you are a student with a disability and if you are in need of accommodations or services, it is your responsibility to contact Access Services and make a formal request. To schedule an appointment with an Access Advisor or for additional information, you can contact Access Services at (913) 469-3521 or ude.cccj|secivresssecca#ude.cccj|secivresssecca. Access Services office is located in the Success Center on the second floor of the Student Center.
http://www.jccc.edu/about/leadership-governance/policies/accessibility-statement.html

Math and Science Resource Centers:
There are resource centers for both math and science help with free tutoring available on demand. The Math Resource Center is located in CLB 212, and the Science Resource Center is located in CLB 112. These resource centers are not free, you've ALREADY PAID FOR THEM! Be sure to get your money's worth!

Tentative Course Schedule
The tentative schedule of lecture topics, lab assignments, and exam dates can be found on the schedule page.

Building Emergency Plan
http://www.jccc.edu/about/campus/maps/buildings/rc.html

Wellness and Safety Guidelines
The Wellness and Safety Guidelines are available at https://www.jccc.edu/media-resources/wellness-safety/.

  • Stay home if you are sick.
    • Communicate absences due to illness to your supervisor/instructor and work with them to manage your workload while you recover.
    • Plan to support others on campus who may miss work or class because of illness. Staying home when ill helps reduce the likelihood of spreading a range of infections, including COVID-19, influenza and other diseases.
    • If you are experiencing symptoms associated with COVID-19, or have received a COVID-19 diagnosis, refer to the CDC’s quarantine and isolation calculator to determine how long you need to isolate and/or quarantine and for information on other steps to take to prevent spreading COVID-19.
  • Wash your hands frequently and use the sanitation stations around campus.
  • Cover your mouth when coughing and sneezing.
  • Facial coverings are welcomed, but not required.
  • Clean surfaces often, especially in areas shared by multiple people.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License