Game Audio Programming: Principles and Practices