There are now more than ninety members of the Grinding Gear Games team and so many working parts that make Path of Exile what it is today. We have interviewed one of our gameplay programmers, Rian, to get some insight into who he is as a developer and the content he produces.



Hi Rian! Thanks for taking part in the interview! Could you please introduce yourself and let us know a little bit about your history with gaming and programming?

Hello, my name is Rian Drake and I am one of four core gameplay programmers at GGG. My history with programming began during my first year of university in 2011, where I was studying engineering at the University of Auckland. I was so blown away by how much I was enjoying my work that I left immediately to study game development at Media Design School. Shortly after graduating in mid-2015 I was lucky enough to score an interview with Chris and Jonathan, and I've been working here ever since!



The first game I remember playing was StarCraft when it first came out, which I guess would have made me 5 years old at the time. My dad was a big fan of RTS games, so for most of my life I grew up playing games with him like Age of Empires, Warcraft, and Civilization. Since then, I've become a big fan of RPG games; my favourite games to date have been the Elder Scrolls, Dragon Age and Fallout series.



Diablo 3 was my first introduction to the dungeon-crawler, hack-and-slash subgenre of action-RPG's. I played Path of Exile when it first came out in open beta, but I admit that the passive tree scared me away. Although since working here for nearly a year and a half I've mustered the courage to play Breach league - one week, two supporter packs and a bunch of premium stash tabs later I must say I'm hooked!



Could you please tell us about your current role at Grinding Gear Games and what an average work day is like for you?

We're lucky in that our job is rather flexible, so I don't know if I'd go so far as to say that I have an "average” day that I stick to. Usually, my morning starts in the kitchen with a coffee (or two) while my PC is compiling the most recent source changes; there I'll have a chat with some co-workers about some of the games we're playing, the cool stuff we're working on, or why their favourite game of all time sucks. Then, I'll go check my issue list for any new content I need to be working on for the next league or expansion. I'm surrounded by people who are easy to get on with and love talking about games, movies, food, politics, and why Bromate is the friendliest element in the periodic table - so work never gets boring!



Gameplay programming is what I do, but that's rather vague when we're talking about Path of Exile. No league or expansion is ever the same, and the work I do is always changing. To give you an idea of some of the stuff I've worked on, there's: skills, unique items, ascendancies, bosses, maps, prophecies, recipes, and more. Gameplay dips into a lot of other disciplines here at the office too, which means I get to talk to a variety of people in design, QA, visual effects, sound, animation, terrain, and UI every day.



Would you be able to give us an overview of the process of your involvement in the development of a new skill?

It usually starts off with Rory or Neon pitching a new idea to one of us to see if it's something we'd be able (or willing) to do. Sometimes we catch design issues early on, and sometimes I'll make Blade Vortex while our Senior Gameplay Programmer is on Christmas holiday - a decision that has haunted me ever since.



I make the first prototype of the skill using placeholder assets and animations. We have an extensive library of hundreds of effects to choose from, so I rarely have any issues finding something to work with. From there the prototype is passed back to the designer who will make sure we get the right effects and animations for the skill that will be passed on to me to hook up later. It will then get passed around designers, quality assurance and myself several times as it gets iterated upon for balance, bugs, and fun testing.



One of the perks of making skills is that I'm free to implement it however I like, and there are plenty of opportunities for me to share my own ideas or feedback. It really goes a long way to making you feel like you have some sense of ownership over the content you're creating. I'm now at a point where I often come across a lot of content that I've made in the game as I'm playing, and it's incredibly rewarding. A friend will say to me "Look at how awesome this skill is”, and I'll reply "I know, I made it”.



Can you share any behind the scenes aspects to specific boss fights that may be surprising based on how they seem at face value?

When Rigwald transforms into a wolf, he doesn't really turn into a wolf. We spawn a wolf at the same location and hide Rigwald's model for the duration. In fact, to make it easier for me to make Rigwald reappear I attach him to the wolf's body while it chases you around. This means that technically Rigwald is riding the wolf the whole time, you just can't see him. Usually.



One thing that surprises people is that quite often players will get to see a boss I've made before I do. This is because we don't need context on how a skill will be used or what it will look like for us to implement the code for it. Typically, a designer will give me a basic written description of what they want and I'll implement it using my imagination.



What is the most challenging aspect of programming Path of Exile gameplay?

I think player skills can be deceptively tricky. The problem with player skills is that you might think you know how the skill will be used, but the truth is that when you first make it you can't realistically anticipate or account for every way a player is ever going to use it. There's an endless list of combinations that could affect the way a skill is used: input, network, build, location, party/solo etc.



Not only that, it can be difficult to future proof anything you make when the designers are adding 55 new unique items to a league!



Are there any "golden rules" that you keep in mind when you're programming?

I thought about this for a while, and I decided on "less is more”.



The simpler I implement something, the easier it will be to recycle and use it again later. It also makes sense to keep your code simple so that someone else can follow it when you're gone. If something that I'm working on is starting to become too complicated, the first thing I do is ask myself, "Why does it need to be this complicated?”. Following that, if I decide there's nothing else I can do to simplify it I start to wonder if perhaps we should be doing something else instead.



The rule also applies to how much effort I need to put in to do my job, and by that, I mean the number of keystrokes and mouse movements that are required for me to write code. I can be made fun of from time to time over how obsessed I can be with macros, keyboard shortcuts and batch files. But for programmers, getting our computers up to date every day can take anywhere between 20-50 minutes – so setting up batch files that consolidates that into a one-click process saves us a lot of time each day!



I also don't use a mouse, and I don't use my arrow keys while I'm working. They are much too far away when I am typing and I should not have to reach that far. That is the definition of lazy, but I'm also not getting RSI from constant wrist movement!



What is your favourite thing you've worked on for the game so far?

Making player skills is always the best. Sometimes I'll trade with someone that named their character after a skill I made, or they'll do something like show off the number of Siege Ballista totems they can place in their hideout – it puts a big smile on my face every time. It's one thing to watch someone play with my skills in a video or on stream, but it's something else entirely to interact with a player enjoying your content in-game.



But in terms of the most fun I've ever had working on something, I'd have to say the Breach skills were easily the most satisfying. The Breach Lords and lieutenants were all thrown at me to make at once, and I was nearly overwhelmed by all the cool skills I was working on! The lieutenant skills were exciting on their own, but that was before I found out I was going to make super-charged versions of those skills for the Breach Lords too!



The flame geyser breach skill was probably the best overall, because I had a blast watching it split and chain all over the place. But the icing on the cake is playing through Breach league and watching players react to it on global chat, I always laugh when I read about someone going nuts after witnessing it for the first time.



Do you have any advice for aspiring programmers?

I've only been programming for four years, so I don't think I'm really in any position to be offering any advice to anyone! But if that can be of some encouragement to somebody out there who might be worried about how difficult it is to get into, then that's cool too. Programming really isn't that complicated once you realise that "algorithm” is just a fancy word for "recipe”, and that all you're really doing is writing a recipe that a computer can understand.



If you're already learning or looking for a job, my best I can say is determine what you enjoy most about programming and just keep throwing yourself at it. I really like taking shortcuts (positive shortcuts, of course), so I would spend a lot of time making my own tools that did things for me that I couldn't be bothered doing myself. These things slowly add up over time, and before you know it you'll have a sizeable resume of skills and a portfolio of demos to talk about when you next walk into an interview.



And if you want to be in games, make games. You can use Unity, Unreal Engine, GameMaker, Construct, RPG Maker – the list goes on. Try them all, find what works best for you and don't let anyone talk you out of using something before you try it for yourself. There's no one-size-fits-all solution, so be open to trying something different from game-to-game depending on what you're trying to do.



(And start small).



What can the community look forward to in terms of things you're working on at the moment?

I have something like five boss fights that I'm working on right now for the next expansion (hype). They're mostly still in the "imaginary” phase right now, but I've had the chance to see some of their arenas and the one I'm thinking about right now is probably the coolest one I've ever seen! It also sounds like Rory is keen to turn a bunch of the boss skills into player skills too, so there's that to look forward to. All I can say beyond that is that it's all awesome, and I'm looking forward to playing it.