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
- 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.
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
o OpenGL® SuperBible: Comprehensive Tutorial and Reference, 6th
ed.,Wright, Lipchak, Sellers & Haemel, Addison-Wesley Prof./Pearson, 2014.
o Windows System Programming (4th Edition), 2010, Johnson Hart,
- Assumed you already have (please buy it if you don’t have a copy):
o The C++ Programming Language– Bjarne Stroustrup
- 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: perforce.dpu.depaul.edu:1666
Topics will include:
- Main Lectures:
o 2nd pass on Graphics engine
Run time formats
o Google Protocol buffers
Interpolation – Linear, slerp, blerp
Hierarchy relative vs flat transformations
Key frame vs motion capture
Blending / Mixing
Move the animation by game control
o Skinning – Theory
- Secondary Lectures (if time permits)
- Level of Detail
- Multiple rendering targets
- Input / Events trigger
- Sound System
- 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
- PA3 – Math Quaternion
o Implement a Quaternion, Matrix, Vector library
Applied math Slerp, Lerps, and Blerps
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
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
- 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
- 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
- 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