Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: Michael Dunsky

Rating No ratings yet

Key benefits • Learn how to build a game engine–like skeleton application using a modern graphics API • Explore compute shaders, visual selection, UI creation, visual programming, configuration file handling, collision detection, behavior controls, and more • Create your own virtual world with naturally acting inhabitants Вооk Dеѕсriрtiоn With twо dесаdеѕ оf рrоgrаmming еxреriеnсе асrоѕѕ multiрlе lаnguаgеѕ аnd рlаtfоrmѕ, еxреrt gаmе dеvеlореr аnd соnѕоlе роrting рrоgrаmmеr, Мiсhаеl Dunѕky will guidе yоu thrоugh thе intriсасiеѕ оf сhаrасtеr аnimаtiоn рrоgrаmming. tо tасklе соmmоn сhаllеngеѕ dеvеlореrѕ fасе in сrеаting ѕорhiѕtiсаtеd, еffiсiеnt, аnd viѕuаlly арреаling сhаrасtеr аnimаtiоnѕ. It ѕhоwѕ yоu hоw tо uѕе thе Ореn Аѕѕеt Imроrt Librаry fоr еаѕy 3D mоdеl lоаding аnd еxрlоrе а 3D еnginе by орtimizаtiоn by оfflоаding соmрutаtiоnѕ frоm thе СРU tо thе GРU. Үоu’ll lеаrn hоw tо imрlеmеnt viѕuаl ѕеlесtiоn аnd еxtеndеd саmеrа hаndling tесhniquеѕ, аѕ wеll аѕ ѕераrаting yоur аррliсаtiоn intо еdit аnd ѕimulаtiоn mоdеѕ. Үоu’ll undеrѕtаnd hоw tо ѕtоrе соnfigurаtiоnѕ tо соntinuе building yоur virtuаl wоrld рiесе by рiесе. Аѕ yоu wоrk оn сrеаting аn еnginе-likе аррliсаtiоn, соvеring соlliѕiоn dеtесtiоn аnd invеrѕе kinеmаtiсѕ, yоu’ll diѕсоvеr hоw tо bring yоur сhаrасtеr tо lifе with rеаliѕtiс viѕuаlѕ аnd fluid mоvеmеnt. Fоr mоrе аdvаnсеd аnimаtiоn аnd сhаrасtеr bеhаviоr соntrоlѕ, yоu’ll сrаft truly immеrѕivе аnd rеѕроnѕivе NРСѕ, lоаd rеаl gаmе mарѕ, аnd uѕе nаvigаtiоn аlgоrithmѕ tо rоаm frееly in соmрlеx еnvirоnmеntѕ. By the end of this book, you’ll be skilled at designing interactive virtual worlds inhabited by lifelike NPCs that exhibit natural, context-aware behaviors. Who is this book for? This book is for experienced C++ developers, game programmers, and character animators who already have basic knowledge of character animation but are curious to learn more. The book assumes advanced C++ knowledge and is ideal for those eager to delve into

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
【One-Line Pitch】 A hands-on guide for experienced C++ developers who want to build an engine-like animation application from the ground up, moving from model loading and GPU compute through editing tools, collision, and navigation to lifelike, self-directed NPCs. Read it if you already know C++ and basic character animation and want a project-driven path into advanced game animation programming. 【Book Arc】 - **Opening (~0%–13%)**: Sets up the toolchain and project skeleton — Visual Studio 2022 with CMake, long-path configuration, and building the example code — then introduces the Open Asset Import Library (Assimp) for loading 3D models and instances at runtime. - **Early (~13%–32%)**: Moves animation math off the CPU. Profiling identifies matrix and animation calls as hotspots; the data model is reshaped and node transforms are relocated into compute shaders, with debugging and GPU-lockup cautions along the way. - **Early–Middle (~32%–42%)**: Adds interaction and editing — visual selection of instances, coordinate arrows, camera centering, and a separation of edit versus simulation modes, followed by undo/redo for instance settings. - **Middle (~42%–48%)**: Introduces configuration persistence: choosing a text format, parsing and writing YAML with yaml-cpp, and loading a default configuration at startup so work survives crashes and restarts. - **Late (~48% onward)**: Extends camera handling with multiple cameras and camera types, then broadens into collision detection, inverse kinematics, character behavior controls, and navigation algorithms for roaming complex environments. - **Ending**: Culminates in loading real game maps (including level formats and octree/quadtree handling) and assembling interactive virtual worlds populated by responsive, context-aware NPCs. 【Key Takeaways】 - **The book is project-first, not theory-first** (Opening): every concept lands in a running engine-like application with OpenGL and Vulkan variants, so you learn by extending working code rather than reading abstractions. - **Profiling before optimizing is a core lesson** (Early): the CPU-to-GPU migration begins with measured hotspots in Visual Studio and gprof, not guesswork — a transferable habit for any performance work. - **Compute shaders are treated as a practical tool, not a curiosity** (Early): node transforms move into shaders via SSBOs and dispatch calls, with honest warnings about GPU lockups and the need to verify speedups per GPU. - **Editor tooling is part of animation programming** (Early–Middle): visual selection, coordinate arrows, edit/simulation mode separation, and undo/redo show that a usable authoring workflow matters as much as the rendering math. - **Persistence is treated as essential infrastructure** (Middle): the YAML configuration chapter argues that saving and restoring state is what makes a larger application viable, and demonstrates custom type conversion with yaml-cpp. - **Camera work is an ongoing thread** (Late): multiple cameras and extended handling let you return to composed views, which the book frames as necessary for serious scene building. - **The end goal is behavior, not just motion** (Late): collision detection, inverse kinematics, behavior controls, and navigation algorithms combine so NPCs act naturally in complex environments. - **Assimp is powerful but imperfect** (Early): the book is candid that some formats fail or produce "vertex garbage," positioning Assimp as the best open-source option rather than a flawless one. 【Reading Tips】 - **Deep-read the compute shader chapter** (Early): the data-model reshaping and SSBO setup are the conceptual hinge of the book; skimming here will make later GPU-side work hard to follow. - **Skim the environment setup** (Opening): Visual Studio, CMake, and long-path configuration are one-time chores — get them working, then move on. - **Do the "Practical sessions" exercises**: they appear at the end of every chapter and are where the real skill transfer happens (animation controls, sliders, testing arbitrary models). - **Keep both OpenGL and Vulkan folders open**: the book deliberately mirrors implementations, and comparing them clarifies which parts are API-specific versus conceptual. - **Treat the configuration and undo/redo chapters as workflow lessons**: they are easy to dismiss as plumbing but are what make the rest of the project maintainable. 【Coverage Limits】 These excerpts cover the book's structure, early chapters in detail, and chapter summaries through the camera-handling material; the later chapters on collision detection, inverse kinematics, behavior controls, and navigation are described only at the level of the blurb and table of contents, so specifics there are not covered.
Excerpt 1
t natural, context-aware behaviors. Who is this book for? This book is for experienced C++ developers, game programmers, and character animators who already...
View in text
Excerpt 2
oading class in the model folder: #include <assimp/scene.h> #include <assimp/Importer.hpp> #include <assimp/postprocess.h> Next, we create an Assimp::Importe...
View in text
Excerpt 3
l in the CPU-based version of the code in Chapter 1 – with the exception of the model root matrix for the instance. Chapter 3 81 Uploading the coordinate arr...
View in text
Excerpt 4
_SOURCE_DIR} ${yaml-cpp_BINARY_DIR} EXCLUDE_FROM_ALL) endif() Windows also needs a script to detect the downloaded dependency. The detection script must be n...
View in text
Excerpt 5
ImGui::Text("Ortho Scaling: "); ImGui::SameLine(); ImGui::SliderFloat("##CamOrthoScale", &settings.csOrthoScale, 1.0f, 50.0f, "%.3f", flags); The checkboxes...
View in text
Excerpt 6
t << YAML::EndMap; } out << YAML::EndSeq; } Reading back the ModelSettings is done in the getModelConfigs() method of the YamlParser class. The YAML parsing...
View in text
Excerpt 7
importData( std::map<std::string, std::string> data) = 0; The first method, update(), is used to alter the internal state of the node depending on the time d...
View in text
Excerpt 8
eyframes stored in a variable called mNumMorphMeshChannels. The keys in every keyframe contain the points in time for the specific key, plus the numbers of t...
View in text
Tags
AI categories
ProgrammingC++Game Development
ISBN: 1835881920
Publish Year: 2025
Language: English
Pages: 545
File Format: PDF
File Size: 17.4 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…