# Steam Integration

**URL:** https://forum.castle-engine.io/t/steam-integration/1412
**Category:** News
**Created:** [November 1, 2024, 10:53am UTC](https://forum.castle-engine.io/t/steam-integration/1412 "2024-11-01T10:53:50Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)
#### Post date: [November 1, 2024, 10:53am UTC](https://forum.castle-engine.io/t/steam-integration/1412/1 "2024-11-01T10:53:50Z")

</div>

| [![Steam Achievements in The Unholy Society game](https://forum.castle-engine.io/uploads/default/original/2X/8/8ec88dd8addde5dfb03c57f112bf5bbb8d2a67fe.png)](https://castle-engine.io/wp/wp-content/uploads/2024/11/steam_achievement_unholy.png "Steam Achievements in The Unholy Society game") |
| [![Steam UI for Achievements](https://forum.castle-engine.io/uploads/default/original/2X/0/05d3be472102f8d3f99897107634f52ee9b1c816.png)](https://castle-engine.io/wp/wp-content/uploads/2024/11/steam_achievements_ui.png "Steam UI for Achievements") |
| [![Steam Achievement Test](https://forum.castle-engine.io/uploads/default/original/2X/6/65f7a2fb1c910c76c6d9c55bb3065fe55b44b35a.png)](https://castle-engine.io/wp/wp-content/uploads/2024/11/steam_achievement_test.png "Steam Achievement Test") |

We’re proud to present ready [Steam integration](https://castle-engine.io/steam) 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](https://github.com/castle-engine/castle-engine/tree/master/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](https://castle-engine.io/steam). It has also been mentioned on slides in 2 recent [conferences](https://castle-engine.io/conferences) — see [Cologne FPC/Lazarus Meeting 2024 slides](https://castle-engine.io/cologne2024), [Delphi Programmer’s Meeting (Polish) 2024 slides](https://castle-engine.io/zlot2024).

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

If you like what we do, we appreciate your [donations](https://castle-engine.io/donate).

---

<div class="post-metadata">

### Author: ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)
#### Post date: [December 28, 2024, 1:38pm UTC](https://forum.castle-engine.io/t/steam-integration/1412/2 "2024-12-28T13:38:12Z")

</div>


