All Projects → YAL-GameMaker → steamworks.gml

YAL-GameMaker / steamworks.gml

Licence: other
Various expansions to Steamworks SDK support in GameMaker: Studio / GMS2.

Programming Languages

C++
36643 projects - #6 most used programming language
NSIS
403 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to steamworks.gml

hookey
Enables all the DLCs. Like Creamapi but just for linux and a subset of Paradox games.
Stars: ✭ 87 (+19.18%)
Mutual labels:  steamworks
Unity Script Collection
A maintained collection of useful & free unity scripts / library's / plugins and extensions
Stars: ✭ 3,640 (+4886.3%)
Mutual labels:  steamworks
sk
💀 GameMaker skeleton animation
Stars: ✭ 19 (-73.97%)
Mutual labels:  gamemaker
Facepunch.Steamworks-MonoGame-Integration
Facepunch.Steamworks + MonoGame.Framework = the easiest SteamAPI Integration for your app!
Stars: ✭ 18 (-75.34%)
Mutual labels:  steamworks
Steamworks-2017
SERT's code for the 2017 Steamworks game
Stars: ✭ 13 (-82.19%)
Mutual labels:  steamworks
Steamworks.net
Steamworks wrapper for Unity / C#
Stars: ✭ 1,855 (+2441.1%)
Mutual labels:  steamworks
steamworks
Steamworks API wrapper for Go
Stars: ✭ 26 (-64.38%)
Mutual labels:  steamworks
DDDEditorGMS2
General purpose game editor made in Game Maker Studio 2. The basis for a lot of the tools I make.
Stars: ✭ 22 (-69.86%)
Mutual labels:  gamemaker
Steamworks.NET-GameServerTest
GameServer test project for Steamworks.NET
Stars: ✭ 26 (-64.38%)
Mutual labels:  steamworks
handytools
A series of libraries to extend GameMaker 2022 LTS
Stars: ✭ 45 (-38.36%)
Mutual labels:  gamemaker
steam.py
An async python wrapper to interact with the Steam API and its CMs
Stars: ✭ 74 (+1.37%)
Mutual labels:  steamworks
steamworks
Steamworks implementation in Go that doesn't require CGo
Stars: ✭ 21 (-71.23%)
Mutual labels:  steamworks
blur-shaders
A collection of blur shader examples, with a written tutorial.
Stars: ✭ 33 (-54.79%)
Mutual labels:  gamemaker
Chat-LoggerPP
Steam Chat Logger
Stars: ✭ 13 (-82.19%)
Mutual labels:  steamworks
event-horizon
Custom global event firing/subscribing in GameMaker: Studio 2
Stars: ✭ 16 (-78.08%)
Mutual labels:  gamemaker
idle master extended
🃏 Get your Steam Trading Cards the Fast Way (Fast Mode Extension 🚀)
Stars: ✭ 1,771 (+2326.03%)
Mutual labels:  steamworks
Facepunch.steamworks
Another fucking c# Steamworks implementation
Stars: ✭ 1,945 (+2564.38%)
Mutual labels:  steamworks
stitch
A Gamemaker Studio 2 Pipeline Development Kit. A CLI and Node.JS API for creating GMS2 pipelines. Includes cross-project imports, batch-creating/updating sprites and sounds, texture page management, and more.
Stars: ✭ 54 (-26.03%)
Mutual labels:  gamemaker
textboxy
Simple textboxes for Game Maker Studio 2
Stars: ✭ 58 (-20.55%)
Mutual labels:  gamemaker
Sublime-GameMaker-Studio-Language-Bundle
A sublime bundle for GameMaker Language (GML)
Stars: ✭ 32 (-56.16%)
Mutual labels:  gamemaker

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.

Build

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_sdk_135a directory and place Steamworks SDK 1.35a there (for GMS1).

Create a steamworks_sdk_142 directory and place Steamworks SDK 1.42 there (for GMS2).

For both directories, Readme.txt should be directly inside the directory (steamworks_sdk_135a/Readme.txt) - no subdirectories!

  • Windows:

    • GMS1: Open the included Visual Studio solution, switch the solution platform (in toolbar) to x86, switch configuration (also in toolbar) to GMS1 Release, and pick menu:Build➜Build Solution.
    • GMS2: Same as above, but with GMS2 Release configuration.
    • GMS2.3 with x64 runtime: Same as above, but with GMS2 Release configuration and x64 platform.

    Note: If you are adding new functions, you'll generally want to set up GmxGen to avoid adding them to extensions by hand. Once set up (extract GmxGen.exe next to vcxproj file), GmxGen will be ran automatically in post-build step.

  • Linux:

    • GMS1: Run build_linux_gms1.sh. You'll need cpp:i386, gcc:i386, and g++:i386 installed.
    • GMS2: Run build_linux_gms2.sh.
  • Mac:

    • GMS1: Apple dropped support for x86 binaries that GMS1 exports! My condolences.
    • GMS2: Run build_mac_gms2.sh.

    Note: Due to Apple's recent notarization changes, native extensions will no longer load when running from IDE on VM, as both application and all of its dependencies must be signed with same certificate.

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).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].