lua and adaptive audio - don veca (activision)
TRANSCRIPT
Lua Scripting in Game Production
Adaptive Audio
Introduction
Who am I, and why am I here?
Don Veca, Audio DirectorVisceral GamesElectronic Arts
1992 - 2009
Don Veca, Audio DirectorSledgehammer Games
Activision
2010 - Present
Disclaimer
• Discussion: Limited to very general and basic use of Lua for game audio.
Disclaimer
• Discussion: Limited to very general and basic use of Lua for game audio.
• EA: Anything I say can and will be used against me in a court of law.
Disclaimer
• Discussion: Limited to very general and basic use of Lua for game audio.
• EA: Anything I say can and will be used against me in a court of law.
• Activision: My bonus will be inversely proportional to unannounced information disclosed.
Why Use Lua for Game Audio?
Why Use Lua for Game Audio?
Great game audio requires:
Great Source Material & Talent
Why Use Lua for Game Audio?
Great game audio requires:
Great Source Material & Talent
Experimentation
Why Use Lua for Game Audio?
Great game audio requires:
Great Source Material & Talent
Experimentation
Iteration
Why Use Lua for Game Audio?
Great game audio requires:
Great Source Material & Talent
Experimentation
Iteration
Sophisticated procedural audio
Why Use Lua for Game Audio?
Great game audio requires:
Great Source Material & Talent
Experimentation
Iteration
Sophisticated procedural audio
Powerful adaptive audio systems
Procedural Audio
Common Audio Scripting Languages
Max/MSP
Pd (Pure Data)
SuperCollider
Csound
Visual Programming Languages
Pros:
Lots of sound designers love it.
Visual Programming Languages
Pros:
Lots of sound designers love it.
Great for prototyping.
Visual Programming Languages
Pros:
Lots of sound designers love it.
Great for prototyping.
Great for experimentation/iteration.
Visual Programming Languages
Pros:
Lots of sound designers love it.
Great for prototyping.
Great for experimentation/iteration.
Sophisticated adaptive audio systems.
Visual Programming Languages
Cons:
Most game programmers hate it.
Visual Programming Languages
Cons:
Most game programmers hate it.
Game runtime can be expensive.
Visual Programming Languages
Cons:
Most game programmers hate it.
Game runtime can be expensive.
Can become very unreadable.
Visual Programming Languages
Cons:
Most game programmers hate it.
Game runtime can be expensive.
Can become very unreadable.
Difficult to debug and maintain.
Lua is a great compromiseBecause:
Most game programmers like it. Technical sound designers love it. Efficient runtime. Very readable. Easy to debug and maintain. Great for experimentation/iteration. Sophisticated adaptive audio systems. Extremely flexible.
What audio applications is Lua good for?
What audio applications is Lua good for?
• High-level Event Handling
What audio applications is Lua good for?
• High-level Event Handling• Simple Audio Control
What audio applications is Lua good for?
• High-level Event Handling• Simple Audio Control• Temporal Audio Control
What audio applications is Lua good for?
• High-level Event Handling• Simple Audio Control• Temporal Audio Control• Run-time Audio Binding
What audio applications is Lua good for?
• High-level Event Handling• Simple Audio Control• Temporal Audio Control• Run-time Audio Binding• Prototyping
What audio applications is Lua good for?
• High-level Event Handling• Simple Audio Control• Temporal Audio Control• Run-time Audio Binding• Prototyping• Adaptive Audio Systems
What audio applications is Lua NOT good for?
What audio applications is Lua NOT good for?
• Audio DSP
What audio applications is Lua NOT good for?
• Audio DSP• System-level Programming
What audio applications is Lua NOT good for?
• Audio DSP• System-level Programming• Frame-rate-level Processing*
What audio applications is Lua NOT good for?
• Audio DSP• System-level Programming• Frame-rate-level Processing*• Tools
Lua Audio Code Examples
• High-level Event Handling
Lua Audio Code Examples
• High-level Event Handling
• Simple Audio Control
Lua Audio Code Examples
• High-level Event Handling
• Simple Audio Control
• Temporal Audio Control
Lua Audio Code Examples
• High-level Event Handling
• Simple Audio Control
• Temporal Audio Control
• Adaptive Audio Systems
Examples of Adaptive Audio Systems
• Adaptive Music Systems
Examples of Adaptive Audio Systems
• Adaptive Music Systems
• Adaptive Ambient Systems
Examples of Adaptive Audio Systems
• Adaptive Music Systems
• Adaptive Ambient Systems
• Environmental State Machines
Examples of Adaptive Audio Systems
• Adaptive Music Systems
• Adaptive Ambient Systems
• Environmental State Machines
• Character Run-Time Audio Binding
Examples of Adaptive Audio Systems
• Adaptive Music Systems
• Adaptive Ambient Systems
• Environmental State Machines
• Character Run-Time Audio Binding
• Vehicle Systems
Examples of Adaptive Audio Systems
• Adaptive Music Systems
• Adaptive Ambient Systems
• Environmental State Machines
• Character Run-Time Audio Binding
• Vehicle Systems
• Adaptive Mixing & Ducking
Adaptive Car Engine Example
Adaptive Car Engine Example
• FMod Version
Adaptive Car Engine Example
• FMod Version
• Max/MSP Version
Adaptive Car Engine Example
• FMod Version
• Max/MSP Version
• Lua Version
Conclusion…
Conclusion
• Use Lua for game audio!
Conclusion
• Use Lua for game audio!
• New role: Technical Audio Artist.
Conclusion
• Use Lua for game audio!
• New role: Technical Audio Artist.
• Adaptive Audio Systems are the Future!
Questions?