[Music] welcome everyone two things first please remember to selling some mobile phones and also remember to turn in the electronic feedback and an end of the session it's really helpful for next year all of us speaking my name is annular Helen start and the lead gameplay program at Splash Damage and I think we'll start so first a little bit about Splash Damage it was founded in 2001 by members of the quite three mod community we specialize in making multiplayer team and objective based first-person shooter games and the first one will be released was Wolfenstein enemy territory it was a free-to-play game unfortunately we forgot to monetize that
that was back in 2003 I believe we then released enemy territory quake Wars in 2007 and then May of last year we released brink our first multi-platform title we have a fairly small team as much damage as we have to be very focused on what we try to innovate on and then one of the really important parts at Splash Damage is to evolve the multiplayer shooter genre so that leads into the goals for brink as one of the things we wanted to improve on was the player moments when playing in multiplayer we wanted the more fluid play moments and this is kind of how the engine looks at the player as he moves around the level it's not really ideal you easily get snagged on corners and table Heights and
chairs and everything and the player sees himself more like this and this is also how we want tension to see the player so that was the goal any solution to this problem also needed to be consistent across multiple maps with the same geometry it's also needed to be accessible for even casual players it was a really important point and also we had different body types from game design which had different restrictions on what they could do in the environment and also any solution to this can require any extra level design work ideally and also needed to be used by the AI for pathfinding or on a map and be able to use the same kind of movement that's the player did so smart moment is what it's called let's go and it stands
for smooth movement across random terrain so we have an example test map here here we have a world hop into a step up it's called into a vault here we have a mantle into a slide under the railing internet'll and then we have a walk up into mantle and finally we have just a mental so what we'll cover in this talk first we look at the prototype and go look at the pre-computation step then we look at the run time detection run time execution and finally the lessons learned from implementing prototype so the goal of the prototype was to prove the viability of the smart movement in a multiplayer game and also the impact this had on level design and gameplay we started the prototype right
after we finished Craig Wars the prototype we had used run time collision detect traces to find ledges in map and the prototype was refined over six months very iterated on different heights from mantling evolved and I'll just get a good feeling for moving around in the level so if you look at an example of a player narrow ledge and Howell edge detection work for the prototype we have first tries to find the grounds to find a height above the plane above the grounds we then have a trace forward in the players forward direction to find a wall potentially we done due to traces a low edge on the highlights trace we potentially want to do different things if the player is has two different ledges if you look at the
simpler example of just one laurel ledge we trace the players clip up to the ledge heights at this point to make sure we have nothing obstructing and then we trace the clip over the ledge to make sure we can actually go into the other side of ledge and then finally we trace down to make sure the fall on all the side ledge isn't too high and if all that's fine then we do have water with the ledge otherwise we go back onto the ledge and trace down there to make sure the player can stand on the ledge itself if the fall is too high and all the side so some successes from the prototype it was very easy to implement it took a couple of days probably to get some some something very basic going just to get a feel for how it works it didn't require any level design placed into objects and it also worked on any map in level also on the same geometry
on different maps we were guaranteed to have the same results because it was all dynamically based on traces some issues with the prototype it required at least one trace every frame to actually see if the play sue and the player will snare and allege oh that was wrong button questions let's see ago and in a worst case case it required 8 races per player per frame so in a 60 multiplayer game like brink 128 traces potentially there's stuff you could do like time slicing and not doing it every frame but you're thinking of a different
way of doing it anyways so pre-computation so the Nama system in brink were used for the AR paths funding it's some app compile step for production Maps it's about 20 minutes to do to generate an homage and all it does is look at the map geometry and generates areas with flat areas in map and then quite reach abilities between those areas to tell the AI how to move move between those areas I mean thinking we could potentially use this for smart movements so looking at the reach abilities we looked at all the edges between all the areas in map and if the edges between two areas overlap vertically there was a potential for
creating a reach ability between those two areas and if we did find an interesting edge I restored the edge segment so we knew exactly which ledge we were interested in and we also stole stored at our flag which tells the AI how to move between those two areas for smart moments we added a couple of new reachability types the barrier vault which ability for fairly low ledges create the barrier mantle which ability between I think 0.8 11.4 times to Clara sites it was used for air path finding as well which was good and it's also used by the players and bots of moving in low this had an issue after actually implementing this there was obvious case
of the player standing on a high ledge and not being able to jump onto another highlights and being able to eat mantle over that ledge so we quickly created very dynamic which is only used by players our our program is magic and had lots of work to do so we didn't solve this for AI and and if you could actually have automatic I decided at one time and also the issue with this was that it created an explosion in number of which abilities and map so what we did was if it already was a rich ability nearby a potential new reach ability we called the way or just ignored a new reach ability and that seemed to solve a problem unfortunately I don't have the exact numbers for the performance issues with this expression and number of which abilities or the memory issues but they're both issues
let's look at the slide which is a bit different in the NamUs you have areas and some areas are marked low ceiling which means you can't move into those areas unless you crouch both players and box players can also slide into these areas potentially and that's all there was to slides when time detection so at this point the map has information about the ledges we re interested in for smart movement and we move now over to the player physics club where we actually try to find those ledges and put the player in the proper physics light so it consists of a number of steps first we check if the players on the ground and if not the heights about the ground we thank you read the players body type for the available movement modes we have
light medium and heavy body types and I have different restrictions on what you can do in the map the third step was to detect any high moves which is the vault McLean wall hop we then detect low moves which is a slide first step is to choose an active move you could potentially find a high and low move and there's a condition for which one you actually choose finally we update the player state machine and potentially put the player in a smart woman state looking first at the detection of the high moves so it consists of three parts in the player checks the navmesh curie and then finally the evaluation of high moves we do any quick checks before curing the nimesh the curing the damage is fairly expensive so first we check if the case
is is in any active state at moment things like walton mantling sliding unexciting or being knocked down second step is to amish giri so we create the search bounce which is six times two players on the box with and two-and-a-half times the corresponding box height and this size is a medium between too big a size for performance reasons and too small to actually not actually find any interesting ledges on the player so we curie the BSP tree with all the ledges and we get a list of areas around the player and look at each area and for each reach ability in each area and if the rich ability has a very evolved by mantle or very dynamic flag then we append that which bill to a list
evaluation of high moves so at this point we have a list of rich bill teas reiterate those to filter them down further and one thing is to play must be looking at ledge and the distance to the less allege can't be more than two and a half times the player spawn box with there's some specific checks for each of the movement types and for the vaults the ledge height needs to be between zero point four and three point eight times the player span and the players height for the mantle the ledge height needs to be between zero point eight and one point four times and also had auto wall hop and so the ledge height needed to be within the mantle Heights purse and Clarisse jump height at this point we have a fairly filtered
list of each abilities and if there's any at moments and we have a wall hop and mantle we exclude the ball hops and we also have a mutual exclusion between the mantle and waltz and we allow the mantle if if the place within 1/2 times the players bounding box with otherwise we'll have evolved and the reasons for these checks is basically from place play testing and thus on feedback the goal is all the time to make a more fluid moment in a map and these were the kinds of checks that allowed that to be to improve fluid movement in map finally we saw the potential list of moves but the alleged closest to the player step for detection of flow moves so it's fairly similar house I'm not going to go
into the first two here and we'll go straight to the evaluation of the low moves so instead of iterating on the rich abilities we iterate on the area's themselves and relative height to the area needs we need to be below three point four times the player sites the area also needs to be marked as a low ceiling area and forced to play into an auto crouch if the distance is very small to the area and we force to play into a slide instead if the distances within one and a half times the players on the box with similarly we have a mutual exclusion and we love the auto slide if the spring partners held otherwise we allow water crouch finally Step five if you have both a high and long move which one you
actually choose is based on the pitch of the player so after play is looking up you can expect him to want to move up on a Ledge advise the slide under moving on to run climb execution so the player has been placed in the vault physics state for example it consists of an intro and an exit state the interstate is very initially calculate the duration of the waltz it's based on the players incoming velocity and also the distance to the ledge itself I'm gonna create a spline between the players position the ledge points and somewhere inside the ledge the exit state all it does is a single frame state and all it does is calculate the moment and help at the momentum of the player it also calculates the direction at the sign from from
playtesting and from the Sun feedback here it will make sense to have the player have some decision or some influence on which direction to move afterwards if you have some momentum it makes for a much more fluid movement in a map finally we clear the players momentum if the drop is too high on the other side and that's a trace we need to do metal physics states so it's really similar it has the additional climb state similarly we calculate the spine from start position big ball position and and position on top of ledge the interstates similarly calculates the duration by the vault and the goal of the interstate is to push to play in the correct position under the ledge the climb state it scales up the time for the whole move because as you pull yourself up it kind of makes sense to
slow it down a bit and go up at least the player on top of ledge the single fan exit state again all it does is clear players momentum for votes slide and pull hop physics states sofa sliding you forced into a couch state pinion to the slide and all it does is force a constant velocity on the player in the direction you're traveling for about a second for the wall hop it's a single frame state if you next a wall and pass the wall the jump button for example it's going to do a wall hop it might also do it might also have detected the wall hop previously in which case it forces you to walk up and only the light body type may walk up looking at the third-person animations so all the
animations are driven by the physics states themselves for the slides all it does is play the slide animation when you enter the slide state for the waltz it plays the ball animation as you enter the intro the matter one the most complex it plays the intro and the grab animation when entered the interstate and also plays a client animation as a root motion with the origin at the ledge so that's pretty much the how it works in the physics and we'll look at the some some clips from the shipping game
good finish so there are some conclusions this system allowed for a much more fluid moment in a moment which was super important golfers of Splash Damage we added a smart button which is very similar to the sprint button but when you held this button it also allowed you to do all these movements automatically as you ran around in the world and in the environment it generated all the information we needed as map control step it didn't require any level design placed hint objects or anything like that and we also had different restrictions on the different body types
lights only the light body type could do the wall hop and only the light and a medium body type could do the mantle so it's a design decision to have a balance between different routes in environments and how tough your guide was some lessons learned the prototyping early on for six months allowed us to do quick iterations really important for getting all the metrics done and before Ashley entered production systems can successfully be used beyond their original intention this been the navmesh system quite quite a useful system to actually use quite a good performance increase probably from the prototype early on we could potentially given the client more authority over the physics sir was the author in brink so the client could mispredict potentially
answer would have to correct the client and that could create tiny glitches on the client side we could potentially have consolidated the physics states to say so network bandwidth as an example the mantle mantle had an intro and a climb states and the server couldnt assume the client was in the climb state when it told the client to go into that so it had to resend some of the same information the client had from being in the intro state so combining those could save someone with thank you for listening you can visit us at Splash Damage comm or send me an email @ AO at Splash Damage com follow us on Twitter at Splash Damage or at our near world how any questions
think around about two minutes for questions so if you miss who's first just quick question uh so for the objects when you were doing all the locomotion over around those objects are you actually disabling collision between the player and the objects that they're trying to vault or mantle or go under or are you doing anything specifically are you relying on the physics to push you out of that in case you try to go into it or anything like that yeah we completely disable the physics so we don't really care how you collide with anything we just know the start position is inside the walls I mean no the end position is inside the vault and the goal is to have as fluid a nice-looking moment in between those two points as impressed that you made a completely dynamic bet there like I'm used to using mantle brushes to dictate where the player we do these things how much iteration was required from the loved
designers to prevent players from getting to places that they shouldn't because it was dynamically allowed not nothing really because you had an Amish generation and that the reach abilities guaranteed that the end position is within the world so yeah cool does that answer your question yeah hi so um the smart fun basically allowed players to automatically go into states like the Vandal on the the the mantles are in the vaulting and sliding States but you could also manually trigger those things by pushing the right buttons at right time right yeah are there areas that they could reach basically using that manual triggering of those states that they couldn't use of just a smart one no I don't think so but the thing like more competitive players did was you sprinted into a
vault and at some distance to the ledge you started the vault but they wanted to start that earlier for example in most cases and you just press the jump button and that forced you into the same vaults so in some cases it actually was more efficient for you to trigger it manually yes yeah so unfortunately I don't think we have more time but thank you very much and please remember to give some feedback it's very useful to see what they can improve on for next year thank you [Applause]
Auto-generated captions from YouTube — names and numbers may be misheard.
Game Developers Conference · 2026
Game Developers Conference · 2020
Comments