GAB Member Spotlight - July 2019 - Ethan Fenn
Welcome to the GAB Member Spotlight, where you can learn more about the audio developers working right in your own back yard. For our premier GAB Member Spotlight, we decided to highlight a frequently underrepresented position in the audio development pipeline. So, we sat down with local audio programmer and entrepreneur, Ethen Fenn.
GAB: Are you from Boston originally?
EF: No. I’m from upstate New York. But I’ve been living here since 2000 when I was attending MIT.
GAB: And what is your background? How did you get into the game industry as an audio programmer?
EF: Well I went to MIT and double majored in mathematics and music. Prior to that I had been playing instruments forever. I took piano lessons when I was five, and then I started up the trombone in elementary school. On the programming side I don't have much formal education. I just started messing around and experimenting. In college I took programming classes, but nothing serious. Then I fell into the game industry accidentally. It was between my junior and senior years and I wasn't sure what I was doing for the summer, so I went to this career faire. I ended up talking to the people at MadDoc software and I thought: “A game studio. That sounds like fun!” So, I got a summer internship with them. I worked some very long hours.
GAB: As an intern they made you crunch?
EF: I don't think “made me” is the right term. Everyone was crunching. I didn't mind. I was a kid. I thought it was cool. I was working on a video game. So, I was hired by MadDoc but I was working at a studio called Impressions. And this is the weird part -- it was in the American Twine building where GAB has its meetings. So where Intrepid is now, that used to be Impressions -- that exact space.
After senior year, when I was looking for jobs, I applied there. But they were a few months from closing down forever. Luckily, they didn’t hire me. But the guy I worked closely with at MadDoc had joined Harmonix in the interim. So, I applied for a generic programmer position and lucked out because in the interview I was talking about my interest in audio programming, and the projects I had been working on. As it turned out, the guy that was leaving was their main audio programmer. So, I think they were excited because it’s hard to find an audio programmer even if you look. The stars aligned, as they say. And I was with Harmonix for about three years. The first game I worked on was Karaoke Revolution. And then I worked on Guitar Hero and Rock Band.
GAB: What made you decide to create your own company?
EF: After Harmonix I was a bit burned out. The studio went from about thirty people to well over a hundred. It was pretty intense and I was very young. After that I did some contract programming work for a little bit. I worked with Demiurge on a project. And then I met Eitan Gilnert who was starting up Fire Hose Games. We met a Boston Post-Mortem and were introduced by a mutual friend. I worked on Slam-Bolt-Scrappers and Go Home Dinosaurs. In fact, one of the things Fire Hose did early on was create the first prototypes for Dance Central. Harmonix contracted Fire Hose to work on it.
But I mostly decided to start by own company because of a need for variety. I like to be in control of what kind of work I’m doing. It suits my temperament a lot better to be able to switch gears when I want to and do something different. I always have a variety of work that I can choose from to work on. And I like having that flexibility. Even when I’m doing contract work, I vastly prefer contract projects that last a few months rather than working on the same project for years and inevitably getting sick of it.
GAB: And what is your workflow like?
EF: At any given time I have a mix of contract work and my own product development work. I try to divide it up pretty strictly so that I'm not switching projects throughout the day. I also like working on my own products and I like being able to explore product design. It’s an interesting challenge. You have to think about audio tech underlying it, the DSP stuff, user interface, and how to market it. I like the variety. I like the idea that if I'm totally sick of doing something, I can just decide to work on something else. It's empowering and you don't often get that feeling working as a programmer at a company on someone else's product.
GAB: What are the tools you use in your pipeline?
EF: For programming? I use Emacs as my text editor, which is super old-school. I like it because it keeps me engaged and makes me think about things differently. One thing it’s very good at is you can do everything with a keyboard. You don’t use a mouse at all. So, there’s all these crazy shortcuts that really help you save time. It’s all been optimized for efficiency. And it really is amazing how much it speeds you up once you get used to it. I do also use Visual Studios. But I use it to build and to debug. When I’m actually writing code, I use Emacs. My workflow is kind of old fashioned. I tend to skip out on tools that do things for you.
GAB: Do you use version control for your projects?
EF: Definitely. You should always use version control when you’re doing any kind of programming. Even if you’re just doing stuff for yourself. It’s good not to lose work. It’s useful to be able to have clues when things stop working. That’s actually something that programmers end up doing a lot. A last resort that always works is checking the change-lists to figure out when it was last working properly. I have probably done it at least once on every shipped product.
I like GIT the most. It took me a long time to come around to it, but I like GIT a lot. When I working with clients, I’ll use whatever they’re using. Most often it’s Perforce and GIT that I encounter. There’s still some Mercurial users and Subversion users. But in my experience, they’re getting pretty rare.
GAB: How do you find contract work?
EF: So far, I’ve been pretty lucky and I’ve found work through referrals. So, I haven’t had to dig too much. But mailing lists have been a good source. Groups like the Game Audio Slack and Wwise Group on Facebook are good. And I try to be available if there’s a question that’s up my alley and I know exactly how to help the person out. It helps to establish a community presence. People get to recognize your work, know your name, they’ll reach out when they have issues, but they’ll also reach out if they have a project.
GAB: What would you suggest people learn if they’re interested in becoming an audio programmer?
EF: To be an audio programmer you need to be a really good programmer, as it turns out. Not only do you need to be a good programmer that could fill any other programming role, but audio programmers deal with lots of low-level stuff like multithreading. For example, if you’re using Unity, everything you’re working on is all happening on one thread. Audio is inherently not running on the same thread as everything else because audio has to be real-time. So whatever stuff your game is doing, the audio thread can keep running and do all its work getting the sound out to the speakers.
GAB: What about working with synthesis?
EF: That’s very project dependent. There are audio programmers and then there’s audio programmers that do DSP which is another niche circle of weird skillsets inside the audio programmers skillset. Yeah, I would guess that the vast majority of audio programmers rarely do DSP. They do stuff you could describe as plumbing, tool support, lots of stuff that’s at a higher level than choosing what sounds to play.
I have a compressor plugin available for Wwise right now. For that product, I developed the filter algorithm it’s based on. It’s a multiband compressor, so I needed to divide up the frequency spectrum using a bunch of filters and bands. And I had to very carefully do it in a way that they didn’t phase against each other. And that’s all from scratch – which is more math than programming. I’m also working on a DAW version of the compressor and maybe a Unity version. Part of the challenge is deciding where to focus my attention. And that’s another reason I created my own company that does this kind of stuff. It’s hard to find a job doing it, and I love doing it.
GAB: What are you playing right now?
EF: I’m playing the Witcher 3. Factorio is kind of my guilty obsession. It’s just a time-sync at this point, but it’s a fun way to turn my brain off. Also – I haven’t been playing this but I’ve been watching people play it. Have you heard of the game Deadly Premonition? It’s the weirdest thing. It’s made by a Japanese developer and they very much made Twin Peaks into a video game.
EF: No. But awesome in its failure. It’s hard to pin down. It’s not so bad it’s good. But there are lots of really compelling things in a wildly imperfect package. You should definitely check it out.
GAB: Favorite game of all time?
EF: Probably Katamari Damacy. I love the music. It is a singular soundtrack. The music is amazing. It’s just such positive, silly fun.
GAB: Parting words. What’s your Game Audio hot take?
EF: I think that the prevailing wisdom in mixing AAA games is crazy. They mix to sound like the movies and people don’t play games in movie theatres as it turns out. So that’s my hot take on AAA game sound.