SlideShare a Scribd company logo
1 of 21
Game Audio: API, Wrapper e Middleware
Davide Pensato
Milan | November 29 - 30, 2018
www.dpstudios.it
Le origini: Davide Pensato
Chitarrista
Cantante
Songwriter
Compositore
- Ingegnere delle Telecomunicazioni
Golden Age
MARZO 1999
- AUDIO DESIGNER
GENNAIO 2007
L'avventura
“Audio production is only half the final product.
How it is implemented is the other half.”
Audio API
● Interfaccia tra applicazione e driver del sistema
audio
● Astrazione tra sistema audio e programmatore
● Funzioni che permettono all'ambiente di gioco di
comunicare con i dispositivi audio in tempo reale
Funzionalità base dell'Audio API
● Inizializzazione
● Loading (static, streaming)
● Play, Pause
● Stop
● Suoni loop e one-shot
● Volume
● Pan
● Canali Audio
● Audio 3D
● Surround
● Fade
● Pitch
● Environmental Audio
● Scripting
Funzionalità avanzate dell'Audio API
Audio API principali
Su PCMac la scelta è limitata a:
● Windows: Xaudio2
● MacOS: Core Audio
Sulle console vi sono audio API proprietarie:
● Nintendo fornisce ATK per SWITCH e 3DS
● Microsoft fornisce Xaudio2 per Xbox ONE
● Sony fornisce Scream per PS4
● Iphone fornisce Core Audio
Audio API Low Level
https://docs.microsoft.com/en-us/windows/desktop/api/_xaudio2/
Audio Wrapper
● interfacce di programmazione che si appoggiano alle
API vere e proprie per creare una propria interfaccia
di più alto livello spesso crossplatform
● Façade pattern
● Tipicamente ogni videogioco ha un audio wrapper
creato internamente o acquistato come middleware
Game
Engine
API PC
API 3DS
API PS4
Game
Engine
API PC
API 3DS
API PS4
Wrapper
FMOD API Low Level
https://www.fmod.com/resources/documentation-api?page=content/generated/lowlevel_api_interfaces.html#/
System
Sound
ChannelControl
Channel
ChannelGroup
SoundGroup
DSP
DSPConnection
Geometry
Reverb3D
Audio Middleware
● GUI: applicazione indipendente, permette
all'audio designer di importare, configurare
e testare l'audio del gioco.
● API: audio wrapper
Tools
Game Engine
Sound Engine
T
O
O
L
S
Audio Tools e Integrazione
● Tool Standalone: Sound Editor
● Tools Integrati nel Game Editor
Engine IntegrationCross-PlatformCross-Platform Engine Integration
Audio Middleware
Middleware
Funzioni base
FMOD Low Level Programmer API
FMOD Studio Programmer’s API FMOD Studio
API PCAPI WIIAPI PS3
GAME ENGINE
Wrapper
Funzioni base
GAME ENGINE API PCAPI WIIAPI PS3
FMOD Low Level Programmer API
Middleware
Wrapper
Funzioni base
API PCAPI WIIAPI PS3
FMOD Low Level Programmer API
GAME ENGINE
FMOD Studio Programmer’s API FMOD Studio
Davide Pensato - Game Audio: API, Wrapper e Middleware - Codemotion Milan 2018

More Related Content

Similar to Davide Pensato - Game Audio: API, Wrapper e Middleware - Codemotion Milan 2018

I prodotti RØDE per fare podcasting - Gianluca Barbato
I prodotti RØDE per fare podcasting - Gianluca BarbatoI prodotti RØDE per fare podcasting - Gianluca Barbato
I prodotti RØDE per fare podcasting - Gianluca BarbatoGiulio Gaudiano
 
LinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesLinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesMaurizio Antonelli
 
Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...
Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...
Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...Codemotion
 
Introduzione all’informatica 2011
Introduzione all’informatica 2011Introduzione all’informatica 2011
Introduzione all’informatica 2011donmimi
 
Laboratorio di Produzione Audio per i Videogames
Laboratorio di Produzione Audio per i VideogamesLaboratorio di Produzione Audio per i Videogames
Laboratorio di Produzione Audio per i VideogamesFrancesco Corsello
 
Tecnologopercaso Magazine october 2013 ottobre
Tecnologopercaso Magazine october 2013 ottobreTecnologopercaso Magazine october 2013 ottobre
Tecnologopercaso Magazine october 2013 ottobreEdward Voskeritchian
 

Similar to Davide Pensato - Game Audio: API, Wrapper e Middleware - Codemotion Milan 2018 (8)

I prodotti RØDE per fare podcasting - Gianluca Barbato
I prodotti RØDE per fare podcasting - Gianluca BarbatoI prodotti RØDE per fare podcasting - Gianluca Barbato
I prodotti RØDE per fare podcasting - Gianluca Barbato
 
LinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesLinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slides
 
Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...
Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...
Davide Pensato/Alberto Barbati - Integrazione Audio per la VR: l'esperienza s...
 
Introduzione all’informatica 2011
Introduzione all’informatica 2011Introduzione all’informatica 2011
Introduzione all’informatica 2011
 
Presentazione Scolastica
Presentazione ScolasticaPresentazione Scolastica
Presentazione Scolastica
 
Laboratorio di Produzione Audio per i Videogames
Laboratorio di Produzione Audio per i VideogamesLaboratorio di Produzione Audio per i Videogames
Laboratorio di Produzione Audio per i Videogames
 
SCHEDA TECNICA DELLO STUDIO
SCHEDA TECNICA DELLO STUDIOSCHEDA TECNICA DELLO STUDIO
SCHEDA TECNICA DELLO STUDIO
 
Tecnologopercaso Magazine october 2013 ottobre
Tecnologopercaso Magazine october 2013 ottobreTecnologopercaso Magazine october 2013 ottobre
Tecnologopercaso Magazine october 2013 ottobre
 

More from Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Davide Pensato - Game Audio: API, Wrapper e Middleware - Codemotion Milan 2018

  • 1. Game Audio: API, Wrapper e Middleware Davide Pensato Milan | November 29 - 30, 2018
  • 3. Le origini: Davide Pensato Chitarrista Cantante Songwriter Compositore - Ingegnere delle Telecomunicazioni
  • 4. Golden Age MARZO 1999 - AUDIO DESIGNER
  • 6. “Audio production is only half the final product. How it is implemented is the other half.”
  • 7. Audio API ● Interfaccia tra applicazione e driver del sistema audio ● Astrazione tra sistema audio e programmatore ● Funzioni che permettono all'ambiente di gioco di comunicare con i dispositivi audio in tempo reale
  • 8. Funzionalità base dell'Audio API ● Inizializzazione ● Loading (static, streaming) ● Play, Pause ● Stop ● Suoni loop e one-shot ● Volume ● Pan ● Canali Audio
  • 9. ● Audio 3D ● Surround ● Fade ● Pitch ● Environmental Audio ● Scripting Funzionalità avanzate dell'Audio API
  • 10. Audio API principali Su PCMac la scelta è limitata a: ● Windows: Xaudio2 ● MacOS: Core Audio Sulle console vi sono audio API proprietarie: ● Nintendo fornisce ATK per SWITCH e 3DS ● Microsoft fornisce Xaudio2 per Xbox ONE ● Sony fornisce Scream per PS4 ● Iphone fornisce Core Audio
  • 11. Audio API Low Level https://docs.microsoft.com/en-us/windows/desktop/api/_xaudio2/
  • 12. Audio Wrapper ● interfacce di programmazione che si appoggiano alle API vere e proprie per creare una propria interfaccia di più alto livello spesso crossplatform ● Façade pattern ● Tipicamente ogni videogioco ha un audio wrapper creato internamente o acquistato come middleware Game Engine API PC API 3DS API PS4 Game Engine API PC API 3DS API PS4 Wrapper
  • 13. FMOD API Low Level https://www.fmod.com/resources/documentation-api?page=content/generated/lowlevel_api_interfaces.html#/ System Sound ChannelControl Channel ChannelGroup SoundGroup DSP DSPConnection Geometry Reverb3D
  • 14. Audio Middleware ● GUI: applicazione indipendente, permette all'audio designer di importare, configurare e testare l'audio del gioco. ● API: audio wrapper
  • 16. Audio Tools e Integrazione ● Tool Standalone: Sound Editor ● Tools Integrati nel Game Editor
  • 18. Middleware Funzioni base FMOD Low Level Programmer API FMOD Studio Programmer’s API FMOD Studio API PCAPI WIIAPI PS3 GAME ENGINE
  • 19. Wrapper Funzioni base GAME ENGINE API PCAPI WIIAPI PS3 FMOD Low Level Programmer API
  • 20. Middleware Wrapper Funzioni base API PCAPI WIIAPI PS3 FMOD Low Level Programmer API GAME ENGINE FMOD Studio Programmer’s API FMOD Studio