DPS906 - Simulation Techniques for Game Programming

Outline info
Semester
School
Last revision date 2024-01-29 00:28:48.466
Last review date 2024-04-01 00:15:06.106


Subject Title
Simulation Techniques for Game Programming

Subject Description
Physics and mathematics concepts that are useful for simulating real-world objects are examined. Besides such standard physics topics as force, acceleration and friction, game programming topics such as collision detection and terrain traversal are discussed. Artificial intelligence concepts are also introduced.

Credit Status
1 credit in the BSD program.

Learning Outcomes
Upon successful completion of this subject the student will be able to:

  • Design and code programs that simulate the motion of simple three-dimensional objects, including small particles and rigid bodies of finite size.
  • Design and code programs that simulate frictional contact and collisions of varying degrees of elasticity between three-dimensional objects of finite size.
  • Explain and document the physical and mathematical concepts implemented in C++ code that models the motion and interaction of simple objects.
  • Research a particular field, identify the set of forces that are considered important by experts in that field, and describe how to implement the results of the research in a simulation.
  • Explain the approximate methods commonly used to detect a point of collision between two objects and identify C++ code that implements these methods.
  • Identify in a C++ program potential sources of numerical error that may distort the motion of an object and propose refinements that minimize such distortions.
  • Identify terms and language commonly used in the field of artificial intelligence
  • Explain how infomation can be used to guide a search
  • Design and code programs that will make decisions on what to do based on current conditions

Essential Employability Skills
    •  Execute mathematical operations accurately.

    •  Apply a systematic approach to solve problems.

    •  Manage the use of time and other resources to complete projects.

Academic Integrity
Seneca upholds a learning community that values academic integrity, honesty, fairness, trust, respect, responsibility and courage. These values enhance Seneca's commitment to deliver high-quality education and teaching excellence, while supporting a positive learning environment. Ensure that you are aware of Seneca's Academic Integrity Policy which can be found at: http://www.senecapolytechnic.ca/about/policies/academic-integrity-policy.html Review section 2 of the policy for details regarding approaches to supporting integrity. Section 2.3 and Appendix B of the policy describe various sanctions that can be applied, if there is suspected academic misconduct (e.g., contract cheating, cheating, falsification, impersonation or plagiarism).

Please visit the Academic Integrity website http://open2.senecac.on.ca/sites/academic-integrity/for-students to understand and learn more about how to prepare and submit work so that it supports academic integrity, and to avoid academic misconduct.

Discrimination/Harassment
All students and employees have the right to study and work in an environment that is free from discrimination and/or harassment. Language or activities that defeat this objective violate the College Policy on Discrimination/Harassment and shall not be tolerated. Information and assistance are available from the Student Conduct Office at student.conduct@senecapolytechnic.ca.

Accommodation for Students with Disabilities
The College will provide reasonable accommodation to students with disabilities in order to promote academic success. If you require accommodation, contact the Counselling and Accessibility Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.

Camera Use and Recordings - Synchronous (Live) Classes
Synchronous (live) classes may be delivered in person, in a Flexible Learning space, or online through a Seneca web conferencing platform such as MS Teams or Zoom. Flexible Learning spaces are equipped with cameras, microphones, monitors and speakers that capture and stream instructor and student interactions, providing an in-person experience for students choosing to study online.

Students joining a live class online may be required to have a working camera in order to participate, or for certain activities (e.g. group work, assessments), and high-speed broadband access (e.g. Cable, DSL) is highly recommended. In the event students encounter circumstances that impact their ability to join the platform with their camera on, they should reach out to the professor to discuss. Live classes may be recorded and made available to students to support access to course content and promote student learning and success.

By attending live classes, students are consenting to the collection and use of their personal information for the purposes of administering the class and associated coursework. To learn more about Seneca's privacy practices, visit Privacy Notice.

Prerequisite(s)
DPS901

Topic Outline

  • Introduction and Review of Fundamental Concepts - 5%
    • Mathematical concepts for physical applications
      • Cartesian coordinate systems - right-hand and left hand
      • differential and integral calculus
      • points, line segments, polygons, polyhedra
      • summation and difference notation
      • transformations - translation, rotation, scaling
      • trigonometric functions
      • vectors, matrices, tensors
    • Physical unit systems and measures - English and SI units; dimensional analysis.
    • Customization of sample code from DPS901
      • introduction of multiple view points
      • modularization
      • systematic definition of program constants
  • Kinematics - 10%
    • Particle motion
      • displacement
      • linear acceleration - average and instantaneous
      • linear velocity - average and instantaneous
      • relationships amongst them
    • Rigid body motion
      • angular acceleration - tangential linear acceleration, centripetal acceleration
      • angular velocity
      • orientation - yaw, pitch, roll, Euler angles
  • Kinetics - 20%
    • Newton's laws of motion, universal law of gravitation, acceleration due to gravity
    • Particle kinetics
      • centre of mass
      • forces - impulse and continuous
      • mass
    • Rigid body kinetics
      • moment of inertia - principal axes, parallel-axis theorem
      • moments
    • Friction: static and kinetic
    • Free-body diagrams
    • Forces involved in modelling cars, ships, planes and rockets
    • Conservation of Momentum - linear and angular
    • Conservation of Energy
      • coefficient of restitution
      • elastic and inelastic collisions
      • kinetic energy
  • Collision Detection - 10%
    • Linear collisions
      • point-plane, point-polygon, point-polyhedron
      • sphere-plane, sphere-polygon, sphere-sphere
    • Bounding boxes
      • axis-aligned (AABBs)
      • oriented (OBBs)
    • Octrees
  • Computational Issues - 5%
    • Rotations
      • normalization
      • quaternions
      • Integration
      • adaptive step-sizing
      • improved Euler method
    • Runge-Kutta method
    • Evaluation of 'Turtle' functions
      • approximations
      • reformulations
  • Introduction to Artificial Intelligence and Intelligent Agents - 5%
  • Classical AI - 15%
    • Game trees and the minimax algorithm
    • Alpha - beta pruning
    • Uncertainty
  • Searching - 15%
    • Searching as a means of finding a solution
    • Uninformed search
    • Greedy searches
  • Scripting and rule based decision making - 10%
    • Logical decision making
    • Fuzzy logic
    • Intelligent agents
  • Machine Learning - 5%
    • Learning algorithms

Mode of Instruction
Four hours interactive lecture per week (four hours total)

Prescribed Texts

  • None

Reference Material

  • Bourg, David M.(2002). Physics for Game Developers. O'Reilly Media, Inc.. Sebastopol, CA, U.S.A.
  • Bourg, David M. and Seemann (2004). AI for Game Developers. O'Reilly Media, Inc.. Sebastopol, CA, U.S.A.
  • Russell, Stuart J. and Norvig, Peter (2003). Artificial Intelligence A Modern Approach (second edition). Pearson Education, Inc.. Upper Saddle River, NJ, U.S.A

Required Supplies

  • None

Student Progression and Promotion Policy

  • Pass the weighted average of all assessments
  • Pass the weighted average of the exam and the tests
  • Pass the final exam
  • Successfully complete all of the assignments and exercises. Submissions that do not meet specifications will be returned to the student for revision and resubmission.

http://www.senecapolytechnic.ca/about/policies/student-progression-and-promotion-policy.html

Grading Policyhttp://www.senecapolytechnic.ca/about/policies/grading-policy.html

A+ 90%  to  100%
A 80%  to  89%
B+ 75%  to  79%
B 70%  to  74%
C+ 65%  to  69%
C 60%  to  64%
D+ 55%  to  59%
D 50%  to  54%
F 0%    to  49% (Not a Pass)
OR
EXC Excellent
SAT Satisfactory
UNSAT Unsatisfactory

For further information, see a copy of the Academic Policy, available online (http://www.senecapolytechnic.ca/about/policies/academics-and-student-services.html) or at Seneca's Registrar's Offices. (https://www.senecapolytechnic.ca/registrar.html).


Modes of Evaluation

Term Test 30%
Programming Assignments - Minimum 3 40%
Final Exam 30%

Approved by: Mary-Lynn Manton