-
-
Notifications
You must be signed in to change notification settings - Fork 184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Content Querying omits returning FileID, needed for getting the file #132
Comments
Hmm, I think the publishedFieldID was going to be saved as a variable internally like some other IDs are but that didn't end up happening. I also might be thinking about queryHandle. Nonetheless, I'll get that fixed. Good catch! |
also, somewhat related, since I need the patch quick (the game is live), I was trying to compile the source manually using Godot 3.2.1 source + both your latest source and the one bundled in the 3.2.1 release, but in both cases calling I am building it on W10 with mingw, is that the same setup you have? |
Currently patching in the publishedFileID to the function in question. Hmm, as for that crash, not sure but time to investigate! I'll set up a dummy project to see if I can figure it out. I compile in both Windows 10 and Ubuntu 16.04 or 19.10. I do not use mingw. For Windows I use the Native Tool Command Prompt for Visual Studio 2017. |
Is this still with scons? My entire setup was the compilation steps from the godot website: |
From the native tools command prompt, I just use:
I had installed Visual Studio 2017 and installed its components Native Tool Command Prompt, mostly because I don't like the Visual Studio IDE. Coming from a Linux background, I much prefer the command prompt interfaces. Not sure what scoop is but I see that in the documentation. |
the reason for |
Huh, haven't tried 2019 yet. What kind of errors does it produce, out of curiosity? |
While CreateQueryAllUGCRequest doesn't crash for me, it does produce a handle that probably doesn't work. |
|
Ouch. Yeah, looks like they are all errors within the Godot source code. That's weird. I would probably create an issue in the Godot Engine repo for VS 2019, if one doesn't already exist. |
Also related to the reason this issue came up: can you add this to take The overall goal here is to link some data to a leaderboard entry, linking it when the item is build would allow me to skip querying for this specific task (I'll still need it for user mods). |
OK, pushed the change to fix GetQueryUGCResult. I'll look into attachLeaderboardUGC. I do know ugcHandle is an internal variable, though I'm not 100% where or when it gets set. EDIT: Interestingly enough it is only set in the LeaderboardEntry struct which doesn't seem to get set anywhere. Also that function, attachLeaderboardUGC, is used to adding user content to a leaderboard score. Is that what you're intending? |
I've just compiled the new source, same silent crash on calling GetQueryUGCResult. (but this is still using mingw, while VS is getting installed)
Yes, the goal is create an item (which returns an ID on creation) then add an entry to the leaderboard and attach the created item with the leaderboard entry (should leave the ID readable on downloading the entry). EDIT: VS2017 didn't help, perhaps it's the Godot source version I'm using 🤔 |
Wait, crashing on GetQueryUGCResult? I thought it was crashing at CreateQueryAllUGCRequest. Here is the change to attachLeaderboardUGC, give this a try and let me know if that works. It didn't crash during compile. What version of Godot are you using? I don't really think it matters as long as it's in the 3.x family. EDIT: Looks like my focus will be moving back into User Stats and getting that fixed up. Been trying to get through each portion of the SDK per month, while also trying to hunt down bugs and work through my to-do list. EDIT 2: My to-do list says User Stats is complete but it appears out of order alphabetically. Fine time to go through it again and check before moving on to the next portion. |
Sorry, yes it was Would it be possible for you to update the compiled windows/linux builds with the |
Haha, OK, good to know I wasn't losing it already. Yep, I use 3.2.1 source as well. I actually do have a compiled one with the changes already! This is the editor and template. As for CreateQueryAllUGCRequest, mine doesn't crash but it does produce a single-digital number which I assume is useless. That being said, the game I test it against doesn't have any UGC stuff set up so perhaps that is the right response. Sorry for the delay, my upload speed is hot garbage. |
Hmm, that's weird it crashes in your version. Not sure what the difference would be or why MinGW would cause that (if it does). Is that array is stores usable? Is it meant to be PoolIntArray in your uploadLeaderboardScore call? I will get the Linux version of these fixes compiled and uploaded today and move the test compiles I attached as live too. Not 100% sure how to test any of the UGC / leaderboard stuff without a game using them. Or is this being all done in test on Steamworks before pushing publicly? If so, I can set some stuff up to test on my game. |
Indeed, I'll try a fresh install of VS2015 and pure Godot 3.2.1 sources once more to investigate.
Steam describes the array as
Yes! You can set this up easily, no public workshop required, see the "Enabling ISteamUGC for a Game or Application" section here. EDIT: compiling from |
Haha, that is incredibly likely, sir. Looks like it's time to fix some bugs! Very cool about the workshop stuff. I will set up some dummy stuff in my game so I can test further. Glad to hear the native tools worked; it's always my go to. Yeah, not sure where the fault was but at least that's sorted and we can move onto the code portion. I'll respond back once I get some changes made and some tests run. |
Sorry for the delay, I started working on the attachLeaderboardUGC which rolled into a much larger update. I'll get it compiled, based on the .cpp / .h zip I uploaded, today and added to this issue. Once my bigger update is done, I'll re-compile and push everything to the repo. |
No worries, take your time. I'm also not sure if I just don't know how to use the methods in order, but all the Also, not sure if you've included this line:
next to https://github.com/Gramps/GodotSteam/blob/d59be5ae769341d9185c6884d7687e9be3c6ae56/godotsteam/godotsteam.cpp#L5537 in the update to be able to check the attached ugc handle. Apologies for the bombardment. |
Hey there. Hmm, I'll check into that. Also putting together a test project using all the leaderboard functions with which to write a tutorial on this all. I'll see what I dig up. I just added, per your suggestion, the |
OK, all changes and updates have been pushed to the repo and pre-compiles are being uploaded with my horribly slow upload speed. Let me know how it goes. |
Hey, seems like all the issues I've covered here are fixed. Then only inconvenience I've encountered in the new build is that all the constants are gone. |
Excellent. Yeah, originally the enums were linked as constants so everything has been changed over to correctly link the constants as constants and enums as enums. However, it might need some tweaking still. What particularly are you missing? |
My code in the new version looks like this:
In the last version, I could have just typed |
Yeah, that is pretty hideous. I will go in and re-create the enums to make them more like they were but still separated out for organization. |
I thought I updated this already but apparently I hadn't! Just pushed the changes to the repo which includes the ENUM as constants. Should fix that issue, sir! If it does not, please let me know and reopen the issue. |
I want to make use of User Generated Content, but can't because the function
https://github.com/Gramps/GodotSteam/blob/e3acb6b783644102f61609a6d658ae9716eca211/godotsteam/godotsteam.cpp#L4768
skips returning the most important piece of information from the Steam structure: m_nPublishedFileId
In other words, this line:
is missing from the linked code and makes UGC querying useless.
The text was updated successfully, but these errors were encountered: