

Course Code: 
DPS906 
Course Name: 
Simulation Techniques for Game Programming 
Offered Date: 
Fall  2017  Other versions 

Print Outline

Course Description:
Physics and mathematics concepts that are useful for simulating realworld 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 threedimensional 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 threedimensional 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  righthand 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, parallelaxis theorem

moments

Friction: static and kinetic

Freebody 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

pointplane, pointpolygon, pointpolyhedron

sphereplane, spherepolygon, spheresphere

Bounding boxes

axisaligned (AABBs)

oriented (OBBs)

Octrees

Computational Issues  5%

Rotations

normalization

quaternions

Integration

adaptive stepsizing

improved Euler method

RungeKutta 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%

Prescribed Text(s):

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:

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.
Grading Policy
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/academicpolicy) or at Seneca's Registrar's Offices.

Evaluation:
Term Test 
30% 
Programming Assignments  Minimum 3 
40% 
Final Exam 
30% 

Approved By:
MaryLynn 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.
