Skip to content

Various expansions to Steamworks SDK support in GameMaker: Studio.

Notifications You must be signed in to change notification settings

LAGameStudio/steamworks.gml

 
 

Repository files navigation

Steamworks.gml

Quick links: documentation · sample project · donate

A native extension for GameMaker (GMS1, GMS2, GMS2.3+) that implements various Steam API features not covered by the built-in functions - most importantly, P2P networking, lobbies, and matchmaking.

Usage

  1. Set up GameMaker for Steamworks SDK development (GMS1, GMS2).
  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_gml_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.

Note: If you are grabbing the sample project straight from this repository, you will need to compile it first using Visual Studio (Windows) or via included .sh scripts (Mac, Linux). Sample project page has pre-compiled binaries.

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

  • Game Maker Language 42.0%
  • C++ 40.7%
  • NSIS 15.7%
  • Shell 1.6%