I have received information from my friends that Amazon said they are looking at disabling the Family Sharing feature from Steam, but that requires help from Valve. Well, guess what, as I am a player concerned about New World, I will share some options that AGS can take to prevent people from playing the game without paying (e.g. bots and exploiters).
First of all, there are 3 methods:
- Disable family sharing completely
This requires access to the Steamworks Portal to edit the settings of your game on Steam. Since I don’t have access to this portal, I believe it’s just a matter of finding a variable called exfgls. You can see this variable enabled for Rust on SteamDB: https://steamdb.info/app/252490/info/
This is by far the easiest method to disable family sharing, and it would no longer allow people to borrow paid accounts to bot or exploit, without their botting account owning the game.
Use Steam WebAPI to check if the player is playing a shared game
This method makes use of the Steam WebAPI to check if the game a player is currently playing is actually owned by the player.
The endpoint is https://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v1/, with the following parameters:
- key: Steam WebAPI key
- steamid: the Steam ID of the player you want to query
- appid_playing: the app ID of New World, in this case, 1063730
If the player is playing a shared game, it will return a JSON response containing the Steam ID of the user that actually owns the game. However, there are some problems with this method, as it’s not possible to know whether or not the user is currently playing a game or if they are actually playing a game they own – both these cases will return 0 for the “borrower” Steam ID in the response.
In other words, it’s not possible to differentiate if the user is not playing the specified game or if they own the specified game.
More info: Steam Web API Documentation
- Use Steamworks API to check game ownership
This is the preferred method, as it is possible to check whether or not a user actually owns New World or if they are playing it via free weekend or family sharing. It can also be incorporated as part of the authentication process with Steam when you open the game, and it requires a Publisher API Key, which you already have because you published New World on Steam.
I won’t go into too much details because everything is explained on the Steamworks Docs: User Authentication and Ownership (Steamworks Documentation) (under Ownership Verification), but I’d like to highlight that the endpoint used (ISteamUser/CheckAppOwnership) has nice return parameters:
So, yes, it is possible to determine whether the player owns the game on Steam or not. I believe New World can also run standalone (without Steam if you buy it on other game stores), so this would only affect Steam users. Still, Valve recommends calling this on a secure server, which means, as soon as you start the game, the server should request the Steam ID of the current user, call this endpoint and show a modal saying “Family Sharing is not allowed” or something similar, and as soon as you click to dismiss the dialog, the game closes.
I believe the best combination would be to disable Family Sharing completely via the developer portal and include this ownership verification to prevent people from playing the game without buying an account, using this to exploit bugs and bot, effectively ruining the game.
EDIT: In any case, whether Amazon decides to implement these ownership checking features or not, I believe they should adopt the same policy from CS:GO. If I borrow my game to a friend, via Family Sharing, and they get banned for whatever reason, I should also get banned. If my friend gets a perma ban, I should get a perma ban in my account, because I am somehow responsible for the person who borrowed the game from me. And if I use Family Sharing, while being banned, to another account, that new account should be instantly banned. Also, perma bans in New World should give you a Game Ban on your Steam profile.
EDIT2:: Game Bans can be issued by a publisher and are publicly visible on the Steam profile:
Developers must be approved to use this system, and Valve reserves the right to revoke access to the system if the developer abuses it.
Valve reserves the right to revoke this feature from publishers if they find out it’s being abused, however, I’m pretty sure that unless the ban was triggered by the automatic report system, there’s no way Valve will revoke this feature from AGS.