SAFE AND SOUND Risk free Audio Development

GDC Audio Boot Camp 2009

Tomas Neumann – Senior Audio Programmer Frankfurt, March 2009 Introduction

Games Tomas Neumann FarCry (2004) Senior Audio Programmer in (2007) R&D since 2005 (2008) Tomas(at).com Crysis Wars (2008) Studios Frankfurt, Germany Budapest, Kiev, Sofia, Seoul Crytek UK

Tomas Neumann: Safe and Sound / GDC09 Audio In Game Development : Everywhere

• Pre-Production People outside of Audio • Implementation – Might have wrong impression • Music / Dialogue – Fear what they don‘t know • Milestones • Reviews • Technical settings • Alpha / Beta / Gold • Demo • Patches

Tomas Neumann: Safe and Sound / GDC09 Risk free Audio Development ?

• Stability • Earns trust – Fewer crashes – Take their fear – Fewer show-stoppers – Prove Audio is low risk • Efficiency • Quality – Fast turn around – Better Audio in final product – Fast bug fixes – Safe bug fixes

Tomas Neumann: Safe and Sound / GDC09 Risk free Audio Development !

• How to achieve? • “Never-ending story“ – Not done in a day – Ongoing development – Not a single task – Ongoing effort – Baby steps – Ongoing improvements – You will never succeed! This talk: • I will not tell you how to improve 1000 details! • HOPE

Tomas Neumann: Safe and Sound / GDC09 General Strategies To Follow

1. Limit access 2. Inform others 3. Divide and Conquer 4. Do not put things where they don‘t belong 5. Prepare for content-locks 6. Find your own bugs 7. A bug is your friend 8. Keep track of changes 9. Exploit automation 10.Data-mine for gold

Tomas Neumann: Safe and Sound / GDC09 1) “Limit Access“

• Use abstract, data-driven sounds  Cost: • Use high level parameters – More work • Minimize external interface – More responsibilty and behaviour – More bugs – (Code & Audio)  Benefit: – More creativity (internal) – Faster implementation – Fewer coders help needed

Tomas Neumann: Safe and Sound / GDC09 2) “Inform Others“

Write what others dont know.  Cost: – More communication • Internal communication – Extra code – Forum / Mail  Benefit: – Wiki – Better transparency • Show work early and often – Help others – No embarressment – People know: – See Jason‘s „Fail early“ • you actually work(!) • Code: • what is WIP and what is – Optional debug messages new

Tomas Neumann: Safe and Sound / GDC09 2) “Inform Others“ 2

Tomas Neumann: Safe and Sound / GDC09 3) “Divide And Conquer“

Avoid mixing responsibilities or overlapping tasks.  Cost: – Extra working steps • Sound Designer – Source (raw) asset creation  Benefit: – Asset specification – Frees SD‘s time • (Automatic) build process – Easier to resolve issues – Build (cooked) asset – Modular and structured work habits • Other areas: – Audio implementation / Code – Localization / post-processing

Tomas Neumann: Safe and Sound / GDC09 4) “Do Not Put Things Where They Dont Belong“

• Code  Cost: – Avoid hard-coding audio – Coding effort specification and – Well organized SDs references  Benefit: – Serialize from external – Independence from code database (xml, sql) – Quicker iteration (immune to code-lock!) • Audio – More control (stripping) – Clean up audio asset

Tomas Neumann: Safe and Sound / GDC09 5) “Prepare for code/content-locks“

They are coming, whether you  Cost: want it or not on milestones, demos, or randomly. – Administrative overhead They will block your progress! – More communication  Benefit: • Be prepared for downtime – Balanced work load – Reserve work to do in – Increase trust if audio was between. non-blocking – Inform if no audio bug was – Steady progress despite blocking milestones

Tomas Neumann: Safe and Sound / GDC09 6) “Find Your Own Bugs“

Dont expect:  Cost: • QA to know what is broken – Extensive play tests • Producers to know how – Scanning through game logs important or risky a fix is  Benefit: • Train QA – You know the game better • Add bugs by yourself – More fixed bugs = better shipped audio – Add to bug tracker, even if you are about to fix – Increase bug fix rate • Increase bug priority – Decrease fix time – Avoid low audio bug priority – Helpful statistics (known shippable in Beta) – Happy producer = more trust

Tomas Neumann: Safe and Sound / GDC09 7) “A Bug Is Your Friend“

• Document problems  Cost: – Write about it : What? Why? – Admit your mistakes – Add to bug tracker, even if – Overcome one‘s weaker self you are about to fix it • Code  Benefit: – Use assert() – Increased awarness (team, QA) – Log: Output warning – Faster fix-rate – Catch function call results • Done it before – Create test cases • Searchable mail • In-house & middleware • Producer‘s trust

Tomas Neumann: Safe and Sound / GDC09 8) “Keep Track Of Changes“

Why was a decision made 2  Cost: years ago? – Documentation effort What was agreed on in that – Write down the obvious meeting? Dialogue integration specialist:  Benefit: „btw, today is my last day!“ – Surprise-proof – Database of experience • Preserve knowledge – Evaluate and rate old • Offer it to new team decisions members • Write what you know

Tomas Neumann: Safe and Sound / GDC09 9) “Exploit Automation“

• Automatic Build on several  Cost: platforms – Extra hardware – Code (compilation errors) – Build / Audio engineer – Audio (integrity errors) • Automatic test run  Benefit: – Stability tests – Frees worker‘s PC – Mail filtered logs of warnings – Honest verification – Stability • Statistics – Performance – Performances graph • Show impact of changes – Short down time – Finalize compression settings

Tomas Neumann: Safe and Sound / GDC09 10) „Data-mine for Gold“

Statistics help you to find the • Graphs bang for the buck • Lists • Pictures

2.500

2.000

1.500

1.000

500

0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33

Times Played Times Played on a Channel

Tomas Neumann: Safe and Sound / GDC09 Picture: CryEngine multiplayer and audio stats Conclusion

Audio Development – safer – more stable – more efficient – more trustworthy – increase quality

You have to work on it – every single day!

Tomas Neumann: Safe and Sound / GDC09 KKTHXBYE

Thank you Please rate! Ask questions!

Tomas Neumann: Safe and Sound / GDC09 – Tomas(at)crytek(dot)com