Playable Profile: Jordan
Welcome to our February Playable Profile! I’m chatting with another of our engineers who specializes in optimization and simulation. If you’re interested in knowing about how games work from a programming perspective, you’re going to want to read this one.
Read on to meet Jordan!
VioletLight: Let's start off by introducing yourself!
Jordan: Sure! My name is Jordan and I am a Simulation Engineer at Playable Worlds.
V: What exactly is a simulation engineer, what do you do on a daily basis?
J: As a simulation engineer, my main goal is to find solutions that empower our developers and players to work with a massive, procedural world without getting bogged down in the details of doing so. That usually means making our world more efficient, but can also mean changing the look, feel, or even behavior of that world to better align with our intent.
V: What got you interested in engineering? Did you go to school for it or are you self-taught?
J: I’m very proud to say I’m entirely self-taught.
I initially started with game design, tinkering with a game maker and rpg maker a lot when I was younger. I did some technology competitions in school with it and I had a lot of fun with it, but I was afraid I couldn't make a decent living in games and ultimately pursued other interests. I got out of the habit of making games and decided to give websites a shot, even learning React at one point, but it never really “clicked.”
Then one day after a very frustrating day at my retail job, I sat down and opened Unity and just started trying to follow tutorials. Persistence eventually led me to a “How to make a game like Minecraft” tutorial and through continued effort and lots of trial and error, I got the hang of programming in Unity and never left.
V: Tell me a bit about how your role differs from other engineers.
J: Great question!
I would say the biggest distinction between the work I do and that of other engineers is one of scale. Where other engineers may be focused on the complex behavior surrounding player interactions in game, my focus will be on how we can implement that solution to work in a massive, procedurally generated world.
For example, where a gameplay engineer may ask “How can this bunny find a flower?”, a simulation engineer may ask “How can a thousand bunnies find a thousand different flowers at the same time?”
With procedural worlds, these problems often peak at us through the lens of “How does this work at a massive scale?” and much of my focus is around minimizing those difficulties.
V: That’s so cool!
What is your favorite part of working in game development?
J: My favorite part of game development is specifically related to what I do. Procedural generation is very new and niche at the moment. There's not a lot of people doing it, especially at an MMO level, which means many of the problems we encounter don’t have known or “best” solutions that you can easily research and implement. That can be frustrating when I’m stuck on a really tough problem, but it also encourages me to be creative and try new things, which I love!
A good example of this relates to our bunny above. Helping the bunny reach the flower is a well known problem in games and has lots of great solutions, even if the bunny doesn’t know where the flower is. But what if there is no flower? What if the flower is a thousand miles away?
Answering these questions and implementing them in ways that don’t slow down the server (and cause “lag”) is extremely fun!
V: You mentioned that procedural generation is not something that's done a whole lot in games, especially in MMOs. Just to pick your brain, do you think that this is where the future of games is headed?
J: That is a complicated question.
Procedural generation has seen use in some of the best selling games of all time like Minecraft, Terraria or the more recent Valheim. It allows players to revisit their favorite memories in games and have the experience feel fresh each time. In this way, it is the basis of infinite replayability.
Critics of procedural generation, however, point to the “sameness” or repetitive patterns of the terrain which become more obvious the longer you play. This patch of terrain looks very similar to other patches they encounter and “Why would I explore this cave when I passed ten others on the way to here?”
Frankly, I agree with them. I’m a player who likes to be rewarded for my time and efforts and don’t see much value in exploring this cave over another except for the valuable resources that may be present in either. But is this the fault of procedural generation or something larger? If there are too many uninteresting caves in the world to explore, do you make fewer caves or do you find ways to make those caves more interesting?
This is the constant struggle between procedural generation and interesting gameplay, and I don’t foresee it going away any time soon.
V: I’m definitely curious and excited to see how gaming will look even a few years from now.
Let's get into some fun questions! What are your hobbies or interests outside of work?
J: I'm a big gamer, of course. I used to play a lot of MMOs like Runescape or Escape From Tarkov. Lately, I’ve been a lot busier and tend to play a lot of short session games now like Rocket League or Pokemon Unite.
My wife and I live in Colorado and also love getting outdoors. That may mean going for a difficult hike in the mountains or just a stroll at the local park with our two furbabies, Sherlock and Watson.
V: I know that you're fairly new to the industry, so you’ll have a unique perspective on this. What kind of advice would you give to someone who also is trying to get into games?
J: Software engineering is in very high demand and one of the few well paying careers you can get into without a degree, which is very exciting for anyone interested in programming, games or otherwise. You only need to jump in and start coding stuff. Then, when you are confident in your skills, you can apply to companies and show them you know what you’re talking about.
For games, specifically, it’s very easy to just start making games. You can start using Godot or Unity or Unreal and download the software for free, boot up a tutorial, and go! When you get stuck, instead of stopping or immediately looking for help, experiment a bit. If you’re still stuck, Google it. You would be surprised how much of my software engineering is about “What do I type into google to get relevant information?” Once you figure that out, you have both the tools necessary to make games and those needed to answer any questions you may have.
Now, you simply practice until you get better. Build on what you learned and then build on that more. Eventually, you’ll be able to create projects that show employers you know your stuff instead of relying on them to trust what you tell them.
V: Great advice! Thanks so much for chatting with me, Jordan, I’ve learned a lot today!
I hope that you enjoyed this interview with Jordan and learn something new about game programming! Have thoughts or questions? Drop us a line on social media!