Video game development seems like it's always on the precipice of the next big thing, and that includes the topic of Dr. Russell Campbell's new GDC Masterclass. He's talking with us about his work on dynamic liquids and gasses, and how sharing his open source project could mean bigger and brighter things in the future.
Russell recently chatting with GDC over the phone about his upcoming virtual GDC Masterclass—Unity C# and Shader Data-Structure Programming. He discussed why he made SimChop open to all developers, the great design advancements he's seen over the past few years, and how a memorable game of Frogger shaped his life.
Below is an edited, condensed version of our interview.
GDC Staff: Why don’t you start by telling me about your Masterclass?
Dr. Russell Campbell:
During the summer I gave a presentation at GDC, demonstrating a project
that I had been working on for two or three months. I think what a lot of people are looking at right now—in terms of visualization and the things you can do in a video game, what they would like to achieve—is simulations of dynamic liquids and gasses. There's a lot of cool stuff out there right now. The system I'm designing, I'm trying to tackle it in a completely different way. It's still in fairly early stages. What I presented is a prototype. In the Masterclass course what I'd like to do is, by the end of it, get students to the point where they can start using the code that I made available online for free—it's an open source project—and start exploring all the different techniques that include mathematics and computer science, to try to reach those amazing effects inside video games.
GDC Staff: This course does have some prerequisites. For those who haven’t reached them yet, what would you recommend they do to get on the level needed for training like this?
If knowing C# scripting in Unity is the issue, then start writing script programs a little bit each day. There are many tutorials online. For basic things the Unity documentation
is helpful, but can feel overwhelming. Keep practicing with programming each day and eventually you have some of it memorized. The thing to remember when we see all those amazing works of others is that this should not stop us from trying ourselves, because we cannot get there unless we try.
GDC Staff: What are some of the most impressive design advancements you've seen in the past few years?
Russell: Oh recently, there's a lot going on—especially, I think, with some of the things people are doing with a couple different game engines. For example, Unreal Engine 5 has quite a lot going on, based on demonstrations of big whirlwinds that are happening that you can watch. To a certain extent, they are interactive—but as impressive as they are to look at, I think they're still quite limited in that interactivity. I think what a lot of effort is going into is trying to figure out how to make that more interactive.
Some of the plug-ins I've seen that people can start using right away right now that I think are really impressive is FluidNinja on Unreal Engine. I really like the look of the special effects that they've got. And I think, okay, is that really my competition? I look at it as more like inspiration. I see what they've got, and it just makes me really excited to jump up and start making something myself.
GDC Staff: Is that what you're hoping to achieve with this Masterclass—helping and inspiring others to come up with those unique solutions. Maybe even find problems and solutions you haven't considered?
Russell: Yeah, that's right. Originally, when I started academics, I was studying mathematics. And that sounds like quite a bit of a tangent. But one of the things I realized when I was studying math is this switch between two different modes of thought. I know it's hard to describe what it's like. If you think about research mathematics, not a lot of people do that. Imagine discovering an ancient unknown gallery full of secret artworks, and it's mixed with wild stuff like inter-dimensional artworks. The gallery on the outside looks like just a simple box, but then the inside expands into an infinite number of ever-more elaborate rooms to explore.
I think it goes back to something I experienced when I was about 5 years old. One of the first video games that I played was Frogger. That definitely exposes my age, but I don't mind. I remember I sat down and played the game, and I was awful at it the first time. But when I finished playing it, I remember going to sleep that night. I was playing it back in my head, I was visualizing playing it. And then I had that spark of inspiration where I realized how I could play better. The very next day, I went to play it again. My siblings were in shock. They looked at what I was doing and they couldn't believe how good I was playing the game the second time. I really feel that way about working on this project, and working on shared programming. It feels like the same kind of thing, where we're taking technology, and we're taking concepts like mathematics and computer science, and we're pushing the edge of what's possible. It's one of the most difficult things to try and work on. And it's not just about what you can do with it in a game. It means that people are inspired by doing these kind of things. It might end up resulting in amazing other technologies.
I know a lot of people, like a lot of parents, they might be turned off by video games. I know right now, during the pandemic, I've seen in academics—a lot of parents are wanting their kids to go into the medical field and become doctors. But there's so much more variety out there. I think professions like becoming a medical doctor, I think there's going to be wild opportunities in the future, even for things we might not even imagine right now. You never know if someone is going to take a course at GDC where they might be sparked by some inspiration and take that skill and continue to be creative somewhere else.
GDC Staff: What drives you to help others in learning these valuable skills?
Russell: It goes back to that spark of inspiration, when getting away from a difficult puzzle. I enjoy being a guide to help people learn to manage their frustration in practicing difficult skills, which are valuable. That inspiration and frustration expose two modes of thought popularized by Barbara Oakley: focused mode (which is often frustrating), and diffuse mode (relaxed, and meditative). Navigating internal modes of thought allow us to discover abstract patterns. Shader programming provides one of the most immediate forms of feedback when bringing together focused and diffused modes of thinking to increase creativity in those that practice it. It is absolutely stunning to see what people can do with these skills and inspires me every day!