December 9, 2013

Chris Butcher talks about Destiny's matching making 'mesh of servers'

guardians

New Zealand is a damn awesome country. We have Peter Jackson and the Hobbits. We have Martin Crowe. And we have lent Chris Butcher to Bungie to help them make Halo. The trouble is the brilliant game engineer never came back and is still with Bungie making their new Destiny game. Here's an interview he did with Game Informer about the stuff that needs to go into makings sure players can find each other in the Destiny world. 

How did the big idea for Destiny’s multiplayer philosophy start?
You have all of these examples of people who are doing big server cluster things like World of Warcraft or something like that. But we didn’t really want to do that, because if you think about those kinds of games, you’ve got a centralized server that’s simulating everything in the world, but that can only scale up to some number of players. Maybe it’s 1,000. Maybe it’s 5,000. Maybe it’s 20,000. You compare that to the population of a console game and it’s tiny. 
So what that means is that you have to have dozens or hundreds of these separate servers. So we started out by thinking, “We want to have a single world that everybody can be in.” 
We took this mesh-based networking that we’ve been developing for years and years with Halo and adapted that networking to work in a seamless interconnected world full of other players and AIs. So when you’re playing a destination you’re moving from area to area and every one of those areas has got this mesh networking with a group of players that are in it at this one time. And then it has its own servers for that particular area so you’re continuously moving around between these groups of both consoles and also dedicated servers that are hosting it. 
That’s the thing that I’m really excited that we’ve been able to do because I think it’s been really hard for us. And I don’t really think anybody else is going to be able to pull it off in the timeframe we’re talking about on consoles. 
destiny emblems
How does this mesh-based network play out in the game?
What happens is everybody in the world can play together. There aren’t these barriers that are in place. You’re all playing in one connected online world. When you’re moving from location to location you’re always going to have people to play with because there’s this huge population. You never have to go to an area of the world that’s deserted because there happens to be no one here on the server at this time. 
There are these artifacts that you get when you have, when you do a simulation that runs on a single server on a big mainframe type thing, there are two problems that you get. One problem is all of the 5,000 people on your server nobody is playing in Old Russia at the moment so it’s just empty when you go there. Or the other problem is all 5,000 people logged in and tried to go to the same place at the same time and the server crashes or it gets so full up that it’s totally lagged out. And if it does get full then there are some of those games that will start having different instances, but typically they don’t handle that very well because it’s not a core part of the game design. 
For us we’ve kind of said we want this game world to be able to work with millions of players online at once. And that means playing to the strengths of the consoles. Being able to use these very powerful machines to run a lot of the simulation. Being able to use the servers in a seamless fashion so that as you’re moving from place to place you’re switching networks with all of the different people that are around you. You’ve got a very high quality fast action gameplay experience. If you have all of these calculations taking place in a central server that’s one place in the world you can’t really have a fast action experience. 
What if you’re playing from Brazil or the West Coast of America? When we have this big pool of global players to matchmake with we’re able to use all of our technology to make sure you’re playing with people who are physically located near you so you have good ping to everybody else. So you’re able to have this great action experience that you’re used to in these action games. But at the same time you can do it in this global fashion.
We’re always storing data about how good your connection is to everybody else. We have all of this logic that’s going on about who’s got the fastest connections and therefore who the best person is to be coordinating the activity in that particular region. 
It’s as if you’re the host right there. There’s a ton of technology that goes into it. When it works it feels like you’re playing a single player game because everything that’s being simulated near you is running on your local machine and there’s no lag and no latency or anything like that. But at the same time you’re in this world full of lots and lots of players.

the traveller
Will there be any limitations to the current-gen versions of the game in terms of networking?
The current generation of consoles, Xbox 360 and PlayStation 3, they have a lot of headroom still for us. We have the most optimized game engine we’ve ever produced for these consoles. We’re getting at the point now where we are wringing pretty much every ounce of juice out of the Xbox 360 and the PlayStation 3. We’re running higher character counts and higher player counts than we thought would even be possible on these things because we’re using every ounce of the CPUs and the SPUs and we’re offloading stuff to the graphics processor. You’re basically eating the whole buffalo at this point in the current generation. And that’s been our target right from the start is to make sure that we can provide that game experience that is consistent for everybody. 
Will there be individualized instances of these predetermined multiplayer zones in the world?
Yeah, there are millions of people playing all at once so that might mean that you have a couple dozen or maybe a hundred instances of one particular area of the world. But the players don’t see that because in all of our game design we’ve made sure that the way that the gameplay and missions are structured is invisible to players. They’re able to just traverse the world in this seamless fashion. They don’t ever need to see any details about where they’re switching from one game world to another, like how we’re handing off the network entities. 

devil walker destiny
In competitive multiplayer, how do you account for different player skill levels and powers in matchmaking?
We play multiplayer a ton here in the studio, and we play a lot of multiplayer games. We know how much it sucks to be in an unfair match. It is really not very rewarding at all. 
[There are] two things that we do for that. [First,] we have a lot of best-of-class practices to make sure that the matches are as fair as possible. The other thing that we do is make sure that when you are playing and you are experiencing the competitive multiplayer in Destiny you’re always improving and upgrading and receiving rewards. Obviously you want to win the game, but if there’s no way you can win this particular game, we’ve all had that experience in different games, you don’t come away from it with nothing. You come away with “I was really happy there because I managed to get kills on that guy even though he’s got this exotic weapon.” It’s really satisfying. So we reinforce that as well. 
If you’re kind of in an underdog type of situation, then we make sure that we give you both the investment rewards, but also call out that you’re doing a really good job in this particular match. For example, when we play in the studio playtests there is always the guy that has the sniper rifle and likes to sit up high. So he’s getting a lot of kills and that’s really satisfying for you to take him down. Maybe you get three kills on him over the course of the match but it’s satisfying to you and the game rewards you for doing it because you’re an underdog in that situation. 

guardian attack hive

No comments:

Post a Comment

Say hello!

Note: Only a member of this blog may post a comment.