CMSC 425Dave Mount & Roger Eastmanmost upper-division computer science courses, our interest is not in how tousethese tools,but rather how tobuildthese systems. In particular, we will discuss the theory, practice, andtechnology that underlies the implementation of these systems.This semester, we will touch upon only a subset of these issues. For each, we will discuss howconcepts from computer science (and other areas such as mathematics and physics) can beapplied to address the challenging elements that underlie game implementation.Course Overview:In this course, we will provide an overview of what might be called the scienceand engineering of computer games.In particular, we will see how concepts developed incomputer science can be applied to address the aforementioned elements of computer games.These include the following:Game Engines:The organization, structure, and overall features of a typical game engine.Introduction to the Unity game engine.Geometric Programming and Data Structures:Review of geometry and linear algebraand their applications to game programming. Linear and affine transformations and 3-dimensional rotation. Bounding volumes and efficient collision detection.Modelling, and Animation:Shape representations and meshes, level of detail, terrainmodeling, articulated models and skinning, animation, texture modeling, proceduralgeneration and geometry synthesis.AI for Games:Agent-based systems, finite-state machines, decision making and planning.Motion Planning and Navigation:Path planning algorithms and A*-search, navigationmeshes, multiple-agent motion and crowds, pursuit-evasion.Networking and Online Games:TCP/IP, sockets programming, multiplayer gaming, la-tency hiding, distributed data consistency, security.Other Topics:Physics (Newtonian dynamics, particle simulation, mass-spring models), physicsengines, aural rendering (audio and HRTFs, audio acquisition and libraries, local andglobal aural rendering).Lecture 14Spring 2018
