Eric Newton is a graduate student at the University of Iowa, currently studying for his master's in computer science. While school is in session, he organizes club activities as president of the Association for Computing Machinery branch on campus, and he has participated in computer science events for years.
Over the summer, Eric worked as an intern at PlayStation, specializing in audio programming.
Why did you pick PlayStation for your internship?
I picked PlayStation for my internship because it offers the opportunity to work in the field with video games. I view video games as an art form. In each category (graphics, sound, gameplay, etc.) developers require great attention to the details they’re creating. Game design should make players “feel” the game’s world around them.
I like “hearing” my work. It’s motivating to work with programmers and sound designers, then to load the game and hear our work in a commercial video game which millions of people play. I want our players to feel immersed in baseball. Our audio team works hard to ensure the game sounds like the real sport!
What kind of role did you have at PlayStation?
Expectations for me as an intern include taking ownership of projects. Since all intern work goes directly into the PlayStation game “MLB: The Show," I was responsible for my tools and engine upgrades. Although I worked independently on my own tasks, I could always get help from my team members. This could be feedback on design decisions or hands-on help with debugging issues.
We follow an agile process, where we assign work to be done during a sprint. When the sprint ends, we review our progress and refine our goals. We also have stand-up meetings where the producer ensures that everyone is on the same page.
“Play has no limits.” This PS5 slogan also applies to our daily work as interns. Every day there is something to learn, a new challenge to face, and new innovations to create.
What does an average day at PlayStation look like?
For my internship position, I need to know C++, low-level system design, object-oriented programming, and efficient version control. My workday generally begins with drawing the latest changes from our code repository. Then I compile textures and shaders and load the latest build of the game. My work jumps between tooling, engine work, and gameplay programming. I often meet with people who work in audio, commentary, and localization to discuss the new features we’re implementing in the game.
Video games are computationally intensive. It’s difficult to describe the level of hardware optimization required to render AAA games across platforms like PlayStation, Switch, XBOX, and Mobile. All programmers in our studio have a strong grasp of computer architecture and operating systems. Every day, when I contribute C++ code to the team repository, I routinely run debugging and profiling tools to measure my code’s performance. Every millisecond of time saved matters!
Which challenges do audio for MLB: The Show present?
"MLB: The Show" uses well over 100,000 unique audio assets in game, and each asset has its own MLB status (approved, rejected, etc.) Additionally, we support three consoles: PlayStation, Xbox, and Switch; and Mobile (iOS and Android). Each device has different hardware constraints, so our team maintains multiple production pipelines for audio.
To make the game immersive, we have a dynamic commentary selection system. This creates new challenges not typically present in non-sports games. For example, the way an English sentence is stitched together may not coherently correlate to Spanish, since both languages have different grammar structures.
What sorts of projects have you developed at PlayStation?
I can disclose some of my work, but for information about my full job you should wait for official announcements.
Since “MLB: The Show” is an official MLB-licensed product, the MLB must approve all in-game audio. I worked on an asset management pipeline that handled these approvals. I also have my hands on other engine work and tools. One of these was a unique tool that allows programmers and sound designers to debug various game issues quickly.
Every game engine in the industry writes “log” files. These files contain information about in-game events: how to register them and select them. Many engines then have tools to read log files, so programmers can identify in-game bugs. We have a legacy log-reading tool, and my “novel tool” reinvented the legacy version so sound designers can quickly view log files for smoother debugging. I’m also implementing some quality user interface features absent in the original tool.
What advice would you give someone looking for a CS internship?
The skill that has been most helpful for my internship is completing feature requests. When you’re trying to learn a new codebase, reading code line-by-line won’t teach you anything. The best way to learn new code is to “do.” By finding new features to work on, you will naturally teach yourself the codebase.
Know what it is that you’re interested in. If you don’t specialize in something, your employer will make that decision for you. And, when you’re applying to competitive programs, don’t be afraid to take risks! Writing a strong resume doesn’t mean it must be long. It may seem counterintuitive to shrink your life down onto one page of a PDF but, trust me, it helps narrow down your strengths, projects, and previous experiences into examples for your employer. It’s also worthwhile to place yourself in unfamiliar environments. You can join a research group or student org.
In the era of AI, technology is only ever changing, so it’s never a bad idea to be versatile.