Skip to content

Various expansions to Steamworks SDK support in GameMaker: Studio.

Notifications You must be signed in to change notification settings

padouk/steamworks.gml

 
 

Repository files navigation

Steamworks.gml

A native extension for GameMaker: Studio that implements various Steam API features not covered by the built-in functions - most importantly, P2P networking, lobbies, and matchmaking.

Quick links

Usage

  1. Set up GameMaker: Studio for Steamworks SDK development (see doc).
  2. Enable Steamworks support for desired platform(s) in Global Game Settings, "Steam" tab. Don't forget to set the game ID.
  3. Import the "Steamworks.gml" extension (from ./Steamworks.gmx/extensions) to your desired project.
  4. Have the game call steam_net_update once per step (required for steam events to dispatch).

If all is well, upon running the game you'll see Steamworks.gml initialized successfully. in the CompileForm.

Steamworks.gml failed to link with Steam API. means that either the Steam client is not running, or you have specified an incorrect App ID.

Steamworks.gml binary is not loaded. means that the DLL/DyLib/SO could not be loaded, usually due to the native extension file missing or being otherwise inaccessible.

Building

Download or clone the repository.

Create a "Steamworks" directory and place Steamworks SDK there.
You must pick a Steamworks version that matches the recommended version for your version of GameMaker (e.g. 1.42 for GMS2.3 - see helpdesk).
Steamworks' Readme.txt should be located at Steamworks/Readme.txt as result.

Windows: Open the included Visual Studio solution and order it to make a x86 build.

Linux: Run build_linux_gms#.sh. You'll need cpp:i386, gcc:i386, and g++:i386 installed.

Mac OSX: Run build_osx_gms#.sh. You'll need XCode command line tools installed.

The extension is automatically updated to reflect the functions/macros from the source code as a post-build step in the Visual Studio project (via gmxgen). Copy GmxGen.exe (build it yourself or get one from Downloads) into Steamworks.gml directory or add it to your PATH.

Meta

Author: Vadim "YellowAfterlife" Dyachenko

License: MIT https://opensource.org/licenses/mit-license.php

Special thanks

  • YoYo Games, for making and continuously improving GameMaker: Studio.
  • Russell and Peter of YoYo Games in particular, for answering my questions on native extensions.
  • Alex Fernandez, for helping build the OSX version of the extension.
  • /id/volnes, for answering my various Linux-related questions.
  • Riley Labrecque, for being a source of inspiration to making this kind of project open-source (see Steamworks.NET).

About

Various expansions to Steamworks SDK support in GameMaker: Studio.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 39.3%
  • C++ 32.0%
  • Game Maker Language 19.1%
  • NSIS 8.3%
  • Shell 1.3%