To celebrate the Breach Challenge league we introduced a set of supporter packs that included, cloaks, a new microtransaction type. Cloaks have been requested frequently for as long as Path of Exile has existed. Until recently we didn't have the tech to do them justice. That is, until Alex arrived on the scene. Alex is our physics programmer and was one of the driving forces for implementing our new cloth physics technology. We sat down with him to gain his insights into this process and his work.

Hi Alex! 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?


Hi Bex. My name is Alex and I graduated from Moscow Institute of Physics and Technology. Since my early school days I have really enjoyed writing programs related to all kinds of physics simulations. A game called Ballance was one of the earliest games that employed a very precise, accurate and fast rigid-body physics. I was basically obsessed with the idea of mimicking that.

Since those times I have really enjoyed making all kinds of programs based on physics simulations. Some examples: a guitar synthesizer that produces sound from simulating string deformations, AI for robots in a simulated physical environment, all kinds of optics simulations (path tracing, global illumination) and simulating broken heart fracture dynamics. You can see some of my work on my YouTube channel here.

I have always been driven by games. Some of my inspirations have been exploring the weird world of Planescape: Torment, the smooth gameplay of Devil May Cry, gravity gun physics in Half-Life 2, running Mephisto in Diablo 2. There are so many games that gave me inspiration, but one of the most important is, you guessed it, Path of Exile.

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


I was hired to do all kinds of experimental stuff. Implementing physics was the most natural thing for me to start with because I wanted to make the game world feel more responsive. I wanted to make it react to the player and give more visual feedback to actions. We aren’t quite there yet in terms of integrating physics in all game assets that might benefit from it but the physics engine is ready. At work I do pretty much the same thing that I do for fun, I experiment with implementing all kinds of tech.

What is the most challenging aspect of programming physics for Path of Exile?


Path of Exile is a very dynamic game and when implementing physics, performance is the top priority for me. Because of that, I can’t introduce any noticeable framerate drops due to physics. I was writing the Path of Exile physics engine from scratch and it had to behave somewhat naturally under completely unnatural circumstances like characters using Leap Slam with 100% increased attack speed or a Lightning Warp that basically shrinks the character to size of 0, teleports and then gradually inflates them back to normal size. A direct consequence of physics simulation for items like cloaks is them wrapping around character’s head, tangling between arms and legs and flapping all over the place when attacking 10 times a second. Introducing non-physical constraints to prevent such behaviour gets pretty tricky.

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


I’m allowed to do any kind of crazy stuff that makes the game feel better and does not impact performance. Something as simple as character movement is actually more complicated than one may think because we want the character to affect light cloth objects they run past due to induced air flow currents. To do that, I made a very fast approximation of an actual vortex pattern created by objects moving through medium, called Karman Vortex Street, that’s actually created by moving actors. It automatically creates relatively realistic and very cheap (performance-wise) approximation of air turbulence for all character movement including skills such as Whirling Blades.



Are you able to give us an overview of what it takes to get a physics-related project completed?


When implementing game physics, you always think of the worst-case scenario. For example, what happens if the character has twice their maximum expected movement speed in a location that has twice the physics, while using various types of computer and internet connections? Making physics behave under these extreme conditions is the hardest part. The second-hardest part is integrating physics into the development pipeline of a game that has not been designed to have it.

Are there any unexpected bugs that have come up while you were working on the new cloth physics system?


We had so many experiments with all kinds of physics items. For example the very first 'physical' item that appeared in Path of Exile testing was what we call, 'Cape-Ranger' - a cape made out of the Ranger model. We had more laughs than we should have when it was flopping around characters we attached it to. I was told off multiple times for disrupting the work process by doing that.

Before you worked at Grinding Gear Games, you were a fan of Path of Exile. What drew you to the game? What have been your favourite builds to play?


I have been playing Path of Exile since there were only two towns and Rhoas could reliably one-shot you. I loved coming up with gimmicky builds that weren’t terribly OP but were super-fun. For example, I was using Quill Rain with Frenzy as an attack skill to generate frenzy charges that made me gradually attack faster, gaining power charges with Romira’s Banquet, converting them to endurance charges with Voll’s Devotion. This setup gave me one charge of every type each attack until I scored a crit that released all the charges with cast on critical discharge. Overall, managing charges, uniques and skill gem interactions are my favourite Path of Exile mechanics.

Do you have any advice for aspiring programmers?


When I started writing my first programs I had no idea that someday I would do it professionally. I thought that being a “programmer” was out of my reach, I have never planned to become one, I just did what I enjoyed. Just succumb to what drives you and do what you really enjoy, it’ll be a matter of time you become professional at that.

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


In future you can expect more improvements from me that relate to physics, graphics and optimization. As a hint, we are currently remaking some existing areas to make them look better and improve newcomers’ impressions of the visual side of the game and I’m working on adding an extra technical oomph to that.
Posted by 
on
Grinding Gear Games
Can't wait to see the future implementations of physics in environmental aspects
noice
nicee
the marauder double wielding rangers is hilarious.
Tiggty Swiggity
Marauder rocking them girls. Great work Alex keep it up.
Last edited by APExJAN on Dec 28, 2016, 4:33:31 PM
New Cyclone mtx pls. Gimme the ranger mtx. please.
7777777777777777777777777777777777777777
Well done, Alex.
awesome !
Bad Seed
Nice.

Report Forum Post

Report Account:

Report Type

Additional Info