Posted February 16, 2021
fronzelneekburm
I'm back!
fronzelneekburm Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Apr 2012
From China, People's Republic of
Maxvorstadt
I is more stronger than Darth Vapour!
Maxvorstadt Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Apr 2014
From Germany
Posted February 16, 2021
Mori_Yuki: ...
As you already described, achievements are unlocked via API call. Are achievements integrated in the game code or are these calls made externally, accessing one of the Galaxy.dll files and everything else going on happens either within the client or on the website profile or both? If that is the case it is how I would envision it working in a non-client environment...
Panaias: Strictly speaking, the logic for achievements must be hardcoded into the game. For example, only the game knows internally that you just gathered your 5000th coin and so it should inform you through a flashy achievement / badge / trophy / whatever (I couldn't care less personally). As you already described, achievements are unlocked via API call. Are achievements integrated in the game code or are these calls made externally, accessing one of the Galaxy.dll files and everything else going on happens either within the client or on the website profile or both? If that is the case it is how I would envision it working in a non-client environment...
In a very abstract form: when such a goal is triggered in game code, there should be a handler for it (a function, a class, something else). Within this handler's code, a distinction is made based on which platform's client you're playing on (Galaxy, Steam, etc.). When the specific client is recognized, then there is another handler that is programmed to invoke only API calls from that specific client (this is the differentiating point among achievement for different clients), which usually are linked through an external dynamic library (e.g. a .dll for Windows).
In an ideal world (for those who care about achievements) the developers would take the little extra time to implement a handler for each different popular client, in a nice abstracted way to minimize code duplication and tweaking.
This way it is trivial to make a "dummy" handler, e.g. external .dll, for each client, whose only job would be to do... nothing. So, when you don't play through a client, the game will use the dummy client and just keep going on.
On the other hand, there are developers who hardcode client-specific code into their games (I guess a lot of Steam games do just that) so it's quite impossible to play without the client, unless an amount of refactoring is done (which is usually never done).
Post edited February 16, 2021 by Maxvorstadt
Starkrun
Poops Darkmatter
Starkrun Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Aug 2009
From United States
Posted February 17, 2021
GOG is CDP and there was some serious patches that came down after the big hack of GOG's parent company... I would expect this happening to them. It seems delay is the key word here not "vanished" so once there database and servers are back to 100% I'm confident GOG will be back to normal :)
Slick_JMista
GOG Veteran
Slick_JMista Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Jun 2014
From United Arab Emirates
Posted February 17, 2021
let's give them the benefit of a doubt and hope they bounce back from their cybersecurity fiasco.
Achul
New User
Achul Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Apr 2018
From Sweden
Posted February 17, 2021
Nvm see my own thread
Post edited February 17, 2021 by Achul
NuffCatnip
New User
NuffCatnip Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Apr 2015
From Germany
Posted February 17, 2021
Would be hilarious if this is later used as an excuse to not update offline installers at all.
Panaias
Ancient Mariner
Panaias Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Sep 2012
From Greece
Posted February 17, 2021
For me (and you I guess) they are. Others seem to require them. Each to their own :)
In any case, they should not be processor-intensive. They are one-off events which should not do anything else than just notify.
In any case, they should not be processor-intensive. They are one-off events which should not do anything else than just notify.
kohlrak
One Sooty Birb - Available on DLsite.com, not
kohlrak Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Aug 2014
From United States
Posted February 17, 2021
Yeah, that could actually be happening right now. I've heard enough in this post to suggest to me that this has been going on much longer than this post, and they should've said something back when they found it broke to head detractors off at the pass. It seems they were just outright hoping we didn't notice. Makes me pretty damn skeptical.
Dexter Grif
Protect me, cone!
Dexter Grif Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Jan 2013
From United States
Posted February 17, 2021
NuffCatnip: Would be hilarious if this is later used as an excuse to not update offline installers at all.
kohlrak: Yeah, that could actually be happening right now. I've heard enough in this post to suggest to me that this has been going on much longer than this post, and they should've said something back when they found it broke to head detractors off at the pass. It seems they were just outright hoping we didn't notice. Makes me pretty damn skeptical. kohlrak
One Sooty Birb - Available on DLsite.com, not
kohlrak Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Aug 2014
From United States
Posted February 17, 2021
kohlrak: Yeah, that could actually be happening right now. I've heard enough in this post to suggest to me that this has been going on much longer than this post, and they should've said something back when they found it broke to head detractors off at the pass. It seems they were just outright hoping we didn't notice. Makes me pretty damn skeptical.
Firefox31780: Surely you are not questioning GOG's transparency? Dexter Grif
Protect me, cone!
Dexter Grif Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Jan 2013
From United States
Posted February 17, 2021
kohlrak: How the hell do they expect to trust the plan if we don't even know the plan? A game surprise is a pleasant surprise, but the policy changing and such is not a pleasant surprise. How long until "fixing the automation of the offline installers" becomes "too costly"? I mean, common, why can't they use the galaxy technology to package installers? Shouldn't be that hard to make an archive format with simple compression that gets created (and cached) on attempt to download an offline installer. Do I have to make it for GOG?
Oh, I agree with you 100 percent. That was just my clumsy way of being sarcastic :) It's really discouraging to see GOG become a shell of what it used to be. They seem dead-set on chipping away the very things that made them unique in the first place.Mori_Yuki
南無妙法蓮華経
Mori_Yuki Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Mar 2015
From Austria
Posted February 17, 2021
Panaias: Strictly speaking, the logic for achievements must be hardcoded into the game. For example, only the game knows internally that you just gathered your 5000th coin and so it should inform you through a flashy achievement / badge / trophy / whatever (I couldn't care less personally).
In a very abstract form: when such a goal is triggered in game code, there should be a handler for it (a function, a class, something else). Within this handler's code, a distinction is made based on which platform's client you're playing on (Galaxy, Steam, etc.). When the specific client is recognized, then there is another handler that is programmed to invoke only API calls from that specific client (this is the differentiating point among achievement for different clients), which usually are linked through an external dynamic library (e.g. a .dll for Windows).
First of all thank you for explaining this to me! Since achievements are integrated in the code, I still don't understand why the same can't be done without Galaxy. Transmitting that data to this website, that is. I'm not talking about displaying popups in-game or any of that stuff. An immersion breaking distraction which I can very well do without. In a very abstract form: when such a goal is triggered in game code, there should be a handler for it (a function, a class, something else). Within this handler's code, a distinction is made based on which platform's client you're playing on (Galaxy, Steam, etc.). When the specific client is recognized, then there is another handler that is programmed to invoke only API calls from that specific client (this is the differentiating point among achievement for different clients), which usually are linked through an external dynamic library (e.g. a .dll for Windows).
My point is this: With only one set of files, both containing **achievements, both being able to access GOG's servers to transmit and receive data from it, there is no need for a separate set of patches or adapted DLC either. Which usually take longer to be dispatched to the website versus the client. Both parties get to enjoy what the other one's got access to and both should be happy. What's important is that GOG would profit most from this. Consider how several hundreds of terrabytes of server space could be saved! I would also assume that it takes lots of work off the shoulders of developers having to adapt their patches and updates for both.
Panaias: In an ideal world (for those who care about achievements) the developers would take the little extra time to implement a handler for each different popular client, in a nice abstracted way to minimize code duplication and tweaking.
This way it is trivial to make a "dummy" handler, e.g. external .dll, for each client, whose only job would be to do... nothing. So, when you don't play through a client, the game will use the dummy client and just keep going on.
So it should be possible is what you are saying. Correct? This way it is trivial to make a "dummy" handler, e.g. external .dll, for each client, whose only job would be to do... nothing. So, when you don't play through a client, the game will use the dummy client and just keep going on.
Panaias: On the other hand, there are developers who hardcode client-specific code into their games (I guess a lot of Steam games do just that) so it's quite impossible to play without the client, unless an amount of refactoring is done (which is usually never done).
If one wanted to one can find out. :-) Steamworks documentation ** Based on the assumption that achievements etc., the code for them, is already present in both offline and galaxy revisions.
kohlrak
One Sooty Birb - Available on DLsite.com, not
kohlrak Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Aug 2014
From United States
Posted February 17, 2021
Panaias: Strictly speaking, the logic for achievements must be hardcoded into the game. For example, only the game knows internally that you just gathered your 5000th coin and so it should inform you through a flashy achievement / badge / trophy / whatever (I couldn't care less personally).
In a very abstract form: when such a goal is triggered in game code, there should be a handler for it (a function, a class, something else). Within this handler's code, a distinction is made based on which platform's client you're playing on (Galaxy, Steam, etc.). When the specific client is recognized, then there is another handler that is programmed to invoke only API calls from that specific client (this is the differentiating point among achievement for different clients), which usually are linked through an external dynamic library (e.g. a .dll for Windows).
Mori_Yuki: First of all thank you for explaining this to me! Since achievements are integrated in the code, I still don't understand why the same can't be done without Galaxy. Transmitting that data to this website, that is. I'm not talking about displaying popups in-game or any of that stuff. An immersion breaking distraction which I can very well do without. In a very abstract form: when such a goal is triggered in game code, there should be a handler for it (a function, a class, something else). Within this handler's code, a distinction is made based on which platform's client you're playing on (Galaxy, Steam, etc.). When the specific client is recognized, then there is another handler that is programmed to invoke only API calls from that specific client (this is the differentiating point among achievement for different clients), which usually are linked through an external dynamic library (e.g. a .dll for Windows).
My point is this: With only one set of files, both containing **achievements, both being able to access GOG's servers to transmit and receive data from it, there is no need for a separate set of patches or adapted DLC either. Which usually take longer to be dispatched to the website versus the client. Both parties get to enjoy what the other one's got access to and both should be happy. What's important is that GOG would profit most from this. Consider how several hundreds of terrabytes of server space could be saved! I would also assume that it takes lots of work off the shoulders of developers having to adapt their patches and updates for both.
Panaias: In an ideal world (for those who care about achievements) the developers would take the little extra time to implement a handler for each different popular client, in a nice abstracted way to minimize code duplication and tweaking.
This way it is trivial to make a "dummy" handler, e.g. external .dll, for each client, whose only job would be to do... nothing. So, when you don't play through a client, the game will use the dummy client and just keep going on.
Mori_Yuki: So it should be possible is what you are saying. Correct? This way it is trivial to make a "dummy" handler, e.g. external .dll, for each client, whose only job would be to do... nothing. So, when you don't play through a client, the game will use the dummy client and just keep going on.
Panaias: On the other hand, there are developers who hardcode client-specific code into their games (I guess a lot of Steam games do just that) so it's quite impossible to play without the client, unless an amount of refactoring is done (which is usually never done).
Mori_Yuki: If one wanted to one can find out. :-) Steamworks documentation ** Based on the assumption that achievements etc., the code for them, is already present in both offline and galaxy revisions.
MarkoH01
The goose rules!
MarkoH01 Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Jun 2009
From Germany
Posted February 17, 2021
You might want to remember that there are more than enough people who like them and you absolutely won't notice any performance difference at all. In most cases you can also turn them off if you dislike them. So why don't let those who want them have their achievements?
Post edited February 17, 2021 by MarkoH01
Panaias
Ancient Mariner
Panaias Sorry, data for given user is currently unavailable. Please, try again later. View profile View wishlist Start conversation Invite to friends Invite to friends Accept invitation Accept invitation Pending invitation... Unblock chat Registered: Sep 2012
From Greece
Posted February 17, 2021
Mori_Yuki: First of all thank you for explaining this to me! Since achievements are integrated in the code, I still don't understand why the same can't be done without Galaxy. Transmitting that data to this website, that is. I'm not talking about displaying popups in-game or any of that stuff. An immersion breaking distraction which I can very well do without.
My point is this: With only one set of files, both containing **achievements, both being able to access GOG's servers to transmit and receive data from it, there is no need for a separate set of patches or adapted DLC either. Which usually take longer to be dispatched to the website versus the client. Both parties get to enjoy what the other one's got access to and both should be happy. What's important is that GOG would profit most from this. Consider how several hundreds of terrabytes of server space could be saved! I would also assume that it takes lots of work off the shoulders of developers having to adapt their patches and updates for both.
If I understood your idea correctly, the big difference is one: internet connection :) My point is this: With only one set of files, both containing **achievements, both being able to access GOG's servers to transmit and receive data from it, there is no need for a separate set of patches or adapted DLC either. Which usually take longer to be dispatched to the website versus the client. Both parties get to enjoy what the other one's got access to and both should be happy. What's important is that GOG would profit most from this. Consider how several hundreds of terrabytes of server space could be saved! I would also assume that it takes lots of work off the shoulders of developers having to adapt their patches and updates for both.
What's happening currently is that when the game decides a goal was achieved, it internally routes a call to the specific client which you launched your game through, so that the client can pop up the achievement banner with info provided from the game. In this scenario, internet connection is not required. The logic for the achievement (e.g. player resurrected 100 times) is within the game code. The way to display the achievement (e.g. "You are a level-100 zombie!") is within the client code. Both game and client are running locally so no internet is required for the achievement to happen and appear.
Your idea, while interesting in theory, would require an always online connection to the internet while playing. When the achievement logic would be triggered, it would have to be transmitted over network e.g. to GOG's servers so that it becomes available (to display on the web, to get permanently registered in your profile, to brag to your friends, whatever else). And then your game's code should get a reply from GOG's server over network to get the achievement confirmation back and display it in-game.
It's not impossible (please read above), but also it's not desirable. Besides "locking" your game to require an online connection (which is a form of DRM), there are other issues such as your own connection quality, speed, bandwidth limits, etc. So imagine playing and defeating a super challenging secret boss. After you defeat it, you leave and walk 10 minutes to get to the next area. And then boom an achievement appears "You are a secret-boss slayer!". OK, I might have gone a bit far there, but you get my point :)