# DPS906 Course Outline

Course Code: DPS906
Course Name: Simulation Techniques for Game Programming
Offered Date: Winter - 2018 | Other versions
Print Outline
Course 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.
Prerequisite: DPS901
Mode of Instruction: Four hours interactive lecture per week (four hours total)
Learning Outcomes:
• 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
Employability Skills:
Execute mathematical operations accurately.|Apply a systematic approach to solve problems.|Manage the use of time and other resources to complete projects.|
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
• 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
Prescribed Text(s):
• 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
Supply:
• None
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.
 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.senecacollege.ca/academic-policy) or at Seneca's Registrar's Offices.

Evaluation:

 Term Test 30% Programming Assignments - Minimum 3 40% Final Exam 30%
Approved By:
Mary-Lynn Manton
Cheating and Plagiarism:
Each student should be aware of the College's policy regarding Cheating and Plagiarism. Seneca's Academic Policy will be strictly enforced.

To support academic honesty at Seneca College, all work submitted by students may be reviewed for authenticity and originality, utilizing software tools and third party services. Please visit the Academic Honesty site on http://library.senecacollege.ca for further information regarding cheating and plagiarism policies and procedures.
Discrimination and 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@senecacollege.ca.
Accomodation 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 Disabilities Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.