In THE FINALS, the movement of the contestants is the heart and soul of the multiplayer action that defines our fully-destructible arenas. Arvid, Technical Animator, and Mikael, Animation Director, sit down to chat about the joys and challenges of defining and refining the movement of THE FINALS.
Originally aired on June 16th, 2023. Meet The Makers: Movement
Transcript
[Intro music plays]
Dusty (00:10)
Welcome to Meet the Makers, our interview style podcast on all things THE FINALS. I'm your host, Dusty Gustafsson. During our second closed beta, we assembled two members of the dev team every day to help dig into specific areas of the game and answer questions from our Discord community. Today's topic is movement. Movement is a huge topic here at Embark. THE FINALS is a fast paced, dynamic shooter with enormous potential for creative traversal. What's more, it's a game where movement and destruction are server side. So it is the heart and soul of the multiplayer action that defines our arenas.
Dusty (00:48)
Today I have with me Arvid and Mikael. Welcome, guys.
Arvid (00:52)
Hello.
Mikael (00:53)
Thank you.
Dusty (00:54)
Arvid is a technical animator for THE FINALS and Mikael is our animation director. Both Arvid and Mikael are Embark old timers, practically part of the furniture around here, both having joined the studio just as it was founded back in 2019. So, Arvid, kick us off and tell us what you do as the technical animator for THE FINALS. And also, what's the difference between an animator and a technical animator?
Arvid (01:23)
Yeah. So hi, everybody. I'm Arvid. I work as a technical animator and we have a couple of technical animators at Embark, actually. And on THE FINALS project specifically, almost every discipline has this divide between content and code, where you have for art, you have rendering engineers and then you have the tech artist that bridges the gap between them and a technical animator sort of bridges the gap between code and animation. So animation engineering and animation content. As a technical animator, you're sort of responsible for interpreting the two sides. Sometimes the conflict oftentimes we're very friendly with each other and yeah, we do everything from rigging and deformation of characters to runtime animation and procedural animation. Math, heavy transform type of stuff.
Mikael (02:18)
Yeah, brain stuff.
Arvid (02:20)
Brain stuff. Thanks. I didn't say it.
Dusty (02:25)
And Mikael, what's the role of an animation director?
Mikael (02:29)
Yeah, not the brain stuff.
Arvid (02:30)
Right, you said that.
Mikael (02:33)
Hello, everyone. My name is Mikael Hoistram, animation director here on THE FINALS.
Arvid (02:39)
The biggest brain.
Mikael (02:44)
I mean, the animation director at Embark is I get the pleasure to lead the animation team here. We're a small outfit, but we're an awesome outfit, I might say. We have a few animiators and a few technical animators. And I get to be the guy that tastes the soup, I guess. And I can discuss with everyone if we're getting to where we want to be or if we have some ways to go and just making sure that everything looks and feels as good as it can in the game.
Dusty (03:25)
Excellent. And thank you. Okay, let's look at some of the questions that we got from our community of players. We have several folks actually asking us questions about movement momentum and how we're thinking about balancing that. We know there have been some pretty big updates to movement between CB One and CB Two. What are the biggest changes between then and now.
Mikael (03:48)
All right. Should I start?
Arvid (03:50)
Yeah, go.
Mikael (03:51)
Okay. So, yeah, movement was a big topic for us. After CB One, we got tons of feedback. So, first of all, I just want to reach out and thank all of you for reporting issues, feedback and your opinions on the game. I think you put out a survey as well, Arvind, to dig deep into what was not working.
Arvid (04:20)
We see everything on Discord.
Mikael (04:22)
Yes, we read everything. So huge. Thank you to everyone for that. So, going into CB One, I can be honest to say that we weren't maybe as ready with it as we wanted to be. So there were a few things that we knew was going to be standing out as not being perfect or polished, if you may. So one of those things that was also popping up a lot in the feedback was jumping and in air movement and traversing in general, like vaulting, stuff like that. So I would say the biggest changes that we have made for this test is to improve all of that. Arwid will go into some technical details, I think about this. But the jumping was not up to par. It was not reliable. It's definitely an area where you need to feel like you're in control, especially if you're running around on Seoul and you jump on ledges and stuff. You don't want the game to shove you off the ledge to your death.
Arvid (05:37)
Or peek down a house in Monaco.
Mikael (05:39)
And just slide off every time you saw that. That was very rough.
Arvid (05:45)
Straight in the heart.
Mikael (05:46)
Yeah, straight in the heart. So those are the major updates. And of course, we've done more updates. Important, though, is that we're not done. Obviously, there is tons of stuff still in the game. Every time we play the game and we enter up on some hitch or stutter or thing that breaks our flow, it just hurts our eyeballs and our brains. So we need to find it and fix it. So it's more to come, for sure. And keep the feedback coming. We're seeing it, we're reading it and we're fixing it.
Arvid (06:27)
Yeah.
Dusty (06:28)
Excellent. Yes. Thank you, Discord. Many may not know this, but movement and destruction in THE FINALS are very much related topics. Given that this game's movement and destruction happen on the server side rather than on the client side, can you elaborate on how this actually works and what your biggest challenges have been?
Arvid (06:49)
Yeah, this is quite a big topic. So the easiest thing to do as a game dev would just to have a big server somewhere where every player does some kind of cloud gaming thing, where they send their inputs to the server and they get a video stream back. But that's not really feasible because of latency issues and whatnot. So what we want to do, let's see, let's back up a little bit. Every time you add something to your game that now lives on client machines, not the big server machine. You add a little tiny seed of discrepancy, a chance for a misprediction or something going slightly differently on your client versus the server, et cetera. And then we need to correct that somehow. And we have a lot of moving parts in this game. So what we started with was we said, what if we just put all of the destruction on the server? We don't let the clients mispredict anything. We don't run physics on the clients at all. So we push all of the Dynamism bits over to the server, and we just send out the network data so that the clients get the correct transforms for the moving platforms, the debris piles, et cetera.
Arvid (08:07)
And then on top of that, of course, is it would be easiest to just send your input to the server and then wait for the round trip, and then you get the delayed response back, and then your character moves forward. But that's not really good enough. That was the jump feel from CB One that we've improved on for CB Two. So the way our model works is that as much as possible, where we can we sort of cheat a little bit, so we wait for that round trip from the server to get back to you, because then we can ensure that you stay in sync with the server as much as possible. We don't have to correct things or anything like that. And we have a couple of tricks up our sleeve that sort of hides this fact from you as much as possible. Yeah, that's sort of our movement model, I guess. So we can summarize it. Like, we run this thin wrapper, thin prediction wrapper on top of our gameplay, and then we try and minimize the amount of prediction that we have as much as possible so that we can stay true to what the server is saying.
Arvid (09:13)
Because the server down the line is the truth of what's happening in the game.
Dusty (09:17)
I mean, that's pretty groundbreaking stuff. Let's rewind the clock a bit. What was the journey like from concept to reality, especially on something that sounds like it was actually a pretty big bet for the entire game?
Mikael (09:31)
Yeah, I mean, starting on this do, the proposal of running movement on the server is scary to a game dev, and I guess that's why we work here. We do scary stuff and we try to just make the scary stuff not scary anymore, I guess. But it's been a journey. It's movement in an FPS, which is pivotal. You need to have that crisp. You need to feel in control of your character.
Arvid (10:07)
We could actually mention where it started on our creators, our other title that we're working on, where we did a full server side movement implementation where we masked quite successfully, I might add, the response delay from keyboard press to character moving by trusting animation. Because our creators has a 3P character in view on the screen, we can show that your character is getting their response quite quickly and we can work with camera movement, character movement, anticipation, animation, et cetera. But then when we tried the same trick on THE FINALS, you don't really have a character that you can look at. You are your camera and an FPS shooter.
Mikael (10:59)
Yeah, it's more difficult. And I think starting out in the beginning, of course, this felt really strange to everyone since we're used to playing FPS games, and we had a lot of healthy feedback from the team on.
Arvid (11:16)
These things. We have a lot of versions on what this.
Mikael (11:19)
Feels like. And that's been great. That's how basically we've been working with you. We try stuff. We see what the reaction is. We have a few, or quite a lot of good players, I'm not one of them, on the team. And they have instructed us where we're going wrong and then pat us on the back when we're doing right. And of course, these tests that we run right now is also for you guys to tell us where we're doing it right and where we're doing it wrong. So it's a huge help. I mean, that's what these are for for us, is to see, does it fly? Does it not fly? Where we need to correct? Where we need not to correct? Some things that might seem very difficult to fix might actually be quite easy. And vice versa. So again, we appreciate the feedback and keep hammering on it.
Dusty (12:23)
Great. And I think that that leads us really well into our next question. Just from a Discord member named Kampson, how was the grapple ability for the Light Class designed and implemented in THE FINALS? It feels so much more realistic than other games. Thank you, Kampson.
Arvid (12:42)
We have a couple of pillars for the game that we're trying to live up to. And something that we've said for Movement is we want this concept of flow. And what I'm going to brand this now, I like the term kinetic affordance, where if it feels like... We're all physical beings, right? So if somebody drops a football, I can predict, and I know what that's going to look like and feel like and the timings of that bounce and everything. So when you do something in our game, when you pick up a flower pot and you throw it, or you used to grapple hook, which is a great example of where this really works, is that we want to feed into the... If I have super strong legs and arms and I can actually hold this rope at these velocities, this is more or less what it would feel like. That's what we strive for, this hyper-realism where we go hard into. We don't want to break what you think is going to happen. Yeah. And I think the is a good example of where we just live up to that.
Mikael (13:50)
Yeah, I think this goes for everything in the game and for all Game Studios out there. There is the collaboration between different disciplines. Sense. So animation movement is, of course, one part of it. And then we have design doing their stuff. And then the sound and the VFX as well, I think we had right before CB2, we got some sounds at it and a little spark when you attach to the surface. And it's just the, as we say in Sweden. I don't know what that means in English, but it's the cherry on the top, I guess.
Arvid (14:29)
The cream on the potato mash? That can't be right.
Mikael (14:32)
I don't know.
Dusty (14:33)
That's disgusting. That's a new one. It's Swedish phrases.
Mikael (14:39)
Why do we say that? Yeah, why do we say that? Anyway, it's the collaboration and the team here is obviously amazing to work with, and they collaborate well. I guess that's the magic sauce.
Arvid (14:55)
It feeds into what we were saying before, where we have this movement model where we need everybody to help with. If we don't really want to predict fully, we need to work with all disciplines involved: audio, effects, animation, art, etc, where we can sell. We are responsive. We got your inputs as fast as possible. Yeah. Shout out to audio, Andreas, in the room. Hey, you all. And Herman, who worked a lot on the grappling.
Dusty (15:30)
All right, well, you guys heard it here first, kinetic affordance. Let's make it a thing.
Arvid (15:36)
I'm going to get so many videos of people going like, Oh, do you think this looks like reality?
Dusty (15:42)
Good. And we'll learn so much from those videos.
Arvid (15:45)
I've used them. Yeah, send feedback.
Dusty (15:47)
All right, here's a question from Speakerman 1 who wonders if there are any plans to add more movement options to the heavy build.
Mikael (15:57)
I think that's a great question. So I think for the game right now, I mean, there is a philosophy in here that we look at the different builds and we give them the abilities that they should Excel at. I think the heavy should not Excel at movement as much as they like, for example, but it should have its ways to perform the task. I think you talked about this earlier. Arvid, maybe you want to-
Arvid (16:29)
Yeah, I think we have... It's a build your own hero, right? But we still want there to be much like kinetic affordance, trademark, we have this idea of if you see... I have some preconceptions. If I see this big, bulky, super strong character running around, I have some ideas on what is that person able to do. Of course, it can run through walls. That's a great mobility gadget for the heavy. And if I look at the light, I associate that with acrobatics or speedy movement where we give them gadgets like grapple hooks or dashes. The medium is always medium, but an idea that we have for the medium is that it can do a bit more of a support role where I like this example of how do the three body types get up on the rooftop, where the light swings majestically with a grapple hook and lands on top. The medium deploys a zipline that the entire team can use and the heavy slogs up the stairs and then blows a C4 hole in the ceiling and jumps up.
Mikael (17:45)
Will there be more movement stuff?
Arvid (17:49)
I mean, maybe.
Mikael (17:51)
Maybe not a grapple.
Arvid (17:53)
Hook then? Maybe not a grapple hook for the heavy.
Dusty (17:56)
Maybe not? Yeah. All right, here's a question for both of you. How did you get into this industry? What were some of the early games that you worked on? And do you have any tips for listeners curious about what it takes to become an animator?
Mikael (18:12)
All right. Yeah, I have to think now. I'm getting so old. It's a long time ago. As a kid, I was the kid that I went to friends' houses that had games I wanted to play. I love games. It's been a passion all my life. We had consoles back then. It was like the NAS and Genesis, I think, in the other. It was a Mega Drive in Sweden. And I played everything. I tried to get my hands on all the games. Of course, I couldn't do that. They were very expensive. Still are some of them. Not our game, though. It's free. But I didn't know that you could park with games. I guess I was also a stupid kid. I studied natural science in school, and I What I learned from that was that I didn't want to do that. It was good, though. I mean, I learned a lot, but it was not for me. I was lucky enough to this pamphlet that was sent to my parents' house, and it said, Do you want to work in films and games? I was like, Yes, please, why not? I've always been doing art, I've been drawing.
Mikael (19:45)
I've not done animation. I've done tables in animation as a kid. It's super interesting, but it wasn't really something on my radar at that point. So I went to this education. It was two years. I was a lot of practical work in that. And then I was lucky enough to get a job in England at a studio called Lionhead Studios, which unfortunately is not with us anymore. A fantastic studio. I worked at the first Fable for a very short time, and then I got moved to another project, which maybe not a lot of you know, but the movies. So I worked on that for about three years, and that was animation heavy. It was 3D Studio Max, it was 15 frames per second, and it was handkey, all of it. So I learned a ton from doing that. And also all the talented people that worked there, I learned a lot from. But as you do, you get homesick and you move back and I moved back to Sweden. So I started DICE and I was thinking maybe I should do this for a little bit. And I stayed for about 15 years doing the battlefields and the battlefronts and those games. So I've been living, breathing, FPS games for a very long time and still love it. It's super fun. And of course, after that, I joined Embark 2019. Was that what you said, Dusty?
Mikael (21:26)
Like a furniture?
Dusty (21:27)
It is what I said.
Mikael (21:28)
What furniture am I? Chair?
Arvid (21:32)
A majestic something.
Mikael (21:32)
Thank you.
Arvid (21:36)
Mahagony.
Mikael (21:36)
Mahagony! All right, I'll take it. The other question was, do you have any tips for becoming an animator. What I see, people coming from school nowadays, I wouldn't stand a chance with my scrappy portfolio back in the days. People doing animation right now are doing amazing things. We see it in the applications that we get. I don't know if I can give any tips like that.
Arvid (22:11)
Go to school.
Mikael (22:12)
Go to school. That's a good tip. Thank you. I think the other tip that I can give you is, and it's maybe a bit Embark specific, but you want to work in a mark, right?
Arvid (22:22)
Everybody does.
Mikael (22:23)
Yes, of course. So I think you need to extend beyond animation. So something that we do here is that we like to just push people a little bit into different disciplines. So if you're an animator and you're an expert at animating, we try to encourage you to maybe go into design or coding or whatever, audio, things like that, because it makes you understand the process of making a game as a whole. We also encourage you to be responsible for your feature.
Arvid (23:07)
Take ownership.
Mikael (23:08)
Yeah, take ownership. Be implemented all the way. Don't sit with lists of animations and just go through them, implement it all the way into the engine, make it feel right in the controller or the keyboard or the mouse, and make sure that you keep it functioning. I think that makes it more fun because then you're the one tweaking it. You're the one feeling it. You're the one doing the thing together with everyone else. And also you can speak the same language.
Arvid (23:44)
It goes both ways. So we want the other disciplines to then learn a little bit of animation so that if you have this cool idea, then you can do almost the entire implementation with a little bit of help from the sides and then vice versa. So somebody might come to our animation crew and go like, I have this idea and I've prototyped this thing and here it is. And then we go, nice.
Mikael (24:08)
Yeah, it's great. When I joined in Boruch, I'm already just going to laugh now, but I tried to start learn how to program. I don't know how to program, obviously, but I know how to cut and paste. Copy paste, coding. It's not bad.
Arvid (24:23)
It's not bad. It's probably the bugs that you see in the game.
Arvid (24:28)
No, that's on me.
Mikael (24:29)
All right. That was a long answer.
Arvid (24:32)
Is it my turn?
Dusty (24:35)
It's your turn.
Arvid (24:36)
I tried to go to all my friends who had video games as a kid. We didn't have consoles at home. We were always like this PC family with C64, Amiga. But those were more like work machines and not really game machines, at least. The way I remember it, I was very young. I grew up with one game at a time. We had one PC game, and then I just only played that in our basement constantly. And then we would get another game, and that would be my life. And then drawing a lot as a kid, it was always fun. I had a brother who was a really talented artist. We would look at Warhammer magazines and he would draw a thing really good. Then I would try and copy his copy of the magazine, etc. Then a bit later in high school, this website started called concept art. Org in 2006, I believe, where I found it by chance, really, where I realized that if you can draw or paint and you can do it digitally, hopefully, there's this career that I didn't even know about that was concept writing. So I started hanging out on I would live in Sweden, so midnight here was when all the Ventrillo folks in the States woke up where I would draw digitally all night and then try and improve my craft there.
Arvid (26:02)
And then all of a sudden, they went like, Well, you want this? If you want to have a nice and steady career with a steady pay, you should go into 3D because they need so many people and I'm a comfy guy. So I thought, Why not 3D? And as it turns out in my hometown, and I didn't really know, there was a school for computer graphics that I applied to and got in. And while I was there, I went from 2D to said 3D and I went, Yes, hard surface modeling. This is going to be my call in life. Then a couple of months later, I went, Yeah, I'm done hard surface modeling now. What else is there? Then you go to sculpting and then sculpting is awesome. And then, Oh, well, I've done this now a lot. So what else is there? And then I kept going, What else is there? Until at the end of that three-year education, I found code and rigging and Python, which is a scripting language. And then I made this face rig demo and sent that to DICE and got an internship doing facial defamation and cut-scene work on a Mirasage catalyst at the time.
Arvid (27:16)
Then from there, I worked on Battlefront, Battlefield, and then come, when did you say? I've already forgotten. 2019. 2019. What furniture am I? I think.
Dusty (27:31)
You're a beautiful lamp.
Arvid (27:32)
Oh, nice, the lamp. Here, I've been part of setting up the early embryo that thankfully we have way better tech teams at that department than I am that has taken over, but things like how we work with animation data, how we bring MoCap, motion capture data onto our rigs, etc. Now I work more as a runtime type of role in the kinetic movement team. Yeah, math transforms, that stuff. The good brains, the lamp brains. If I had a tip for, much like Nicky said, multidisciplinary, if not for your career, for me at least, it's a lot more fun where you can flex your muscles a little bit more, where you can go, I really want to do this feature and I know this one area very well, and I guess I can copy paste from YouTube tutorials or whatever. I can copy paste my way around the other stuff. It won't be perfect, but it will be something. And yeah, having creative freedom is something that we really strive for at Embark. We look for those kinds of people. T-shaped, I think is the correct term for them.
Dusty (28:47)
T-shaped. Yeah. Killer tips. Thank you, guys. All right, it's that time again for another exciting, egg edition of our closing eggactivity to honor our glorious spokes egg, the Nama Tama, as well as to continue the great tradition here at a Bark of telling awful puns. I want to invite each of you to shell out an egg joke.
Mikael (29:15)
Oh, my. I don't know. I have so many.
Arvid (29:17)
Just off the top of your head?
Mikael (29:19)
Oh, off the top of my head. What did the egg say after it was ghosted?
Dusty (29:26)
What?
Mikael (29:28)
Why are you eggnoring me?
Dusty (29:31)
Beat that, Arvid.
Arvid (29:33)
I don't have the big brains. I don't keep these things in my head. I asked our AI overlords to write me an egg joke. Here it is. Why did the egg refuse to fight with the bacon?
Dusty (29:52)
Why?
Arvid (29:53)
It didn't want to get fried.
Dusty (29:58)
Thank you, it really fit the tradition of terrible, terrible jokes. I'm so sorry everyone.
Dusty (30:10)
All right that is all for today's episode of Meet the Makers, thank you so mush for listening. If you're hungry for more, please join our Discord community and make sure to play THE FINALS when it finally releases.
[Outro music plays]