All Projects → Gramps → Godotsteam

Gramps / Godotsteam

Licence: mit
Steam API for the Godot game engine

Projects that are alternatives of or similar to Godotsteam

DartGodot
Godot + Dart 🎯
Stars: ✭ 79 (-89.41%)
Mutual labels:  godot, godot-engine
viewport-spy
Godot editor UI to spy on what a Viewport is rendering. Useful for debugging.
Stars: ✭ 28 (-96.25%)
Mutual labels:  godot, godot-engine
godot-interpolated-camera3d
Provides an InterpolatedCamera3D node that replicates its 3.2.x functionality (and more)
Stars: ✭ 40 (-94.64%)
Mutual labels:  godot, godot-engine
Godot 2d Space Game
A 2D space exploration and mining game made with Godot and our AI framework
Stars: ✭ 462 (-38.07%)
Mutual labels:  godot, godot-engine
Godot Tiled Importer
Plugin for Godot Engine to import Tiled Map Editor tilemaps and tilesets
Stars: ✭ 488 (-34.58%)
Mutual labels:  godot, godot-engine
PostgreSQLClient
PostgreSQL connector for Godot Engine in GDScript.
Stars: ✭ 28 (-96.25%)
Mutual labels:  godot, godot-engine
Godot Android Admob Plugin
Android AdMob plugin for Godot Game Engine 3.2 or higher
Stars: ✭ 292 (-60.86%)
Mutual labels:  godot, godot-engine
godot-skills
A generic, compositional skill system for Godot Engine that uses scenes to design abilities and their effects.
Stars: ✭ 25 (-96.65%)
Mutual labels:  godot, godot-engine
Godot Next
Godot Node Extensions - Basic Node Extensions for Godot Engine
Stars: ✭ 438 (-41.29%)
Mutual labels:  godot, godot-engine
Godello
Trello inspired kanban board made with the Godot Engine and GDScript, powered by an online real-time collaborative backend (Elixir and Phoenix Channels)
Stars: ✭ 273 (-63.4%)
Mutual labels:  godot, godot-engine
Godot Power Pitch
International pitch for the Godot Game Engine, made in Godot, available in 15+ languages
Stars: ✭ 348 (-53.35%)
Mutual labels:  godot, godot-engine
Godot Steering Ai Framework
A complete framework for Godot to create beautiful and complex AI motion. Works both in 2D and in 3D.
Stars: ✭ 482 (-35.39%)
Mutual labels:  godot, godot-engine
Godot-DialogGraphPlugin
A simple Godot plugin for dialog graph creation.
Stars: ✭ 58 (-92.23%)
Mutual labels:  godot, godot-engine
fmod-gdnative
FMOD Studio integration and bindings for the Godot game engine
Stars: ✭ 102 (-86.33%)
Mutual labels:  godot, godot-engine
godot-gameshell
Godot export templates and instructions for the GameShell portable game console and other single-board computers
Stars: ✭ 34 (-95.44%)
Mutual labels:  godot, godot-engine
godot-performance-comparison
Godot performance comparison between the `3.x` and `master` branch
Stars: ✭ 12 (-98.39%)
Mutual labels:  godot, godot-engine
MySQL Module
MySQL connector to Godot Engine.
Stars: ✭ 30 (-95.98%)
Mutual labels:  godot, godot-engine
godot-unirest
Unirest in GDScript: Simplified, lightweight HTTP client library.
Stars: ✭ 32 (-95.71%)
Mutual labels:  godot, godot-engine
Godot Go
Go language bindings for the Godot Engine's GDNative API.
Stars: ✭ 254 (-65.95%)
Mutual labels:  godot, godot-engine
Gut
Godot Unit Test. Unit testing tool for Godot Game Engine.
Stars: ✭ 670 (-10.19%)
Mutual labels:  godot, godot-engine

GodotSteam for Godot Engine

Steam API for the Godot game engine (version 3.0 - 3.2.3). For the Windows, Linux, and Mac platforms.

Additional flavors include: Godot 2.x, Server, and GDNative.

Documentation

Documentation is available here: https://gramps.github.io/GodotSteam/

You can also check out the Search Help section inside Godot Engine after compiling it with GodotSteam.

Current Build

You can download pre-compiled versions (currently v3.8.1) of this repo here: https://github.com/Gramps/GodotSteam/releases

Version 3.8.2 Changes

  • Added: different avatar constants
  • Changed: array deletions for Clang, thanks to thisismike97
  • Changed: initializing char text, thanks to thisismike97
  • Fixed: createQueryUserUGCRequest being commented out accidentally
  • Fixed: logic check for setOverlayNotificationPosition, thanks to thisismike97
  • Fixed: UTF8 not being handled correctly in some UGC functions, thanks to EIREXE

Version 3.8.1 Changes

  • Added: extra newline beween each class section for readability
  • Added: new signal, steamworks_error, currently used for call results failures
  • Changed: cleared most items from to-do list
  • Changed: getSyncPlatforms now returns a dictionary with the bitwise and full name version of the platform
  • Changed: separated callbacks and call results in the godotsteam.cpp into two categories

Version 3.8 Changes

  • Added: default argument to steamInit to pull all current stats or not, defaults to true so no one has to change anything
  • Added: new SteamNetworkingMessages class; with functions, callbacks, constants, and enums
  • Added: all missing functions due to 5 argument limit in Godot
  • Changed: filterText updated to match new SDK 1.50 function
  • Changed: HTTP class setCookie to setHTTPCookie to prevent confusion with HTML setCookie
  • Changed: moved fileLoadDialogReponse into html_file_open_dialog callback as it must follow the call anyway
  • Fixed: retrieveConnectionDetails and getAllLobbyData functions
  • Fixed: (probably) various NetworkingSockets and NetworkingUtils functions

Known Issues

  • Using MinGW causes crashes. I strong recommend you do not use MinGW to compile at this time.

Quick How-To

  • Download this repository and unpack it.
  • Download and unpack the Steamworks SDK; this requires a Steam developer account.
  • Download and unpack the Godot source; preferably 3.2.3.
  • Move the following to godotsteam/sdk/:
    sdk/public/
    sdk/redistributable_bin/
  • The repo's directory contents should now look like this:
    godotsteam/sdk/public/*
    godotsteam/sdk/redistributable_bin/*
    godotsteam/SCsub
    godotsteam/config.py
    godotsteam/godotsteam.cpp
    godotsteam/godotsteam.h
    godotsteam/register_types.cpp
    godotsteam/register_types.h
  • Now move the "godotsteam" directory into the "modules" directory of the unpacked Godot Engine source.

  • Recompile for your platform:

  • When recompiling the engine is finished do the following before running it the first time:

    • Copy the shared library (steam_api), for your OS, from sdk/redistributable_bin/ folders to the Godot binary location (by default in the godot source /bin/ file but you can move them to a new folder).
    • Create a steam_appid.txt file with your game's app ID or 480 in this folder. Necessary if the editor or game is run outside of Steam.
  • The finished hierarchy should look like this (if you downloaded the pre-compiles, the editor files go in place of these tools files, which are the same thing):

    • Linux 32/64-bit
    libsteam_api.so
    steam_appid.txt
    ./godot.linux.tools.32 or ./godot.linux.tools.64
    
    • OSX
    libsteam_api.dylib
    steam_appid.txt
    ./godot.osx.tools.32 or ./godot.osx.tools.64
    
    • Windows 32-bit
    steam_api.dll
    steam_appid.txt
    ./godot.windows.tools.32.exe
    
    • Windows 64-bit
    steam_api64.dll
    steam_appid.txt
    ./godot.windows.tools.64.exe
    
  • Lack of the Steam API DLL/SO/DyLib (for your respective OS) or the steam_appid.txt will cause it fail and crash when testing or running the game outside of the Steam client.

    • NOTE: For OSX, the libsteam_api.dylib and steam_appid.txt must be in the Content/MacOS/ folder in your application zip or the game will crash.
    • NOTE: For Linux, you may have to load the overlay library for Steam overlay to work:
    export LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so;~/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so
    
    or 
    
    export LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so;
    export LD_PRELOAD=~/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so;
    

    This can be done in an .sh file that runs these before running your executable. This issue may not arise for all users and can also just be done by the user in a terminal separately.

From here you should be able to call various functions of Steamworks. You should be able to look up the functions in Godot itself under the search section. In addition, you should be able to read the Steamworks API documentation to see what all is available and cross-reference with GodotSteam.

  • When uploading your game to Steam, you must upload your game's executable and Steam API DLL/SO/DyLIB (steam_api.dll, steam_api64.dll, libsteam_api.dylib, and/or libsteam_api.so). Do not include the steam_appid.txt or any .lib files as they are unnecessary.

Donate

Pull-requests are the best way to help the project out but you can also donate through Patreon or Paypal!

License

MIT license

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].