-
-
Notifications
You must be signed in to change notification settings - Fork 124
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
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!
Any update on getting Castle Game Engine onto Steam? |
…EnginePaths list (they are in different unit now)
This is indeed taking us too long time :) Reviewing and merging this is still high on TODO, and one of the necessary features for engine 7.0 release. I got buried by too many other tasks. So -> I don't yet have an exact time when this will happen, but it will absolutely happen, before 7.0 release, and it's high on my list. I have just merged latest master to this branch. Testing this PR (on all compilers, platforms) is most welcome :) |
Note: Last run of automatic checks (GitHub Actions) failed at Delphi compilation of Steam example ( But I tested (interactively) now -- hm, it all seems to work, Delphi compilation of |
Next GitHub Actions run actually detected real problem: Steam units do not compile on 32-bit Raspberry Pi, which is Linux/Arm.
Linux/Arm is unsupported by Steam most likely. (I never saw Steam on Raspberry Pi, 32 or 64 bit :) It would be cool, but probably not an interesting target (too small) for games, and thus for Steam.) So in principle, we just want to make sure the code compiles and does nothing (doesn't even try to access Steam libs) on this platform. Optional bonus: Since new macOS and new Windows are both targeting Aarch64 (aka "Arm 64-bit"), Steam most surely supports macOS/Aarch64 and probably supports / will support soon Windows/Aarch64. So this is interesting to investigate and make our code as cross-platform as possible, to support at least Aarch64 if possible, on at least macOS and Windows. @eugeneloza Do you want to take a look at this? I can provide you access to test (remotely) on both 32-bit Raspberry Pi (Linux on Arm) and 64-bit Raspberry Pi (Linux on Aarch64). Let me know if you're interested :) |
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