There are three components to GMSteam:
- A DLL that provides a GameMaker-compatible interface to the Steamworks API, along with some additional helper functions. This is required due to GameMaker’s strict requirements on external functions.
- GameMaker scripts corresponding to each Steamworks API function.
- A GameMaker object that handles the low-level details of interacting with the Steamworks API, specifically initialisation, receiving callback results, and shutdown.
While the focus is currently on matchmaking, there are other Steamworks APIs that are not currently available within GameMaker and these are being considered for inclusion.