Steam Integration

Posted on

Steam Achievements in The Unholy Society game
Steam UI for Achievements
Steam Achievement Test

We’re proud to present ready Steam integration in Castle Game Engine!

Features:

  • Use Steam API to
    • Control achievements (list, get, set state).
    • Get some information (country, language, VR mode, Steam Deck, whether some DLC is installed).
  • Works on all supported platforms: Windows, Linux, macOS.
  • Works with all supported compilers: FPC, Delphi.
  • Ready Pascal unit CastleSteam.
  • Ready example in the engine sources: examples/steam.
  • We have put deliberate effort into solving some technical things in a clean way: the integration doesn’t need any “wrapper” Steam library (you only need Steam DLL/SO from Valve, not anything additional), the integration code is clean and cross-platform (in particular, we use SteamAPI_ManualDispatch_GetNextCallback and friends – no assembler, no hacks to simulate C++ VMT in order to receive callbacks). This implies that our integration should “just work” on any platform supported by Steam, forever, reliably.
  • We have further plans related to this. The most immediate: release Castle Game Engine on Steam! We are finishing setting up our Steam page. Next: add more features from Steam API, like support joysticks using Steam (allows to handle any joystick type, and user can customize the handling in Steam) and Steam Deck-specific API (e.g. activate on-screen keyboard on Steam Deck).

Everything is documented on our Steam documentation page. It has also been mentioned on slides in 2 recent conferences — see Cologne FPC/Lazarus Meeting 2024 slides, Delphi Programmer’s Meeting (Polish) 2024 slides.

This big work has been largely done by the late Eugene Loza.

If you like what we do, we appreciate your donations.

Start the discussion at Castle Game Engine Forum