What is the current status of instancing? How do you plan to keep playable areas expanding without feeling empty or risking crashing the server if everyone tries together in one spot?
TL;DRInstancing is nearly possible now, but they are instead pursuing one seamless unified world meshed across servers, with the low-level networking rewrite aimed at 3.0 and the unified model later with no date, and gating for crowded spots.
Well, we're actually very close if we wanted to do instancing now. I mean, we're already effectively shunting players into instances every time they join an Arena Commander game. That's what's happening. We've already got persistence, so we can already save player state and restore it to a particular configuration as you join a game. And that's already 75% of the way there, but Chris wanted to push the game to a farther level versus what all these other games that approach this problem have done. What we're pursuing at the moment is really more of a completely unified networking model, whereupon there won't really be a bunch of individual sharded instances of the game. There will just be one world, and as you move around within that world, you will be shuttled seamlessly, transparently, from individual server to individual server. This comes with some technical problems and gameplay problems that we're going to have to resolve. We haven't figured out all of those things at the moment, but we're working on them right now. For example, you may have mission givers that effectively act as a bottleneck, and there's too many players trying to talk with that guy at one time. How do you deal with things like that? There are many different things, but it would become an extended conversation to go too far into all the details. But the big answer really is that we're trying to discard that whole players-in-little-isolated-instances approach and put everybody into the same universe, effectively simultaneously.
That's one of the things that stood out to me even back in the Gamescom demo. I had a lot of people come up and talk about the seamless transition. When I was up in the sky and now I'm on the planet and I haven't seen a single loading screen.
Even in the instancing scene you would still have that seamless transition. The fact is there will be a limit to how many players we can simulate on one server. So right now it's 24 in Arena Commander and about 40 when you're running around ArcCorp. But really that's actually eight instances running on one server. So if you just times it by eight and figure it out, we could have 200 players if we could scale the game linearly that way. But right now we can't, because parts of it are built for multi-threading, distributing to all the cores, some of it aren't. But that's what we're doing, a lot of refactoring. So an individual server instance could perhaps run 200 players, which then is obviously a lot denser than what we have right now, and you would still seamlessly go between locations. But on top of that, if you can mesh those servers together, and each server is sort of authoritative over a group of players, generally those players would be based on co-location. Each server tells the other servers what it's done with the players it's responsible for. On a peer-to-peer basis on the server side, you could have thousands of players being simulated all at once, but each server is only doing the work for its little portion. That's the new model. We're not the only people that are working on this or trying to work on this. But it is the new model of using the cloud to give you a lot more game experience. And that's where we're going. At some point, that may allow us to have 2,000 people in the same area or whatever. What if there was maybe 10,000? Then at that point we probably would still have to instance, but at the beginning here we're trying to make it not feel instanced, so you would be gated. If there's already too many people in a location, the landing pads are all full, it's just like you want to get into that bar, but it's busy because it's at capacity and the fire marshal would shut it down.
That's the gameplay limitations that I was referring to, which is just like in the real world, everyone cannot be in the same space at the same time. The question becomes how exactly do you represent that when you're talking about different things? A landing zone is one thing. A guy you need to talk to, isolated on a planet, is a different thing. There's a number of different solutions we've got in mind for how to deal with this stuff. Another thing to point out is there are two major things going on with the networking. One right now is the macro networking model that's going to allow all the players to seamlessly exist with one another. The other one is just the low-level networking rewrite that's going to give us a performance boost, and it's also going to make for a much more efficient code base versus what we got when we inherited the engine. That's going on now. The low-level rewrite is what we're aiming to release with 3.0. The unified networking model is something that's going to be post that. We don't have a specific date in mind. We will aim to do a test of that system at some point next year, where we basically band a number of servers together, creating a shard of sorts, where we're testing the concepts that we're talking about here, but on a much more localized scale. This should ramp the game up to, don't know right now, but it should be hundreds of players in one of these meshes.