𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Game audio programming. [volume] 3: principles and practices

✍ Scribed by Somberg, Guy(Editor)


Publisher
CRC Press
Year
2020;2021
Tongue
English
Leaves
281
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Welcome to the third volume ofGame Audio Programming: Principles and Practices--the first series of its kind dedicated to the art and science of game audio programming. This volume contains 14 chapters from some of the top game audio programmers and sound designers in the industry. Topics range across game genres (ARPG, RTS, FPS, etc.), and from low-level topics such as DSP to high-level topics like using influence maps for audio.

The techniques in this book are targeted at game audio programmers of all abilities, from newbies who are just getting into audio programming to seasoned veterans. All of the principles and practices in this book have been used in real shipping games, so they are all very practical and immediately applicable. There are chapters about split-screen audio, dynamic music improvisation, dynamic mixing, ambiences, DSPs, and more.

This book continues the tradition of collecting modern, up-to-date knowledge and wisdom about game audio programming. So, whether you've been a game audio programmer for one year or ten years, or even if you've just been assigned the task and are trying to figure out what it's all about, this book is for you!

Key Features



Cutting-edge advanced game audio programming concepts with examples from real game audio engines



Includes both high-level and low-level topics



Practical code examples, math, and diagrams that you can apply directly to your game audio engine.



Guy Somberg has been programming audio engines for his entire career. From humble beginnings writing a low-level audio mixer for slot machines, he quickly transitioned to writing game audio engines for all manner of games. He has written audio engines that shipped AAA games likeHellgate: London,Bioshock 2,The Sims 4, andTorchlight 3, as well as smaller titles likeMinion Master,Tales from the Borderlands, andGame of Thrones. Guy has also given several talks at the Game Developer Conference, the Audio Developer Conference, and CppCon. When he's not programming or writing game audio programming books, he can be found at home reading, playing video games, and playing the flute.

✦ Table of Contents


Cover......Page 1
Half Title......Page 2
Title Page......Page 4
Copyright Page......Page 5
Dedication......Page 6
Table of Contents......Page 8
Preface......Page 12
Acknowledgments......Page 16
Editor......Page 18
Contributors......Page 20
Chapter 1 Sound Effect Categories......Page 24
1.1.1 Interactive Media......Page 25
1.1.2 The Big Three......Page 26
1.2.1 Environment......Page 27
1.2.3 Particle Effects......Page 28
1.2.4 Physics......Page 29
1.3.1 Movement......Page 30
1.3.2 Interactions......Page 31
1.4 Feedback......Page 32
1.4.3 Experience......Page 33
1.5.1 Sound Effects Category Check List......Page 34
1.6 Conclusion......Page 35
Section I: DSP......Page 36
2.1 Introduction......Page 38
2.2 Implementing Incremental Phase......Page 39
2.2.1 Resistance Is Real; Reaction is Imaginary......Page 41
2.2.2 The Voltage Before the Load......Page 42
2.2.3 The Voltage After the Load......Page 44
2.3 Implementing Geometric Growth......Page 46
2.4 Combining Incremental Phase with Geometric Growth......Page 48
2.5 Notation Used by DSP Programmers......Page 49
2.6 Conclusion......Page 51
Chapter 3 Building Dynamic Analog-Style Filters: Bi-Quadratic Cascades vs Digital Integrator Cascades......Page 52
3.2 The Infinite Impulse Response (IIR) Filter......Page 53
3.2.1 Pole-Zero Maps, the Z-Plane, the Unit Circle, and the Inverse-Z Transform......Page 55
3.2.2 Example: Math to Create a Notch Filter from Two Poles and Two Zeros......Page 57
3.2.3 Going Beyond a Bi-Quadratic Filter......Page 61
3.2.4.1 Digital Butterworth Low-Pass Bi-Quadratic Coefficients Derived from Analog Butterworth Control Parameters......Page 62
3.3 Digital Implementation of a Resistor-Capacitor (RC) Network......Page 64
3.3.1 The Digital Integrator (DI) Filter......Page 65
3.3.2 Example Code......Page 66
3.3.3 A Fast e[sup(x)] Implementation......Page 67
3.4.2 Butterworth High-Pass Filter......Page 68
3.5.1 The Concept......Page 69
3.5.2.1 Why the First Thing People Try Doesn’t Work Quite Right......Page 70
3.5.2.3 Example Code......Page 71
References......Page 73
Chapter 4 Modeling Atmospheric Absorption with a Low-Pass Filter......Page 74
4.2 Motivations......Page 75
4.4 Extreme Ranges......Page 76
4.5 A Look at the Low-Pass Filter......Page 77
4.6.1 Extra Vocabulary......Page 81
4.6.2 Math......Page 82
4.6.3 API......Page 83
4.6.4 Helper Functions......Page 84
4.6.5 Implementation......Page 85
4.7 Integration......Page 86
4.8 Future Work......Page 87
Appendix A: Absorption Coefficient......Page 88
4.B.1 Newton’s Method......Page 89
4.B.2 Trigonometric Solver......Page 90
References......Page 91
Section II: Voice......Page 92
5.1 Introduction......Page 94
5.2 Definitions......Page 95
5.3 Defining Requirements......Page 96
5.4.1 Expecting the Unexpected......Page 97
5.4.3 Automation......Page 98
5.4.4 Disaster Recovery/Revision Control......Page 99
5.5 Implementation......Page 100
5.5.2 Error Handling for Non-technical People......Page 101
5.6 Conclusion......Page 103
6.1 Introduction......Page 104
6.2 Clarifying Terminology......Page 105
6.3.1 Playing in a Multiverse......Page 106
6.4.1 Collecting and Rating Stimuli......Page 107
6.5 Client Workflow......Page 108
6.7 Network Considerations......Page 109
6.7.2 Network Reliability......Page 110
6.8 Voice Line Triggered Gameplay and Multi-Locale Client Connections......Page 111
6.9 Conclusion......Page 112
Section III: Audio Engines......Page 114
7.1 On Patch Cables......Page 116
7.3 First-Pass Abstractions......Page 118
7.4 The Patch Cable Abstraction......Page 120
7.5.1 Circular Buffer......Page 122
7.5.2 Patch Output......Page 125
7.5.4 Patch Input......Page 128
7.6 Patch Cable Mixer......Page 131
7.7 Patch Splitter......Page 134
7.8 Patch Mixer Splitter......Page 137
7.9 Patch Cable Abstraction Applications......Page 139
7.10 Conclusion......Page 140
References......Page 141
Chapter 8 Split Screen and Audio Engines......Page 142
8.1 Introduction......Page 143
8.2.1 Frames of Reference......Page 144
8.2.3 Reversibility......Page 146
8.3 Listener Geometry......Page 148
8.4 Listeners as a Frame of Reference......Page 149
8.5 Multiple Listeners......Page 150
8.6.2 Clipping and Phasing......Page 151
8.7.2 Singleton Systems......Page 152
8.8.1 Music......Page 153
8.10 Conclusion......Page 154
References......Page 155
9.1 The Need for Voice Management......Page 156
9.2 Sonifying a Forest......Page 157
9.4 Real Voice Pools......Page 158
9.5 Virtual Voice Pools......Page 159
9.7 Real Trees in a Virtual Forest......Page 160
9.8 Rule Building......Page 161
9.9.2 Distance-Based Rules......Page 162
9.9.5 Realization......Page 163
9.10 Runtime Asset Caching......Page 164
9.12 Conclusion......Page 165
Chapter 10 Screen-Space Distance Attenuation......Page 166
10.2 Distance Attenuation Review......Page 167
10.3 The Problem with Action RPGs......Page 168
10.4 The Meaning of Distance......Page 169
10.5 Converting to Screen-Space......Page 170
10.6.1 Pixels Are Not Meaningful......Page 171
10.6.2 The Range Is Too Small......Page 172
10.6.3 Using the Wrong Camera......Page 174
10.7 Next Steps......Page 176
10.8 Rectangular Distances......Page 177
10.9.1.2 Rectangular Shape......Page 179
10.9.2 Debug Rendering Algorithm......Page 181
10.9.3 Example Code for Unreal Engine......Page 183
References......Page 188
Chapter 11 Under the Influence: Using Influence Maps for Audio......Page 190
11.1 Introduction......Page 191
11.3.1 Grid......Page 192
11.3.3 β€œInfinite” Influence Maps......Page 194
11.4.3 Adding Radii......Page 195
11.5.1 Event-Based......Page 196
11.5.3 Static......Page 197
11.8.1 Feature Design......Page 198
11.8.2.1 Region Thresholds......Page 200
11.8.2.2 Cluster Analysis......Page 201
11.9 Conclusion......Page 202
References......Page 203
Chapter 12 An Importance-Based Mixing System......Page 204
12.2 The Importance of Context......Page 205
12.3 Importance System Algorithm......Page 206
12.3.1 Assign Each Object an Importance Score......Page 207
12.3.3 Place Sorted Objects into Importance Buckets......Page 208
12.3.4 Apply Effects to Sounds by Bucket......Page 210
12.4.1 Calculating Importance Scores......Page 211
12.4.3 Importance Bucket Assignment......Page 212
12.4.4 Querying the Importance Bucket......Page 215
12.4.5 Importance State......Page 216
12.4.6 Applying Filters Based on Importance......Page 220
12.4.7 Assigning Importance Buckets......Page 222
12.4.8 Debug Display......Page 223
12.5 Conclusion......Page 225
References......Page 226
13.1 Introduction......Page 228
13.2 Preliminary......Page 229
13.3 Voxel Emitter Implementation......Page 232
13.4 The Iterator......Page 234
13.5 Attenuation Range and Voxel Size......Page 236
13.6 Close to Zero......Page 237
13.7 Near Field and Spread......Page 239
13.8 Debugging......Page 242
13.9 Weight Functions......Page 243
13.10 Support Beyond Stereo: Z Axis......Page 245
13.11 Support Beyond Stereo: 5.1 and More......Page 248
13.12 Final Notes......Page 255
References......Page 256
14.1 All That Jazz......Page 258
14.2.1 Sound Generator......Page 259
14.2.2 Clock......Page 260
14.2.3 Sequencers......Page 261
14.3.1 Designing the Conductor......Page 262
14.3.2 Musician Design Considerations......Page 263
14.3.3 Funky Drummer......Page 264
14.3.4 All About That Bass......Page 266
14.3.5 Spacey Chimes......Page 268
14.3.6 The Soloist......Page 269
14.4 Wrapping Up......Page 271
References......Page 272
Index......Page 274


πŸ“œ SIMILAR VOLUMES


Game Audio Programming: Principles and P
✍ Guy Somberg πŸ“‚ Library πŸ“… 2016 πŸ› CRC Press 🌐 English

Welcome to Game Audio Programming: Principles and Practices! This book is the first of its kind: an entire book dedicated to the art of game audio programming. With over fifteen chapters written by some of the top game audio programmers and sound designers in the industry, this book contains more kn

Game audio programming: principles and p
✍ Somberg, Guy πŸ“‚ Library πŸ“… 2016 πŸ› Taylor & Francis;CRC Press 🌐 English

<P>Welcome to Game Audio Programming: Principles and Practices! This book is the first of its kind: an entire book dedicated to the art of game audio programming. With over fifteen chapters written by some of the top game audio programmers and sound designers in the industry, this book contains more

Game Audio Programming 2: Principles and
✍ Somberg, Guy πŸ“‚ Library πŸ“… 2018 🌐 English

Welcome to the second volume of Game Audio Programming: Principles and Practices - the first series of its kind dedicated to the art of game audio programming! This volume features more than 20 chapters containing advanced techniques from some of the top game audio programmers and sound designers in

Game Audio Programming 2: Principles and
✍ Guy Somberg (Editor) πŸ“‚ Library πŸ“… 2019 πŸ› CRC Press 🌐 English

Welcome to the second volume of Game Audio Programming: Principles and Practices – the first series of its kind dedicated to the art of game audio programming! This volume features more than 20 chapters containing advanced techniques from some of the top game audio programmers and sound designers in

Game Audio Programming 4: Principles and
✍ Guy Somberg (editor) πŸ“‚ Library πŸ“… 2023 πŸ› CRC Press 🌐 English

<p><span>Welcome to the fourth volume of </span><span>Game Audio Programming: Principles and Practices</span><span> – the first series of its kind dedicated to the art, science, and craft of game audio programming. This volume contains 17 chapters from some of the top game audio programmers in the i