Back to search

Once we have iCache, how does that take us to global persistence?

TL;DRiCache gives the scale needed to store world-state data beyond player accounts, which global persistence and server meshing require, so that players' actions become more permanent and recoverable, though some mess would still be cleaned up.

Chad McKinneyCore Tech Developer

Right, so global persistence is something that is supported now that we have this iCache framework. What it means is that we're going to start writing out data about the state of the world that does not include player account data. Previously, we would only store data that was relevant to a particular player's account. Things like their ships, their weapons, their item port attachments. Perhaps you stole something from somebody, we'll store that. But that's where it stops. We want to do more though. The game that we envision is this incredibly high fidelity, highly persistent world where your actions matter, you have an impact on the world. Well, the only way to make that work is to actually store out the state of those changes and to store out the state of the world itself. So that's what I've been calling global persistence. So the reason why we haven't done this to date, though, is that the amount of data that we're talking about is a magnitude or two more. It's much, much more data. And if we tried to write that out with the current system, it would just keel over and die. It would not go well. So iCache gives us the scalability to actually deal with that scale of data. But on top of that, it's a requirement to support server meshing. Before we get to server meshing, global persistence really is, in my opinion, a feature in and of itself, and it's part of the vision of the ultimate version of Star Citizen. So to me, it was very important that we make sure that we execute on this, that we're finding all the places in the game that we want to support this kind of persistent state and make sure that we update all the game systems to work accordingly. So we actually have a version of global persistence right now. It's just not apparent to players because when they log out of a server and log back in, they'll go into a different server instance often and they'll see something different. And if the server that they're on crashes and recovers, the history that it had is gone. So we actually are maintaining much of this data, but it's just not in a way that players will really ever tangibly see. And where we're going is making it more permanent and on top of that recoverable. So that as you get into the game, we're going to be able to expand out using server meshing the number of players within effectively an instance or what we'll start calling a shard. And as that expands, you'll be playing more and more in effectively the same kind of world line or set of history. And your experience will be that you will see you and your playgroups, your effects on the world become more permanent. And the idea is that for all the players in the game, they end up seeing a version of the game that is effectively permanent for them. From the time they start playing the game to the time that they end, everything is there. And to be clear, though, there are going to be sets of gameplay around maybe dynamic events in the game that happen or there will be places in the game where maybe there's more maintenance that will recover some of the broken and messiness that accrues from all this player behavior. You can imagine that if you have maybe a military base or maybe a high traffic, high cost neighborhood in Area 18 or something like that, they're gonna have more facilities in place to maintain it, to keep it clean and fixed up. Whereas maybe a seedier location perhaps in pirate space, all the mess that's left around is gonna stick around for a while.

Calling All Devs›Core Tech Updates·
Published on this date.28 Aug 2020
EpisodePersistence