Game audio, vesmír a vůbec game audio z pohledu herního vývojáře Michal Blažek audio programátor na projektech Vietcong, Mafia, Rush’N’Attack, Silent Hill: Downpour - úvod do game audia - historie - principy a implementace - technologie a knihovny třetích stran - otázky Obsah - zvukové efekty (SFX / sound effects) - hudba (music) - hlas (voice) Co je game audio? - notifikace, interakce - emoce, zábava - příběh (storry telling) - prostor, orientace v prostoru Přínos pro hru / pro hráče - vnímání - realtime - překrývání zvuků - ladění - trochu nevděčná práce :-) Čím je audio specifické - frekvenční rozsah: 20Hz - 20kHz - pozice zvuku v prostoru - fázový posun, rozdíly ve spektru - změna frekvence - frekvenčně závislá, až jednotky centů - umožňuje využití dopplerova jevu - dynamický rozsah: 120 dB Vnímání, rozlišovací schopnost - žádné výpadky ani prudké změny - problém s posíláním dat na výstup - u moderních OS a knihoven již neexistují - problémy s latencí - mezery při napojování zvuků (gapless) - problémy se synchronizací - vždy se synchronizuje obraz podle zvuku Realtime - dokážeme rozlišit jen několik málo zvuků v podobném frekvenčním spektru - hlasitější zvuky překrývají slabší - lze využít pro optimalizace Překrývání zvuků - klasické ladění nefunguje - dodatečné ladící nástroje - logování, capturing dat mixu - monitory, vizualizace dat - realtime vypínání zdrojů a částí mixu - zkušenosti - 3rd party knihovny jsou výhoda Ladění (debugování) - v reálném životě bereme zvuk automaticky - dobrého zvuku si nikdo nevšimne, protože je přirozený - hudba je vyjímkou - podobné s networking - musíte se motivovat sami nebo v týmu Trochu nevděčná práce :-) - audio director - skladatel - zvukař (audio designer, engineer) - audio programátor - externí spolupráce - firmy (outsourcing) - nahrávací studia, orchestry, herci a dabéři Audio tým - liší se podle žánru hry - množství dabingu, hudby - liší se podle platformy - mobile vs konzole vs multiplatform - liší se podle velikosti projektu/firmy - nekomerční projekty (indie) - malé komerční projekty (budget) - velké komerční projekty (AAA) Přístup k vývoji - audio je okrajovou záležitostí - spontální vývoj - open-source zvukové banky - open-source nebo indie technologie - hudba od komunity nebo od “kámoše” Nekomerční projekty (Indie) - audio je na “druhé koleji” - omezený rozpočet - zvukaři nepracují full-time - hektický vývoj v pozdější fázi - profesionální vybavení, SW a banky - hudba nahrána SW nebo lokální kapelou Malé komerční projekty (Budget) - audio je bráno vážně od začátku proj. - profesionální tým (4-10 lidí) - vlastní rozpočet (audio director) - licensovaná nebo orchestrem nahraná hudba - externí firmy, nahrávací studia, herci Velké komerční projekty (AAA) - prehistorická éra - rozvoj technologií a datových formátů - první knihovny třetích stran - komplexní technologie třetích stran Historie - omezený výkon i paměť - zákaznické zvukové chipy - specifické programování - specifická audio data - nízká kvalita, nedokonalosti - přesto velké nadšení Prehistorická éra (80 léta) - Atari 800, 130 - 4 kanálový syntetizátor - ZX Spectrum - 1 bit DA, později 3 kanálový 4 bit DA - Commodore 64 - 3 kanálový syntetizátor 8 bitové domácí počítače ZX Spectrum: Knight Lore gameplay (1984) Atari 800: Draconus menu music (1988) Atari 800: Perestroyka music demo (1989) - XT - CPU 8086, pro hry téměř nepoužitelné - AT - CPU 80286, +256kb RAM - 1 bit DA známý jako PC speaker (squeaker) PC 80tých let Golden Axe gameplay (1989) - PCM data - vylepšené syntetizátory - stereo, Dolby - MIDI - první standardní datové formáty - WAV, MOD, MP3, OGG Rozvoj technologií (poč. 90 let) - digitální reprezentace analogového signálu - vzorky jsou sbírány v uniformních časových intervalech - kvalita závisí na (bits per sample) a frekvenci - při “nízké” kvalitě dochází k slyšitelné chybě díky kvantizaci Pulse-code modulation (PCM) - Amiga 500, 1200 - 4 kanálový 8 bit DA (2 + 2 stereo) - 24 kHz přes DMA, 56 kHz přímo - 512kb RAM - dost místa pro PCM data - první tracker, přináší MOD formát - Amiga nastavila standard, který ostatní nemohli ignorovat Domácí počítače 90 let Ukázka programu Protracker Jumping Jackson gameplay (1990) - 80836, více paměti, více výkonu - Zvukové karty - AdLib (1987), 11 chan synth - Sound Blaster (1989), 22kHz 8 bit, + AdLib - Roland SC-55 (1991), 24 chan synth stereo - Sound Blaster 16 (1992), 44kHz stereo, equalizer - Gravis Ultrasound (1992), 32 chan wavetable synth - Demoscéna, nové trackery (S3M, XM) PC 90 let Dune game, AdLib music (1992) Future Crew: Second reality demo (1993) - Touha po standardizaci a abstrakci HW - DirectSound, Microsoft (1995) - SW a HW mixování - 3D audio, DSP efekty (reverb, echo, flange) - ring buffer - OpenAl, Loki Software (2000) - multiplatformní (Linux, Windows) - 3D audio, doppler, EAX První knihovny třetích stran - zvuk umístěn ve 3D - sound source, audio data, listener koncept - útlum v závislosti na vzdálenosti (attenuation curve) - reverb (enviromental audio) - HRTF - překážky, odrazy - doppler 3D audio - reverb, echo, ekvalizer (low pass, high-pass), flanger - matematicky modifikuje signál, náročné na výkon - lze spojovat do grafu - dry + wet DSP effekt - hraje dokola - podporovaný HW nebo low level SW mixérem - notifikační body - řeší “gap” problém - streamování hudby Ring buffer - knihovna pro mix a render - nástroje pro designéry a ladění - datová pipeline - širší použití DSP efektů - multiplatformní - integrace do herních engine Komplexní technologie FMOD studio: multitrack sound effect - 2D zvuk - 3D zvuk - hudba - hlas, lokalizace - cutscény Advanced - vhodný pro 2D hry, GUI, ambientní zvuky, hudbu a cutscény - mono, stereo nebo surround (5.1) - základní parametry - relativní výška tónu (pitch) - hlasitost (volume) - stereováha (pan) 2D zvuk - vhodný pro 2.5D hry, 3D hry a in-game cutscény - složitá renderovací pipeline a parametry - výška tónu, hlasitost - pozice, vektor rychlosti, útlum - efekty prostředí - multi-listener - virtuální zvuky 3D zvuk (spatialized) - zdroje - stereo - více-kanálová hudba (surround music) - tracker - streamování - dynamická/interaktivní hudba - in-game (3D zvuk), “filmový” efekt Hudba - může být 2D i 3D - lokalizace - dabing (jako ve filmu) - titulky - synchronizace - voice over network - streamování - speciání kodeky (Speex) Hlas, lokalizace - Video - Předpřipravený zvuk - umožňuje přidat efekty, které audio neumí - problematická synchronizace - In-game - lze využít všech vlastností audio systému - konzistence - tolerantní ke změnám Cutscény - SDL - OpenAl - XAudio 2 - FMOD - WWise - mnoho dalších Knihovny třetích stran - zLib license - velmi low level, určena k pouze na abstrakci HW - playback, recording - Windows, Mac OS X, Linux, iOS, Android - podporuje pouze PCM data SDL (SDL comunity) - relativně low-level knihovna - odělená audio data od audio source - programovatelné DSP, obecný signal processing graf - XBox 360, XBox One, Windows, Windows Mobile - WAV, XMA, ADPCM XAudio 2 (Microsoft) - od verze 3.75 komplexní technologie - designerské nástroje (FMOD Studio) - datová pipeline - zdarma pro Indie vývojáře - integrace: Unreal 3 a 4, Unity - Windows, Mac, Linux, Xbox (360, One), PlayStation (3, 4, PSP, Vita), Wii, Wii U, 3DS, iOS, Android, Windows Phone 8, Blackberry FMOD (Firelight technologies) - komplexní technologie - designerské nástroje, nástroje pro vytváření audio bank - zdarma pro nekomerční projekty - integrace: Unity, Unreal 3 a 4, CryEngine, Marmalade - Android, iOS, Linux, Mac, Nintendo 3DS, PlayStation 3 a 4, Windows, Windows Phone, Xbox 360 a One, Wii, Wii U WWise (audiokinetic) Dotazy? Děkuji za pozornost Michal Blažek