PaulCombal / SamRewritten

Steam Achievement Manager For Linux. Rewritten in C++.
GNU General Public License v3.0
341 stars 32 forks source link

Unsubscribed games don't show up. #7

Closed wgpierce closed 4 years ago

wgpierce commented 5 years ago

In issue #6 , thymikon mentioned that unsubscribed apps don't show up in SAM. But, they do still count towards Steam completion percentage according to "Rule # 4: The Uninstall & Deactivation Rule" on How Average Game Completion Rate is Calculated. Filing this issue to investigate how to deal with unsubscribed apps.

wgpierce commented 5 years ago

I think going gibbed's way would not be a bad option, but digging a little bit further I found a few function signatures in OpenSteamworks that can be interesting to look at : Here

Some guy managed to do so 10 years ago on this thread (the Voided guy in the middle of the page), do you believe investigating on this is something worth doing?

That would be good to investigate how those behave. Can you try that out? Or if you're busy with other things, I understand. I'm going to check out whether gibbed's way or the project https://github.com/seiyria/steam-avg-pct-cli with Steam API keys picks them up. I know that completionist.me doesn't pick up on them because I just checked. I'll report back within a few days.

PaulCombal commented 5 years ago

Hi, just giving an update

I just created a new playground branch and discovered a lot of interesting things. My tests did not lead to anything at all yet, I work directly in the /bin folder.

If you try running: $ nm -D --defined-only libsteam.so you can see that there are a lot of exported functions. I did not manage to use them yet but there's something to learn there.

C/C++ is not my main language, so I thought that if you are more experienced than I am maybe you could eventually find out how things work.

Here is the test main: https://github.com/PaulCombal/SamRewritten/blob/playground_branch/bin/test_main.cpp

I'm gonna be away for a week or so, so I'm not expecting to go much farther on this any time soon.

Regarding the API way, I'm not sure how to feel about it, specially for private profiles. I'd feel better if the AppIsOwned method were used.

wgpierce commented 5 years ago

Update on my tests: neither gibbed's way nor steam-avg-pct-cli pick up on unsubscribed apps. Paul, your test doesn't return anything in the appid array. We would also need to double check that the function is being invoked properly. We can try to match Voided's setup routines as a first step.

For now the best workaround is just to resubscribe to those games if you want to modify their achievements. The section "How to Find Games Your Library Is Missing" in the link to "How Average Game Completion Rate is Calculated" at the top is a way to find these games.

PaulCombal commented 5 years ago

I took a break, but I thought a little about this issue. The SteamGetAppIds function is meant to be called from the Steam Client, so that it requires credentials and being logged in, instead of the steam_api calls which just hooks to the current Steam instance.

Regarding unsubscribed apps, I don't believe they should be picked up anyway, but if you believe this must be done you can go ahead.

I believe using isAppOwned is the best implementation I can think of so far, so I think I will do this next time I touch this repo.

PaulCombal commented 5 years ago

I added a beta branch, which registers all subscribed apps. It would be awesome if you could give me feedback on the new code, because I know it's messy and I probably left commentd out old code.

I think I will work a little on the interface before merging into master. I believe a search-based tool would make more sense than a list-based tool in this case.

wgpierce commented 5 years ago

Hey sorry if I hadn't responded. I can review that tonight!

I had sent you another email about splitting out the two windows from each other. I am definitely working on this tonight and will put it in a new branch.

On Mon, Jul 15, 2019, 10:26 AM PaulCombal notifications@github.com wrote:

I added a beta branch, which registers all subscribed apps. It would be awesome if you could give me feedback on the new code, because I know it's messy and I probably left commentd out old code.

I think I will work a little on the interface before merging into master. I believe a search-based tool would make more sense than a list-based tool in this case.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/PaulCombal/SamRewritten/issues/7?email_source=notifications&email_token=ACKWL5VYRIXPCZN6FRT77NLP7SXN3A5CNFSM4HQI4ET2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ6MSYA#issuecomment-511494496, or mute the thread https://github.com/notifications/unsubscribe-auth/ACKWL5QKKNETRALELQRC4GDP7SXN3ANCNFSM4HQI4ETQ .

PaulCombal commented 5 years ago

I think the interface needs to be reworked. We both have ideas, I think it would be a good idea to make quick mockups and a list of ideas before doing anything, I'll keep you updated if I think of something!

wgpierce commented 4 years ago

gibbed's original SAM and steam-avg-pct-cli don't pick up on apps that are unsubscribed, and we're now using basically the same algorithm as gibbed's SAM, so I don't think this issue is really viable without a lot more hackery. I'll close this issue for now.