Rainbow Fresh Posted yesterday at 06:07 AM Report Posted yesterday at 06:07 AM 6 hours ago, mayushii said: "because it reads funny" -- "a lot of work went into this" Just like a lot of "work" went into your AI generated PFP, I'm sure. You're truly an artist, a wordsmith, a visionary the likes of which the world has yet to encounter. Maybe if you actually put a lot of work into this, you could spend the very minimal extra work to put all the information together in a post? I mean, damn the AI already "did" all the "real work" for you. So maybe spend maybe an ounce of brainpower (I know it's a lot, asking this from a Holy Prompt Engineer such as yourself) on WORDING the post in a way that doesn't make everyone here barf from gpt-fatigue? You putting 0 effort into the wording of the post itself is to me proof beyond any doubt that you put absolutely 0 effort into any of this. You verified none of the output beyond perhaps copy+pasting it into LLM #2 and maybe even... oh god, if you were REALLY putting work into it, LLM #3. The horror... If I wanted to talk to a stupid LLM about this topic, I would've asked an LLM, not gone to a forum on the games website. Your style of posting sincerely, with no personal feelings towards YOU, but everyone who copy pastes LLM replies onto here, needs purged and permanently banned via a site wide rule. Well, feel free to decompile the game's assemblies and search through it to verify whether or not any of the information is factual or not. "GPT-Fatigue" aside, common public AI models are rather good at reading code at a speed a human couldn't even dream of and finding relevant snippets down a convoluted chain of half-parsed function calls. If "doing ALL the work" is so important, clearly that is no issue for a Holy Manual Laborer such as yourself, no? That said @Teh Pizza Lady could've atleast fixed the line breaks 1
Diff Posted yesterday at 11:41 AM Report Posted yesterday at 11:41 AM (edited) I'll volunteer as holy manual laborer. There's one detail wrong that compounds into an incorrect conclusion. the game doesn't care if the session is valid, it still checks in with the server anyway if it can. The code verifies this, but you can check it yourself just by starting the game. It says "Validating session with server" during boot. If you take your device offline it'll flash by too fast to see it. The game logs a Cached session key is valid, validating with server message while it does all this as well. That specific detail is present in 3 different forms (2 different text strings as well as the actual code's control flow) so I'm kind of surprised a modern LLM got this wrong, but hey. Anyway, the correct flow is: the game checks if the cached session key is valid. If it's not, it summons the login screen. If it is, it double checks with the server. If the response from the server is good, it keeps booting. If the response is bad, it kicks you to the login screen. There's a third kind of response, "Offline," which is returned if the connection to the auth server times out or just flat fails for whatever reason. If it's offline, it also keeps booting. This check-in is used to report whether your session has been invalidated (game server will invalidate existing sessions when you create a new one by signing in somewhere else), whether you currently have an official game server (which will reveal that "Your Game Server" button in the main menu), as well as some other "Entitlements" that I can't really identify. It's seemingly null on my machine/account and I can't find anything that bothers to check it. Game also communicates with the auth server when establishing a multiplayer connection. All completely reasonable IMO. But to be clear, the game does phone home every launch to verify you are allowed to play. If you refund the game (ofc) or login somewhere else, the call home will gladly lock you out of the game. Edited yesterday at 11:49 AM by Diff 1 1
Teh Pizza Lady Posted yesterday at 01:21 PM Report Posted yesterday at 01:21 PM 6 hours ago, Rainbow Fresh said: That said @Teh Pizza Lady could've atleast fixed the line breaks And you could have fixed the missing space between "at" and "least", but listen... after decompiling the game code at the engine level running the decompiled C# through Claude Sonnet 5 because I already have a bug-check and logic sanity workflow for that Verifying the results complete with filenames and line numbers Asking for an English summary because that's why I had spent probably 30 - 45 minutes on it at the end of a very long day. Did I take a shortcut? yes. Was it correct? Well @Diff seems to think so, at least partially. The question was "Why does it keep asking for my login credentials?" not, "Does it phone home to make sure I didn't pirate the game?". The only reason I approached it from that angle is because I thought it was obvious no one here thought that a game that requires an account to play wouldn't do that. This doesn't count as phoning home or DRM because It only happens at launch If you're offline or the servers timed out, it's treated as a partial success and you're still allowed to play the game. The local single player server doesn't run either of these checks and relies on your saved ClientSettings.SessionKey which is used instead of the username/password. This is why before I -- Ahem Claude -- said Quote If you're being sent back to the credentials screen repeatedly while offline, it means the cached session got invalidated somehow, which typically happens if: Your config/settings folder was cleared, reset, or you reinstalled without keeping it The cached key/signature got corrupted or only partially written You explicitly logged out at some point You moved to a new machine/profile without the cached session This is confirmed by a dainty stroll through the source code because the aforementioned session key gets saved in the config/settings folder and is ever refreshed if the server thinks it's too old, you logged out (which destroys it) or you have a bad hard drive and that file is specifically not saving correctly. The only times you're not allowed to play are if the auth servers say "no" (no account, banned, game refunded, etc) or you have never logged in before. None of that is DRM, that's just a license check which any game that requires an account will do. And if you still think you're talking to an LLM at this point then I'm afraid you're delusional and need a licensed therapist. 1 hour ago, Diff said: as well as some other "Entitlements" that I can't really identify. It's seemingly null on my machine/account and I can't find anything that bothers to check it. The entitlements are checked in the FinalizePlayerIdentification method of VintageStory.Server.ServerMain class from the VintagestoryLib code. if (entitlements != null) { string[] array = entitlements.Split(new char[1] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string entitlement in array) { client.Player.Entitlements.Add(new Entitlement { Code = entitlement, ... }); } } If they're null, then the whole code block gets skipped. It has no bearing on whether you're allowed to play the game or not.
Diff Posted yesterday at 01:50 PM Report Posted yesterday at 01:50 PM (edited) 29 minutes ago, Teh Pizza Lady said: The only times you're not allowed to play are if the auth servers say "no" To be clear, this is phoning home, and it is DRM by the letter of the "law". It's *fine* but it is DRM, it is gating your access, it happens on every launch (even if it's quite permissive about being offline) and it is verifying that you didn't pirate the game. License/account checks are a relatively low key form of DRM. DRM free games don't do this at all, although connecting an account may enable some extra features. As an example, Steam has some DRM-free games, and while Steam itself is a form of DRM, the game executables themselves sometimes don't verify anything. No Steam, no achievements, but the game still trucks along. 29 minutes ago, Teh Pizza Lady said: The local single player server doesn't run either of these checks and relies on your saved ClientSettings.SessionKey which is used instead of the username/password. Curious about this, can you elaborate more? The local single player server as in the one that gets automatically started when you start a singleplayer game? Isn't starting that gated by the other two checks and so still entirely subject to those two checks? On the Entitlements, I did see that but what's actually done with them? Edited yesterday at 01:52 PM by Diff 1
Teh Pizza Lady Posted yesterday at 02:35 PM Report Posted yesterday at 02:35 PM (edited) 56 minutes ago, Diff said: License/account checks are a relatively low key form of DRM. I disagree, but that's neither here nor there, just a disagreement on what DRM actually is. Since it still permits play even when the servers are offline or timing out, I don't think it counts even if it is on a technical level. 56 minutes ago, Diff said: Curious about this, can you elaborate more? The local single player server as in the one that gets automatically started when you start a singleplayer game? Isn't starting that gated by the other two checks and so still entirely subject to those two checks? On the Entitlements, I did see that but what's actually done with them? OP's thread seemed to be asking why the username/password. I was basing my answers from that perspective. If it never checked for a valid license beyond the first login attempt, then OP might not have ever known about any of this. I consider it to be an acceptable form of license verification with a fallback to allow gameplay if something goes wrong (no response or disconnected from internet). Starting the single player server only relies on LOCAL verification of the session key. If the auth servers take too long or the internet goes out, the local validation of the key still allows game play. Entitlements are used to identify devs or other distinguished players on a server. Some valid entitlements are: vsteam - dev team member vscontributor - player recognized for their contributions to the game vssupporter - financial backer/supporter staff - forum/discord staff? bughunter - probably for bug-hunting recognition chiselmaster - probably for doing cool things with chiseling An unrecognized entitlement wouldn't do anything but hey, that's what mods are for. EDIT: TO BE CLEAR, if the game didn't have online play then a game account wouldn't be necessary. If it was local gameplay-only and still required account verification to play, then I would consider it DRM. Edited yesterday at 02:47 PM by Teh Pizza Lady 2
Recommended Posts