What is the Authority API?
The Authority API mentioned in the Alpha 3.12 Postmortem, what is it? Is it about player authority/authentication on game servers to validate their actions or about servers having authority over entities in the game to be able to split the game world onto multiple game servers?
Clive Johnson CIG@cjohnson
The Authority API is to let servers know which entities they have authority/control over. As you said, in server meshing we need this to distribute control over entities to different servers.
In the original client-server architecture code could just assume that if it was running on the server it would have control over any entity. Because the engine was designed so that clients and servers run a lot of the same code, there were thousands of places in the codebase that needed to check if it was running on a server or not. Some of these checks control systems that are only available to a server but others were really asking if the program had authority over an entity. It's the latter category that needed replacing with the Authority API. However there was no way to tell the cases apart other than looking at every one of the checks individually and deciding if it needed to change.
Being such an enormous amount of work, this conversion was split over all the teams, file by file. This still resulted in hundreds of tasks but thanks to everyone's hard work it's now almost complete. Who's the tardy so-and-so with some of their conversion work left to do? That would be me
With those tasks almost complete as you mention, are players going to see any impact or changes on the servers ?
Clive Johnson CIG@cjohnson
No, in this case the definition of success is that no one can tell the difference. But it's still a necessary and important step on the road to server meshing.
Can we get updates on Stability of servers every quarter ?
Most of us know its a on going process to improve, but I haven't seen any updates since 2020 about this issue.
Would be nice to hear every Quarter that a team discovered x,y,z and we should see 10% improvement or something
A good majority of the stability fixes that we do take place during the PTU. I think rather than this being something we report on every quarter, it's something we'd want to get added ( and working ) on the telemetry page. Currently the telemetry page only lists game client stability ( which is broken and the bug for it is currently assigned out to be looked at ). So we'd want to add server stability to that page as well, but I'd also prefer to have a more useful visualization than just the current stability because in the future, the way that we're going to measure stability will change.
Would be nice to hear … a team discovered x,y,z and we should see 10% improvement or something
I avoid making predictions of how much stability is going to improve when a fix is implemented because based on historical data, any predictions we make tend to be wrong since there is always a chance that additional issues might exist that were being hidden by the issue that was fixed.
Currently, server and client stability have a set threshold that we aim to beat for every release. Sometimes we're able to reach that goal, but sometimes it doesn't go that well. Part of the reason why that happens is because we're using the data on the PTU to represent what the public environment might be like and that doesn't always end up being accurate. Sometimes the smaller sample size of players on the PTU will play the game differently or doesn't generate enough traffic to run into certain issues. Sometimes the rapid iteration of the PTU environment prevents us from seeing issues that only occur on game servers that have been running for a while. Because of this, any time a build is released we will keep an eye on it and look to see if things are as stable as expected and if not, release additional patches to help things along.
Some of the biggest improvements that we currently need for stability has to do with how stability issues are reported in our analytics. The way that we currently measure stability doesn't do a good job of measuring what the player experience is actually like because it uses statistical averages without any way to look at specific gameplay loops. For alpha this is fine because we can look at the numbers and say that the average player experience is stable, but the problem with averages is that while yes, some players are going to have a great time and go hours / days without encountering a server crash, that isn't true for everyone. This model neglects to identify issues that occur with gameplay that might have a smaller number of players participating in it. For server crashes, there's two things that can easily help to identify these kinds of problems and that is:
How long the server was running before it crashed
What location the server was hosting
Just to answer anyone that's wondering "well why don't you have that information?". The people that would help me get that information into an analytics event that can be visualized into graphs are also the people that are working on critical game functionality. A lot of the current stability analytics that I have were implemented by our backend services, networking, and platform teams ( big thanks to Tom, Clive, and Benoit ) so it's a question of should they work on improving stability analytics or work on developing the game.
Here's how those two types of data help:
Knowing how long the game server was running before it crashed makes it easier to see if there are rare but easy to reproduce crashes. Let's say that there's a 100% server crash that occurs for a mission that's at the end of a chain of missions. Super specific situation that isn't going to be run into very often but for the person that's on that mission, the game is going to feel pretty unstable to them because anytime they try to complete it, the server goes down. With the way the game currently works, this wouldn't work that well because since the game server hosts the entire solar system, it's possible for a server to have been running for some time before running into an issue like this. That will get better with server meshing, but may still run into accuracy issues because our player in this situation isn't guaranteed to be the first person to join that server.
Knowing the location that a server was hosting helps make up for those accuracy issues but not until the servers are hosting more specific locations. Currently, our server crashes do have location data in their analytics events the problem is that the game server hosts the entire solar system so it's usefulness is really limited to being able to identify crashes that occur in the Persistent Universe, Arena Commander, or Star Marine. All of that is useful because AC and SM related server crashes can help us to identify and fix rare combat related crashed in the PU, but it isn't going to help us identify our above example of someone that's crashing the server when doing a specific mission. As server meshing becomes more mature and the game servers start to host locations dynamically based on where players are located, it becomes easier to be able to identify those rare but bad stability issues because we'll be able to see if there's a specific location that has a worse stability that other areas.
The recent playtesting of the Xenothreat event that our players helped us out with helped to illustrate how important this kind of information can be. Without those playtests, we wouldn't have been able to identify the stability of the event because the data for players taking part in the event would be mixed with the rest of the gameplay that players took part of while the event was running. However in the future when we start to dynamically host different locations, we'll be able to see which locations are less stable than others and focus on getting the issues affecting them fixed.
- What Can Truly Be Expected From Static Server Meshing (things CIG does not tell you).
- Learning the difference between server-side and client-sided data, and how it affects things like stash or inventory space..
- A Real Tick Rate Discussion
More about Star CitizenPost: "Authority API & Servers Stability (Dev Responses)" specifically for the game Star Citizen. Other useful information about this game:
- 3.13.0 to 3.16.0 and Teams Progress Watch – Update 2021-04-21
- Dual Stick – Tank Controls (please help refine my solution)
- I had never seen the Squadron 42 Vertical Slice until today and it looks practically insane…
- Exploration ships and Pyro – A plea to CIG
- Star Citizen Alpha 3.13.0o PTU.7293148 Patch Notes
Top 20 NEW Medieval Games of 2021
Swords, dragons, knights, castles - if you love any of this stuff, you might like these games throughout 2021.
10 NEW Shooter Games of 2021 With Over The Top Action
We've been keeping our eye on these crazy action oriented first and third person shooter games releasing this year. What's on your personal list? Let us know!
Top 10 NEW Survival Games of 2021
Survival video games are still going strong in 2021. Here's everything to look forward to on PC, PS5, Xbox Series X, Nintendo Switch, and beyond.