You have exactly 30 seconds.
In that 30 seconds, you have to answer a question that only has one right answer. That answer is worth $2,526,301 and the opportunity to make even more later.
Feel any pressure? If not, imagine the Jeopardy music playing in your head.
That’s because this is that situation Jeopardy super-champion Ken Jennings found himself in on November 30, 2004. In Final Jeopardy, Jennings found his 75 game winning streak vulnerable when he had to find the answer to the Jeopardy question “Most of this firm’s 70,000 seasonal white-collar employees work only four months a year.”
Like Jennings, we’re often trying to find the right answer for our careers and feel like there must be one right answer to questions like “What is the best programming language for me to learn?” While fortunately, there’s not (and it’s also not a $2 MILLION question), my suggestion for those of you dying to learn game audio implementation is to start with C# first.
C# is easy to learn and can do a lot with what you care about.
When we re-evaluate that question from earlier – “What is the best programming language for me to learn?” – you might’ve missed out on one extremely important word: me. When we’re talking about you, the answer is subjectively dependent on what your end goal is. So for the rest of this article, I’m going to assume that your end goal is to be able to implement audio in games with code.
That means your goal isn’t to write Reaper scripts, create audio plugins, make generative music, work with AI, or anything else. (Those might also be goals of yours – but one thing at a time, okay?)
In that case, the two biggest reasons for you to start with C# are:
- Again, it’s pretty easy to pick up the basics
- It’s used in Unity
I can give you a number of additional reasons – like you can use it to make tools for Wwise and other proprietary engines, implement sounds with Wwise and Unity, plus build desktop apps for Windows and Mac – but the two reasons you should really care about are its learning curve and usability with Unity.
Because of those two points, you only have to learn an extremely minor amount of C# to take tremendously large strides in implementing audio effectively in the games or reels that you’re working on. Remember, a metric ton of games and reels today are made in Unity.
C# reduces the complexity to simply playing back sound.
So long as you’re using the Unity platform, there is already a set of instructions (ie: an API) on how to make audio play back whether you’re using stock Unity, FMOD, or Wwise.
If you’ve ever used one of those middleware platforms, you’ve likely hit a struggle where you’ve got your sound working within their editor interface, but can’t get it to play back in your game. No matter how much you search, there’s no real super clear answer. There seems to be some way to do it with code, but that sounds complicated. You’d rather there be a drag-and-drop interface, but there doesn’t seem to be one!
It’s so easy to get frustrated and stuck at this place that you’re liable to give up. Some of you may even decide that game audio is too hard. But the magic alchemy of just getting the “play” button to work at the correct time isn’t super difficult – it’s just not a common piece of knowledge amongst many audio designers. Surprisingly, with Wwise, it can be a single line of code!
But if it’s really as easy as I’m telling you – why isn’t this all over search engines and how do you start learning it?
Most audio designers don’t programmatically implement their sounds.
That’s because learning to code as a beginner seriously sucks. Every single free beginners programming tutorial on the internet has you do theoretical programs that don’t really result in anything. Four years ago when I wrote Begin Audio Scripting in Reaper, the only “write your first line of code by making a sound” tutorial was for audio-specific languages like CSound, Super Collider, Pure Data, ChucK, etc.
God forbid you want to start learning C# by using any free/cheap online tutorial – YouTube, Freecodecamp, Udemy, whatever. You’ll get stuck doing a lot of work that’s completely unrelated and irrelevant to just playing a sound in a game.
And that’s what you want, right?
So I made a course that skips everything that’s irrelevant to the immediate problem and gets you making sounds in games, fast. Is all that other knowledge useful? Yes. Should you learn it at some point in depth? Yes, assuming you enjoy programming. Should you be required to go through a slog and learn things “the right way” first? In my opinion, no.
So, in incredibly biased fashion, to answer the question of how you should start learning C# – I humbly suggest you invest in C# Implementation with Wwise and Unity.
“But Adam” you say, “Why shouldn’t I start with (C++/Python/Lua/etc) first?!”
Remember that special word from above? Me? We were talking about you, assuming that you want to implement sounds in games. All of those other languages are great – for different specific uses. But I wouldn’t suggest you tackle any of them first unless…
If you want to work with Unreal Engine, your two options to pick up are C++ and Blueprints. I have zero idea how or if middleware interfaces with Unreal’s Blueprints at this point, and it’s unlikely that I’ll found out because I rarely use Unreal at this point. Otherwise, you’ll be interfacing with it using C++. In that case, you should certainly consider picking up C++. But, compared to C#, the learning curve is significantly steeper. It’s also significantly more rewarding, as you can do even more with C++ than you can with C#!
If you want to write Reascripts or other scripting tools on your computer – Lua and Python are definitely worth learning. If you’ve never written a line of code in your life and you’re really intimidated and really want to try, I wrote Begin Audio Scripting with Reaper with people just like you in mind. I really want to make audio-related programming more accessible to you, and that’s the very first thing I’d throw you to – yes, even before C#. But, neither Python or Lua code can implement audio playback with today’s big commercial game engines.
Jennings never found his answer.
His 75 game Jeopardy win streak ended with that question. The correct answer? “What is H&R Block” – the tax service that operates seasonally.
But, where Ken’s mind went blank for those 30 unforunate seconds – yours won’t.
What language should you start with to learn game audio implementation? That’s right. If I haven’t battered it into your head enough – start with C#!
Just… do me a favor and don’t implement the Jeopardy music unless you’re working on a Jeopardy game, okay?
Take the next step next week.
A week from today – Monday, September 28th – C# Implementation with Wwise and Unity goes back onsale. If you’re curious about it, I suggest reading up on the course and sending me any of your questions to help you make a decision of whether to invest in the course or not.
Next week, expect a few short emails from me reminding you of the onsale, providing some answers to frequently asked questions, and more. The course is going to be limited in it’s availability, so put some thought in before you jump in to buy it. Again, email me immediately if you’ve got any questions.
Copyright 2016-2021, NIR LLC, all rights reserved.