It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
MarkoH01: Thank you very much for this statement. Fingers crossed that you will be able to fix this soon™.
Fixed your post. ;P
avatar
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...
avatar
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).

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).
So, all in all, the archievements are just a waste of processing / computer power.
Post edited February 16, 2021 by Maxvorstadt
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 :)
let's give them the benefit of a doubt and hope they bounce back from their cybersecurity fiasco.
Nvm see my own thread
Post edited February 17, 2021 by Achul
Would be hilarious if this is later used as an excuse to not update offline installers at all.
avatar
Maxvorstadt: So, all in all, the archievements are just a waste of processing / computer power.
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.
avatar
NuffCatnip: Would be hilarious if this is later used as an excuse to not update offline installers at all.
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.
avatar
NuffCatnip: Would be hilarious if this is later used as an excuse to not update offline installers at all.
avatar
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.
Surely you are not questioning GOG's transparency?
avatar
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.
avatar
Firefox31780: Surely you are not questioning GOG's transparency?
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?
avatar
Firefox31780: Surely you are not questioning GOG's transparency?
avatar
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.
avatar
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.

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.

avatar
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?

avatar
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.
avatar
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).
avatar
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.

avatar
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.
avatar
Mori_Yuki: So it should be possible is what you are saying. Correct?

avatar
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).
avatar
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.
Looks like the achivement code can easily be dummied out with an empty dll hook.
avatar
Maxvorstadt: So, all in all, the archievements are just a waste of processing / computer power.
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
avatar
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 :)

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.

avatar
Mori_Yuki: So it should be possible is what you are saying. Correct?
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 :)