Game Audio Programming Tips

December 5, 2023
December 5, 2023 Paul Virostek

Game Audio Programming Tips

How to Get Started in Game Audio Programming

Earlier, we chatted with our game audio programming team Johann Prell and Lorenzo Salvadori. That shared a birds-eye-view of what game audio programming is, how the Pole team gets the job done, and more.

As Johann and Lorenzo explained, game audio implementation is rewarding, intriguing, and fun. Maybe you’re thinking about how to get started in game audio programming yourself. Or perhaps you’re wondering how to get a job working with video game audio?

You're in luck. Johann and Lorenzo had even more advice to share. So, for this post, the team describes tips and tricks for how to get started in game audio programming. Today’s article includes Pole’s game audio team’s top tips and tricks for getting started in a career in game audio.

Let's learn more.

Game Audio Programming Tips from Johann Prell

Johann’s career in game audio began with work in music composition and sound design for live theatre. They first dipped their toe in the game audio world learning .NET programming – all with a goal of learning C# to work in the Unity engine. They now work almost exclusively in C++ and the Unreal game engine. It has been a 10 year journey that cultivated valuable tips:

1. Try It, You May Like It

Johann explained that they originally imagined they weren’t the right person to be a programmer. After trying it, they found the blend of thinking logically and creatively was a perfect fit. Their advice? Try it, you just may like it.

Do you have a background in music? Thinking about moving to game audio? Johann explained it’s natural to evolve from music to game audio programming. People who enjoy programming synthesizers and building harmonies are a natural fit for the skills needed for coding in game audio.

“People shouldn’t be scared to try game audio programming because they’re not good at math,” they explained. “If you have some interest in technical things, try it out.”

2. Be Comfortable Being Uncomfortable

Johann shared an unexpected tip for succeeding in game audio programming: be comfortable being uncomfortable.

You've probably seen hackers in films that crack NSA security with few breezy keystrokes. That’s not how it works in real life, of course. Work in game audio programming naturally includes encountering problems and sometimes not understanding why you’re not getting the solution you want.

Johann’s advice?

“The most important skill to develop is to be really comfortable not understanding something, and then, step-by-step, figure it out. Be comfortable feeling like you don’t know what’s going on.”

It's about adopting a useful perspective: accepting a lack of understanding. What’s more, this point of view opens the door to better problem solving with every issue that appears.

3. Go to Game Jams

When Johann first began programming, they attended many game jams, joining with others to make a video game from scratch in 24-48 hours.

Working under a compressed timeline, the events cultivated a pressure to create, problem-solve, and collaborate. The game jams were invaluable to help develop game audio programming skills.

The game jams were a mix of in-person LAN parties and virtual collaborations on Discord. Whichever the case the game jams were a great way to network: to get to know people in the industry and learn from others. Johann is still friends with people they met in the game jams years ago.

4. Develop Your Community

What about networking now? Johann noted it’s vital to nurture a community.

These days Johann keeps in touch with others through Discord, Slack, and Twitter. To track down communities, they suggest searching Slack for groups in your local community, or through Facebook. Many groups focus on very specific disciplines, so it’s an opportunity to take advantage of specialized communities, too. It’s a valuable way to find a mentor, and later in your career, offer mentoring to others.

How can you find the right community or colleagues to nurture? Johann’s tips:

“Search out people who have the same mindset as you. Keep in touch with those you’ve worked with and have clicked with. An open, honest mindset will go far.”

5. Access Resources

How do you get started learning the skills that you’ll need with game audio programming? Johann suggested that it’s always good if you’re able to do a full-time education – a degree can even be a requirement for work visas. However, there are plenty of resources for those that cannot. They singled out Catlike Coding by Jasper Flick and Unity demos by YouTuber Freya Holmér being particularly helpful when they began.

6. Power Up Your Tools

Sometimes tools make the job a lot easier.

Johann uses Trello when first structuring projects. They use the website’s card system to organize the things they want to learn.

When coding in Visual Studio, they find JetBrains’ ReSharper plug-in ($139+) invaluable to code more easily. Johann is also a fan of JetBrains’ Rider IDE (integrated development environment) ($149).

For fast text editing including macros and snippets, Visual Studio Code is great.

7. Embrace Creativity

While tools are essential for coding well, Johann shared that it’s important to embrace creativity, too. Thinking creatively and intuition are vital to finding inspired solutions to technical problems. How can you keep your creativity fresh?

Johann suggests not spending all your time in front of a computer. Step away and have some downtown or new experience with friends and family or by yourself. And although many of Johann’s hobbies are computer-based, they like to cycle through different activities like sound design, drawing, role playing games, and reading books.

Game Audio Programming Tips from Lorenzo Salvadori

Lorenzo Salvadori began his career in game audio programming from an unlikely source: a B.S.c in astronomy. From those unique beginnings he pivoted to studying sound engineering to audio post and then to game audio programming. Such a diverse path has helped Lorenzo share unique game audio programming tips for beginners.

1. Use Your Time to Explore Your Options

Lorenzo’s first tip? Be born rich.

While that’s tongue-in-cheek, Lorenzo expanded on what he meant: if you have the luxury of it, use your time to explore your options. Of course, while being rich certainly helps, he emphasized the value of using time to make proper game audio choices. Why?

Lorenzo explained that there are a mix of programming language choices when beginning a career in game audio programming. Take your time and pick the right language and engine for the career path you want.

For instance, pick Unity and C# if you want to focus on mobile and indie game development.

“If I was to do it again,” he said, “I’d pick C++ and the Unreal Engine right from the beginning. Unreal uses C++, so it is easy to migrate that knowledge to a different proprietary engine, which is typically coded in C++ as well.”

He suggests delaying learning middleware such as FMOD and Wwise until a later time. They can be confusing, and getting acquainted with a framework is a lot of effort. “It’s like studying physics starting from general relativity instead of Newtonian dynamics,” he said.

Overall, he stressed picking one language and engine and not mixing others into the learning process – it creates confusion and makes learning more difficult than it has to be.

2. Create a Game

Whichever language and engine you choose, Lorenzo suggests the best next step is to create a small game in the language and engine of your choice.

It doesn’t matter if it is basic, he explained. He suggests starting with the smallest things, even such basic functionally like printing a line to the console. Use the project to help you explore variables, functions, scope, learn what a class is, and delve into the basic concepts of object-oriented programming.

Lorenzo explained that 90% of a game audio programming job will involve doing something gameplay related. You’ll find your work needs to interact with all systems of a game – blueprints, weapons, characters, animations, the UI, world events for music systems, modifying engine classes, audio volumes, and much more.

Beginning by making a small game with simple challenges – such as a menu that loads a level, or loading a cutscene, and so on – helps become familiar with the concepts needed with more complex projects.

A fun project you create yourself will make learning easier and more enjoyable and – when it’s complete – more satisfying, too. Once you have the experience of completing a small game, you can grow that foundation to code more complex projects.

3. Explore Online Resources

Lorenzo used extensive online courses to develop his skills.

Berklee College of Music offers a 3-month online course to learn Unity. He also explored options on YouTube and Udemy to learn. Overall, his suggestions include binge-watching the courses, watching them again, then using the knowledge to create your own project.

Learn C is another site that provides a solid understanding of the basics. He’s also a fan of the Unreal engine documentation, with its extensive tutorials and videos.

Lorenzo also highlighted the value of looking at sample projects in the Dev Community site. “Pick a project that is similar to what you want to do, and learn from it.”

4. Learn from Source Code

Lorenzo noted that Unreal is open source. That means it’s simple to open up Unreal and learn from the source code.

“It's intimidating because it’s huge,” he said.

Just the same, when you are making your game in C++, being able to access the raw source code is an excellent way to learn – for instance peeking into the code to learn how a function works.

5. Helpful Tools

Like Johann, Lorenzo is a fan of the Rider IDE. It’s closely entwined with the Unreal engine, and is particularly helpful for debugging. Other perks include highlighting features of the code, auto-complete, auto-formatting code as you go, suggesting proper arguments, flagging errors as you write, and more. It’s a vital tool once your codebase gets larger.

He's also a fan of Obsidian MD, a super-charged note-taking app that supports bonus features like adding images, diagrams, videos, and creating mind maps. Lorenzo uses it to outline features like a Wiki. He also finds it helpful to document his decision-making throughout a project: why he chose certain options, and rejected others.

6. Embrace AI

Unreal is an immense engine. Sometimes knowing how to do things is unclear or the documentation is lacking.

Lorenzo’s shortcut? Use AI.

ChatGPT knows Unreal and can help you track down the answers you need. Lorenzo notes that the information may not be 100% accurate but it can help point you in the right direction. He uses it to ask what functions do, what the “include” is for a specific function, and more.

Learn more about Audio AI in a previous article here on the blog.

7. Don’t Be Afraid to Break Things

Lorenzo shared a valuable mindset for getting started with game audio programming: don’t be afraid to break things.

“A lot of time you learn more by breaking things. Ask yourself,” he said. “What’s the worst that could happen?"

What would happen if you change an engine function? Make a project backup. Then, go into the Unreal engine source, change a function, and see what happens. Perhaps you’ll break the project (or Unreal itself!). Not to worry, restore your project or download Unreal again. However, you’ll now learn why things broke, and understand more deeply how the code operates.

Exploring changing code in this way is a good way to accelerate learning.

“Not everyone is a genius,” Lorenzo said. “Game audio programming is not rocket science. You can learn it if you want.”

,
Contact

Got a question?
Get in touch.

We welcome you to contact us for more information
about any of our products or services.

Find answers to popular questions here.

    CALL: +(46) 707-94 04 76
    SALES@POLE.SE


    Postal address: Galtabäcksvägen 11, SE-168 55 Bromma, Sweden

    © 2020 All rights reserved. Pole Position Production. Please read our privacy policy and site terms. Sitemap.

    Contact
    Share via
    Copy link