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
Castle Steam #471
base: master
Are you sure you want to change the base?
Castle Steam #471
Conversation
Set app type as console in LPR not in unit
fix version usage in SteamAPI_ISteamClient_GetISteamUserStats
…Achievement, SteamAPI_ISteamUserStats_ClearAchievement
Another note: I've managed to fix 32-bit compilation in a better way, so we can still support 32-bit platforms (and potentially should support them out-of-the-box, but I don't have somewhere to test those on). We also can support MAC OSX - but again it wasn't tested. Activate that support is just uncommenting 3 lines in Also note: as in documentation, we support only SteamWorks version 155. Upgrading the version on the engine-side is trivial, but must be done manually. |
Note 2 Jenkins failures:
https://jenkins.castle-engine.io/job/castle_game_engine_delphi/job/castle-steam/
Suggested resolution: I'm cool with solving this either way, just as long as Delphi/Win32 applications compile (but possibly ignoring Steam). We don't need Steam on Win32 support, this applies to both Delphi and FPC, new games should use Win64.
Note that macOS filesystem is case-sensitive. I didn't expect here any troubles. And I see this PR doesn't touch the mentioned files at all. Suggested resolution: blame on Jenkins macOS slave hiccup, ignore, unless you have any idea. We'll see next test results. |
Please rename this to |
I've renamed the unit and potentially fixed compilation on Delphi 32 bit. Let's see if it works. I didn't see the previous error before you pointed it out - can you ping me where to look for it? |
For the errors detected on Delphi (by In section "Pull Requests (4)" ( https://jenkins.castle-engine.io/job/castle_game_engine_delphi/view/change-requests/ ) you can find 2 jobs for every PR, like this:
Admittedly there's no automatic notifications about it, except for admin (me) that gets automatic emails. You have to visit these pages manually, and/or you can also use the Atom feed (linked at the bottom of Jenkins pages, like https://jenkins.castle-engine.io/job/castle_game_engine_delphi/view/change-requests/ ). For the errors detected on FPC (by Note: I have just changed the configuration of this on Jenkins. So the above explanation is valid... only since now :) (Previously, by accident, PRs section was not visible, and only branches were visible, but we excluded branches that are duplicated by PRs. It makes more sense now, and it probably doesn't matter how it was before :) ) ( For security, it only processes PRs coming from branches in our repository, not forks. ) |
Interesting... I still see no failures for In What I mean - I still can't see if the build with the last commits has passed or failed. |
Oh, I see - it's in the crossed-out |
Short answer: Keep checking in the future are Longer answer: Sorry, that's because I changed Jenkins configuration right before giving you the answer in #471 (comment) . In effect, I created a confusing state for you, by my bad timing :) To explain it better, our current Jenkins configuration (since my post #471 (comment) ) is:
Note: all information above applies equally to FPC and Delphi tests, so https://jenkins.castle-engine.io/job/castle_game_engine_organization/job/castle-engine/ and https://jenkins.castle-engine.io/job/castle_game_engine_delphi/ . |
Oh, I've just noticed that |
Yes, agreed (make |
…me to do anything with these files floating modified, and reverting these changes makes them modified again immediately
|
I guess that Windows Jenkins slave was rebooted at a wrong moment. I removed the directory |
Now it got interrupted externally?
I've restarted the build again. |
This happens when one job was interrupted because another parallel job failed. E.g. if Windows and Linux builds run in parallel, and Jenkins detects an error in Windows job, it immediately interrupts all other jobs (e.g. Linux job, even if it seemed to be OK so far). That's because we specify So when you see message like above, look for other bug. Look at the boxes table -- and find the first task that "Failed" (red) not just "Aborted" . Instead of boxes (which seem to display now only for last build -- weird) you can also look at tasks as a nested list, https://jenkins.castle-engine.io/job/castle_game_engine_organization/job/castle-engine/view/change-requests/job/PR-471-merge/17/flowGraphTable/ . In that case, the step that failed is "sh - (5 min 53 sek in self)" within "stage block ((Delphi) Build Examples (Win64)) - (5 min 53 sek in block)". Clicking on "Console Output" of it we get https://jenkins.castle-engine.io/job/castle_game_engine_organization/job/castle-engine/view/change-requests/job/PR-471-merge/17/execution/node/198/log/ with error compiling And that's my fault. I broke So, there's nothing to do (restarting the job should do the trick). But we know why it failed :) |
Ah, and it seems like everything just passed |
I guess that was another "big" job, because that was the only test that failed for this PR. But yeah, looks like it's fixed now. Got the information for the future :) |
…ported OS Thanks to Peardox for testing on Win32!
The primary changes are contained in
src/services/steam
:castlesteam.pas
- An interface for user to interact with. Creates an instance ofTCastleSteam
whenInitSteam
is called and keeps it for the duration of the game, automatically freeing everything and logging out of Steam infinalization
. Others are internal units.castleinternalsteamapi.pas
- function calls to Steam API.castleinternalsteamconstantsandtypes.pas
- constants and types translated from Steam API, mostly unused.steamcallback.pas
- mostly a copy of Relfos' Steam callback definitions (MIT license), defines memory structures necessary to receive a struct from Steam API.And a usage example in
examples/steam
- allows to get/set/clear/indicate achievements.Note: we may no longer need a523d85