Dr. Mark Goadrich is the Broyles Eminent Scholars Chair of Computational Mathematics and associate professor of computer science at Centenary College of Louisiana. We were excited to have him join our interactive team this summer. Dr. Goadrich’s research focuses on combinatorial game theory, artificial intelligence, and computer science education. He is pictured above with his former students and current Moonbot developers, Nolan Baker, Kathryn Hardey and Jackson Blankstein.
Some of our developers were your students when they were in college. Did they surprise you in any way?
It surprised me how much they remembered from their math and computer science courses and how applicable it was to their everyday work. I try to make sure that students will remember a few big important concepts, and hope that some other small details will stick with them. It was great to see how much they had grown, and how easily they had picked up what they needed on the job.
While you were here, you helped us explore crowd simulation in games. What did you learn?
Much of my previous experience with crowd simulations had been in somewhat simplified and constrained environments. For example, everyone in the crowd would live on a checkerboard, and you could move from square to square. At Moonbot, we were programming with the Unity game engine, a full physics-based simulator, so there was now much more complexity to consider regarding velocities, kinetics, and collisions. To create smooth flowing crowds, we needed an extra layer of reflection and understanding of the behaviors, teasing out the subprocesses. For example, if we wanted a flying bird to land, we couldn’t just have it head straight toward the ground; we needed to add in some random sideways flying and have it slow down when approaching the ground, otherwise it would look like a dead bird falling from the sky. Most behaviors which would have worked great in simple environments looked incorrect in Unity because of the robust animation. We needed to find a better set of states that captured richer behavior.
Is there anything from your time on the moon that you’re taking back to implement in the classroom?
I hope to soon teach a course on game design and social issues, and now I am much more encouraged to incorporate the full video game experience as part of the course. Being at Moonbot really helped demystify the whole process of making a game from start to finish, and I can now see all the interlinking parts of the team, designers, artists, animators and programmers. I want to help students see that there are many ways to participate in this field. It is rarely the case that a game is made by just one person who knows everything.
Now that you’ve seen game development both from a student perspective and a professional perspective, do you have any advice for students or professionals looking to continue learning?
A good foundation in mathematics and physics is very important. You may not be programming the physics engine yourself, but you need to know how they work to understand the consequences of your programs and the functions available to you. The best way to start is to just start making games, many great tools are freely available online. For a small game, just go at it and hack away until you get something to work, you will learn a lot even if you would be ashamed to show someone else your code. But for large games, it will require a lot of planning, design, tool creation and exploration to get it just right, and having a supportive team to work with you is essential.