这是一篇来自美国的关于实时软件开发二级的软件开发代写
Description:
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.
Prerequisites:
- 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.
Grading
- 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
Software
- 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)
https://www.perforce.com/downloads/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
Texture manager
Camera Culling
Bounding volumes
o Google Protocol buffers
JSON
Serialization
Extraction
o GLTF
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