-
-
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
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 :) |
- if / elseif, to be clear only one clause works - Darwin is also Unix (but doesn't make sense to load .so on Darwin) - Windows 64-bit is not always x86_64 (Windows/aarch64 is coming)
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