Best代写-最专业靠谱代写IT | CS | 留学生作业 | 编程代写Java | Python |C/C++ | PHP | Matlab | Assignment Project Homework代写

软件开发代写|GAM 575 Real-Time Software Development II Fall 2022

软件开发代写|GAM 575 Real-Time Software Development II Fall 2022




Real-time software development with asset conversion. Topics include offline data conversion,asset packing, data driven application behavior, hierarchy base scene management, profiling and debugging large opaque data, runtime formats for low-level drivers, and advanced visualization techniques. Design and implementation of hierarchy based data systems with dynamic real-time modifications. Exploration of run-time control of behavior through real-time data driven messaging. Implementation of the complete application process: tool creation,asset condition, responsive loading and data driven runtime behavior. Students will design,develop and implement a real-time application (i.e. Animation engine) that integrates large realtime converted data assets with real-time constraints.


  • GAM 475 Real-Time Software Development I

Learning Goals:

  • Students will develop runtime data format for blind abstract data.
  • Students will implement a stand-alone command-line converter that uses 3rd party SDK to convert runtime assets.
  • Student will architect large and complex real-time data driven engine to render and control dynamic assets.
  • Students will explore techniques to control, debug, and manage large blind data sets use in applications.
  • Students will understand timing metrics in applications eliminating modulus and rounding errors through abstract data type representation of time.
  • Students will organize and process data in a hierarchy based scene management structure.


  • Systems

o 10 % PA1 – Archiver (Google Protocol Buffers)

o 5 % PA2 – Math Refactor

o 15 % PA3 – Math Quaternion

  • Model Viewer

o 10% PA4 – Converter for models

o 25% PA5 – Model Viewer

  • Animation Engine

o 10% PA6 – Converter for animation and bones

o 25% PA7 – Skeletal Animation Playback engine

Textbooks and printed resources

Additional course material will be supplied through class notes, handouts or online links.

  • 2 Required Books

o Game Engine Architecture, 2nd edition, Gregory, A.K. Peters Ltd., 2015

 ISBN: 978-1466560017

o OpenGL® SuperBible: Comprehensive Tutorial and Reference, 6th

ed.,Wright, Lipchak, Sellers & Haemel, Addison-Wesley Prof./Pearson, 2014.

 ISBN: 978-0321902948

  • Recommended:

o Windows System Programming (4th Edition), 2010, Johnson Hart,

 ISBN: 978-0321657749

  • Assumed you already have (please buy it if you don’t have a copy):

o The C++ Programming Language– Bjarne Stroustrup

Additional Material

  • Will be provided by the instructor
  • Lectures, links, SDKs and other corresponding material


  • Microsoft Visual Studio 2019 Enterprise Edition (not Community)

o MSDNAA Depaul – Visual Studio 2019 Enterprise

 C++ and C# install (future classes)

o Any other variants are not used in this class

o Students are responsible keeping their development tools working

  • Perforce Server

o Download and configuration instructions will be provided in class

o Perforce – Helix Visual Client (p4v)


 Server address:

Topics will include:

  • Main Lectures:

o 2nd pass on Graphics engine

 Run time formats

 Texture manager

 Camera Culling

 Bounding volumes

o Google Protocol buffers


 Serialization

 Extraction


 Model conversion

 Animation extraction

 Skeleton

 Skinning

o Transformations

 Interpolation – Linear, slerp, blerp

 Hierarchy relative vs flat transformations

 Quaternions

o Animation

 Key frame vs motion capture

 Animation Controllers

 Skeletons

 Blending / Mixing

 Morphing

 Move the animation by game control

 Puppet-ting

o Skinning – Theory

 Rigid body

 Weighted mesh

o Object

 Cloning

 Replication

 Scene Graph

  • Secondary Lectures (if time permits)
  • Level of Detail
  • Multiple rendering targets
  • Input / Events trigger
  • Sound System
  • UI
  • Threading

Programming Assignments

  • PA1 – Archiver Google Protocol Buffers

o Write a generic file Archiver Google protocol buffer

 Takes loose binary files, adds headers and formatting info to create chunks

 Packages the chunks together into a single binary package

 Extracts chunks on demand from the package

  • PA2 – Math refactor

o Unify point vs vector

 4D and 3D unification

 Matrix inversion hints

 Matrix math

  • PA3 – Math Quaternion

o Implement a Quaternion, Matrix, Vector library

 Applied math Slerp, Lerps, and Blerps

 Unified interface

 Full featured

 Quaternions – for Animation transformations

  • PA4 converter for Models

o Write a Model GLTF converter to convert to run-time file format.

 Place data into the file archiver

 VBO with VAO format

 Convert 3 FBX models to Game Engine runtime format from a batch/script file.

 Models need to be

  • Exceeding 200 polygons each
  • Contain textures / Models need to be lit in game engine
  • PA5 – Model viewer

o Load and view several High Resolution models

 Load models from the archiver

 Rotate camera 360 around the viewer

 Zoom

 Add ground plane

 Bounding volume culling and viewing

 Demo the game engine to display the 3 supplied models + 3 others

  • PA6 – GLTF animation exporter

o Converter to extract animation data from GLB files

 Write a converter to extract Animation data (Skeleton and animation) from an GLTF file

 Convert several animations to a run-time file format

 Extract weighted skin data

 Extract skeletons

  • PA7 – Animation Playback engine

o Demo the game engine to display the several different animations simultaneously

 Be able to dynamically interpolate the play back of the animation

 Each animation needs at least 5 or more bones

 At least 20 or more key frames

  • Each keyframe containing rotation and translation

o Playback engine

 Animation should be able to:

  • Play forward / backwards
  • Loop
  • Faster or slower playback rate

 Transition to different animations

o Documentation of the design (Negotiable)

 PDF 4-5 pages showing the data layout, math, stages of the animation engine

Perforce Submissions

  • Everyone is expected to submit several submissions to perforce a week.

o Minimum of five significant (real) submissions on two separate days.

o To promote incremental development and prevent last day rush.

o Grade deduction will occur if not followed

  • The biggest reason students get into trouble with software design:

o Not starting the project early

o Not working on the material frequently enough

o Taking too large of a bite(byte) of the design

  • Both are minimized with this Perforce RULE
  • Even my simplest programs take 10-20 submissions.

o For these project assignments, my average is 40-400 submissions, so five will be no problem.

  • Detailed perforce changelist comments are expected