The second interview in this series comes via animation programmer at Epic Games, Laurent Delayen (@). Laurent has for years now been pivotal in creating the animation systems used by every game made with the Unreal Engine, and has shipped Epic’s flagship Gears of War series among others, working most recently on 3rd-person MOBA Paragon.
We met back during the days before the Unreal Engine had given life to either Gears of War or Mass Effect and I recall you had an interesting path into games via the demo scene. Can you start by explaining your career so far and how you got to your current position, including why you chose to focus on animation programming over other disciplines?
I have been fascinated by video games ever since my father brought home our first computer in 1989: an Amiga 2000. I remember being blown away by the music of Shadow of the Beast, and being scared at night by hearing distant footsteps in Dungeon Master. These monsters would surprise you in your sleep! It was both magical and exhilarating. But, my fascination wasn’t as much playing games as it was trying to understand how they were made. Back then that was a difficult process with no internet and very little resources available.
My family later moved from France to the Netherlands and I had my first encounter with the demo scene. It was a revelation; a small group of people pushing the limit of what a computer could do both technically and creatively. What really drew me in is how each discipline was important, and everything came together working in harmony. Music was as important as the graphics and programming.
At that time I was touching everything; drawing pixels with a 32 color palette in Deluxe Paint, writing 4 channel songs in Protracker, programming in AMOS and trying to understand 68k Assembly. I started a dozen games that I never finished. But I was always creating something and experimenting. I eventually found myself leaning more towards being a graphic artist than a programmer or a musician. And my modest demo scene contributions were as a graphic artist.
When I started college, I was curious about the movie industry and interned at a couple of VFX shops in Paris over the summer (DUBOI in 1997 and MacGuff in 1999), but quickly realized this is NOT what I wanted to do. There was such demand and competition for these jobs, interns were working for free to just have a chance to learn, people were crunching hard and were expendable. Very few were employees, the norm was to work as a contractor. I am glad I was able to experience this as a student because it lead me to focus on programming and games. The beauty about programming games is that I could do what I wanted. I didn’t need an army of people to convince and big budgets, like in the movie industry. Of course back then was different, we didn’t have easily accessible digital recording devices and tools. But anyway, back then a computer is all I needed to create something and put it out there.
So during College, I created a mod for Unreal Tournament called Tactical Ops. It started as a fun project with my brother over a Christmas break. After two and a half years it was a shipped retail game with a team of around 30. It was a huge learning experience. Being the Project Lead, lead programmer and CEO, I had to learn and oversee every aspect of making a game. The creative side, the programming side, the business side, the production side, etc. This built a good relationship with Epic Games, and a good understanding of their tech. My last year of College, I had to do a 6 month internship, and I was able to do it in my company to ship Tactical Ops to retail. Atari was the publisher. That really impressed my teachers and I got really good grades, even though I wasn’t attending school very much towards the end.
After I graduated from College in 2003, I packed my bags and crossed the Atlantic to work on Visual Effects for Unreal Championship 2 at Epic’s sister company: Scion Studio. I was going to be a half graphic artist and half gameplay programmer. That lasted exactly a week. When Epic decided to kickstart the Unreal Tournament 2004 project, I was brought on to prototype the Mothership level for the E3 demo of the Assault Gametype. It was like the demo scene and mod making days all over again. I was able to bring along a few guys from the Tactical Ops team, and it was basically a bunch of young passionate kids working hard and having fun.
But you can see a trend there, although I am officially a programmer today, I’ve always had an interest in art, and I think that’s what eventually lead me to Animation Programming.
After UT2004 was done, we started working on Gears of War and I worked on weapons, then camera, character physics, networking… and eventually animation, which I’ve been focussing on more and more for about 12ish years now. It progressed naturally, because there was no else available to do it.
I love animation programming because of the tight collaboration with other disciplines. It requires good content, and it’s tightly coupled with gameplay, physics, networking, audio, FX, etc. It’s something visual, it’s a language that can express so many things. There’s a lot of math behind it, which I enjoy, but it’s also very artistic, and there are so many clever tricks. I’m fascinated by creative ideas and smoke and mirrors. In the end what counts is the result, it doesn’t matter how you got there. And it’s an area where you can definitely think outside the box and come up with something new.
You’ve been at Epic for some time now. Please describe a typical day of work and perhaps how that’s changed over the years?
A typical day varies over time. In my early career days it was mostly spent on prototyping gameplay features. A new weapon for example, or a new move in Gears of War. I would seek a lot of feedback from my peers, especially Cliff Bleszinski. He was really good at stopping by my desk every day to play test my latest work and give me feedback for the next iteration.
A typical day also depends on where we are in the lifetime of a game. Early days mean that it’s more focussed on R&D. While later days mean I will focus more on optimizations and bug fixing.
Last year on Paragon, I had an accelerated R&D schedule to build the tech behind our character animation. This was very different. I was sharing this task with animator Ray Arnett. We organized a mocap session together, and he provided me with the content I needed. I would work day and night in isolation, building the system, with roughly a week allocated for each big feature. Eight weeks later we had our system up and running, which still powers our heroes today.
Now I am on a rolling three weeks schedule on Paragon. That’s how often we release a new Hero. Typically the beginning is focussed on any new features that this hero needs, and the end is geared towards bug fixing and optimizations. I’ll also review the hero, making sure all systems are functional and we didn’t miss anything. During these three weeks, we’ll have a daily meeting in the morning to review the state of the hero. We review it all: design, animation, audio, materials, FX, etc. In a way, it’s just like the demo scene: all disciplines working together on a common goal. We build a list of items, and meet again for that same hero 2 days later. So we’ll work on 2 heroes at a time typically, alternating every other day, for about 3 weeks until the hero is ready to ship.
Sometimes Heroes are very different and very complex and require my full attention, sometimes they are in a good shape and don’t need much of my time. In that case, I can look ahead and focus on the next big feature, porting our improvements from Paragon to the engine, or working on the next version of the Paragon Character Animation system.
Following the Hero review meeting, we have a daily play test of Paragon. Then the rest of the day is mostly around what the current focus is. Feature work, bug fixing etc. Added to that are various efforts to help with other initiatives within the company. Another project, or GDC demo. Planning the animation features for the next 6 months company wide, etc.
One thing that is constant at Epic, and I believe in the game industry, is change. No two years in a row were identical, too many things to do and not enough time.
I imagine that when working on the Unreal Engine there’s always a pressure to be a standard bearer. Who or what inspires you to push your area of game animation?
This is true. But I don’t think of it in terms of being a standard bearer. We’re not trying to do that, we recognize that there are many ways to skin a cat, and we’re trying to provide tools that help us be more creative and more productive. One thing that we have very much in mind, though, is that everything we do is seen by a million eyes. So we try to implement our features in a way that it is easily understandable and expandable. It also makes it more difficult for us to refactor things, we don’t want to break other teams using these systems. Even if we think that it could be that much better if we could just scrap a feature and start over. So we’ll spend extra time on compatibility and maybe build a new tool along side the old.
The things that motivate and inspire me… The first one is inside our walls: our team. I am surrounded by incredible and inspiring people, starting with Epic Games founder Tim Sweeney. Much of the foundation he built in the Unreal Engine 20 years ago is still here today. It’s a testament to his vision and skills.
But first and foremost I am trying to help the people around me, and the project we’re working on. A lot of my day to day tasks are about doing just that. Can I help someone be more productive? Is this something that would improve our quality of life, or improve the quality of Paragon? Is this a bug blocking people or hurting play tests?
Number two is the other games and teams out there. I think Twitter is a fantastic tool for that. I can follow my peers, other teams, indie devs, professional devs, and there are so many cool things coming out that are inspiring. But also conferences and events. It was very interesting, for example, to meet Simon Clavet at Nucl.ai 2015 and attend his talk about how Motion Matching was used in For Honor. It was very inspiring. I try to keep up with games and the industry in general, and that is a constant source of inspiration.
Lastly, I try to think about my mod-making days. What would have made my life easier? Unreal is also a tool that indie developers are using. Not everyone has access to a mocap studio, a full team of animators or a Maya license. What can we do there to help these people be more productive and more creative? I’m trying to think, what if I were to start a game on my own, what kind of tools would I need to animate my characters? What would make my life easier?
Can you tell us about your favourite or most memorable bug you’ve encountered during development? I imagine there are lots of character explosions with the amount of procedural work playing on top of animations in your line of work.
It would have to be in Gears of War 2. We introduced Heavy Weapons, and it required a different rig setup. We had instances where the Heavy Weapon rig was applied to regular weapons, and it caused all the characters to raise their hands in the air. It was a bit like Michael Jackson’s Thriller dance move. It was hilarious.
Similarly, what’s the best human story you have of game development?
I have fond memories of the mocap shoot we did with Ray Arnett to prototype our Paragon character animation system last year. We tried a lot of interesting things, like recording the actress on a treadmill to study her motion at different speeds when researching our Speed Warping system.
We also decided to record slope animations, but without a proper ramp. We had this heavy plank of wood held by two ladders, that someone from facilities had put together the day before, so it was on an incline. I was holding one of the ladders on one side, and Ray was in the middle with open arms, in case the actress would not stop in time and fall over. And we were trying to make her sprint up and down, forward and backward, at full speed on this ramp. It was scary, and memorable. I am glad no one got injured. And the motion we got out of that was worth it.
If you ever find time between work and family, what are you playing right now – and what are your favourite games of all time?
I just finished the latest Dark Souls 3 DLC. I am a Souls fanatic. And by that I mean that I had to get all the achievements for all three games as well as Bloodborne. I love the exploration in these games, there’s nothing quite like playing these for the first time, not knowing anything, and inspecting every corner of a level. At first they feel overwhelming and dangerous, but eventually you master them and know them by heart. The level design is excellent.
Bloodborne also had fantastic creature design and animation – an overall inspiring game. I also like its combat design focusing on anticipation and recovery. As a gamer you have to read your enemies, and as a developer I appreciate what they have done. The moves really flow and carry a lot of weight. I’m also impressed by the amount of work they have done. The creatures are complex, varied and feature a lot of moves.
If I had to pick some of my favorite games of all time, I would have to start with Dungeon Master on the Amiga. The first game that really made me feel like I was on an adventure, exploring a world, with a genuine sense of wonder and fear (when Monsters would surprise you). Everything felt alive around you.
Unreal Tournament was also influential because it shipped with its source code, and that’s how I built my first (finished) game: Tactical Ops. It was eye opening to explore the source code and understand how it was all made.
The half-life series was full of clever stuff. I’ve seen someone on Twitter recently, (sorry I can’t remember his name), still posting code snippets from it, and it’s full of clever engineering. For example if an AI is going to shoot and miss you, it will try to aim at things that have an interesting result (like a physics bottle that explodes or bounces near you). I also regularly re-watch Mark Brown’s video on how Half-Life teaches players its game mechanics. It’s very clever design.
Animation-wise, the games that have influenced me would be:
- International Karate + (IK+) if you are AFK in the game, your pants will drop to the floor!
- Prince of Persia and Another World for their smooth and realistic motion.
- Moonstone: the kills were so varied and brutal.
- Shadow of the Colossus: the game is a work of art and the climbing physics are just mind-blowing.
- Uncharted was groundbreaking for conveying a lot of nuanced emotions during gameplay, also very cinematic with a great attention to detail. It’s also a game, with Prince of Persia and Assassin’s Creed, that really puts animation forward.
What was the most difficult creation you’ve ever had to bring to life, be it a character, system, a technical process or otherwise?
I think I would have to pick the Character Animation system I created for Paragon last year. It was a difficult creation because of the time constraint.
We were ramping up resources to optimize the game on PS4, and only had 8 weeks before we had to make a call between the old character animation system and the new (to be created).
The old system was basically Paragon animators animating Heroes by themselves, and don’t get me wrong, it was very impressive what they had built without programmers’ intervention (just using Unreal’s Blueprint scripting system). But it was unoptimized for PS4, and not ‘next-gen’ enough.
I was working on Fortnite at the time, so I was brought over to help the Paragon team. In 8 weeks I had to build a new Character Animation System from scratch, have it be ‘next-gen’ looking and ready to ship on PS4. We tried a bunch of new things, like Distance Matching to synchronize our transitions to the capsule motion, and Speed Warping to dynamically adjust the speed of our animations by adjusting stride length instead of play rate. Our list of locomotion transitions was also a shot in the dark (Start, Stop, Pivot and Spin), but proved to cover all of our needs. In the end it worked out well, but it was an intense 8 weeks, especially when you add a one year old who doesn’t sleep and a tired wife.
Do you have any quick tips you use every day that save you a lot of time that might benefit other animation programmers reading this?
I use this almost daily to debug animations, but also inspect quality. I record gameplay with nVidia’s ShadowPlay, with debugging enabled (‘showdebug animation’ a mode that basically draws the state of the animation graph on top of the game). I can then replay everything frame by frame and inspect inputs and outputs to track down issues. Also artifacts that you would sometimes miss at 60FPS, they become really visible that way. It’s so fast and convenient, ‘ALT-F9’ (ShadowPlay record/stop) is usually the first tool in my toolbox.
Playing the game in slow motion also helps making sure you haven’t missed any glitches or bad transitions.
What’s your biggest pet-peeve you see in game animation (or game development as a whole) that you’d wish to eradicate? Is it something you have already solved and don’t know why others don’t do the same?
We’ve worked hard on Paragon to reduce foot sliding, and add a lot of recovery frames to our actions. So that’s something that I’m more sensitive to recently. Going back to our earlier Heroes that have none of this stuff, it’s painful to watch :) It’s one of those things where you can’t go back once you’ve done that. The first time we got Distance Matching working for our characters, it was a whole other level of animation quality. Suddenly characters were grounded and movement looked realistic. The bar was raised.
I still see games with really bad blends, or no blends at all, and I wonder why that is. Isn’t that game animation 101? Also please avoid bouncing idles and three point landings.
Nowadays game development is a highly sought-after career with lots of people wanting to get into the industry, which means more competition. What is the best advice you have for animation programmers wishing to stand out from the crowd, and succeed once they get a job? What is the programming equivalent of having a demo reel to showcase your work?
My advice would be for any career, not just animation programming: Create. In games, and in any creative endeavor in general, you’re building things all the time. So the best practice is to do just that: Create.
Engines like Unreal and Unity are free today, and it’s easy to build small things inside of them. It’s not like you have to learn OpenGL and write a renderer just to display an IK solver experiment. The barrier of entry is much smaller today, I think. So the best advice is to download Unreal or Unity, watch and read tutorials, and create things.
Also get a Twitter account and a Youtube account, and share your work, become part of a community. Share your process, share your assets.
If you want to focus on animation programming, that’s great, because it’s very visual. You can show this in motion. Animation is something that is very communicative. You can show excitement, joy, sadness, etc. Make people feel something, show your attention to detail.
Epic has free market place content available with Character Animation clips you can use to test algorithms, or build a small game, or interactive movie. Whatever it is, be creative, try things, get a feel for that other devs or artists might need, and share that. If you haven’t already been contacted by a studio by doing that, you’ll have a great portfolio to start knocking on doors.
There are also lots of game jams and indie teams looking for help. Try to participate, try to help and learn. Learn to work with a team, and try to finish projects. Can’t emphasize enough the importance of completing projects and moving on to the next thing. You learn so much by doing that.
Video games are based on technology that advances rapidly even within console generations, and those that can’t keep up can be left behind. What do you see as the future for game animation, and what will be the animation programmer’s role in the future?
The quick answer to that is: better tools :) But the reality today is that a game engine is used for so many different applications: small indie teams, AAA studios, offline movie rendering, realtime VR, non-games, research, realtime mocap, etc. And animation programmers are trying to improve all these aspects.
We need better posing tools in-engine to tweak cinematics without having to go back and forth with Maya. We need high end blend shape support for facial animation and clothing. Full-body IK for VR avatars, an in-engine real-time rig for posing and run-time retargeting, etc. The truth is that we don’t have enough animation programmers at Epic today, and the same is going to be true tomorrow.
As we push the quality of the work we do, we need better tools to keep up with the amount of work and data that is required. And that’s where animation programmers come in. I think also that we’ll always need the fusion between an artistic eye and hand, (the animator), and a technical mind, (the programmer). And that collaboration happens at many levels.
So what will be the animation programmer’s role in the future? Probably the same as it is today: writing better tools, helping creators with their vision and making fun games.
Anything that we might have missed that you’d like to cover?
I’m very excited about technologies like Unreal being freely available with full source code. I wish I had access to that growing up. It’s a tremendous opportunity for learning and creating; and I think we’re going to witness very exciting things over the next few years!