diff --git a/addons/godotsteam/androidarm64/libgodotsteam.android.template_debug.arm64.so b/addons/godotsteam/androidarm64/libgodotsteam.android.template_debug.arm64.so new file mode 100644 index 0000000..8bc6dd9 Binary files /dev/null and b/addons/godotsteam/androidarm64/libgodotsteam.android.template_debug.arm64.so differ diff --git a/addons/godotsteam/androidarm64/libgodotsteam.android.template_release.arm64.so b/addons/godotsteam/androidarm64/libgodotsteam.android.template_release.arm64.so new file mode 100644 index 0000000..dd1fd69 Binary files /dev/null and b/addons/godotsteam/androidarm64/libgodotsteam.android.template_release.arm64.so differ diff --git a/addons/godotsteam/androidarm64/libsteam_api.so b/addons/godotsteam/androidarm64/libsteam_api.so new file mode 100644 index 0000000..bbe5f50 Binary files /dev/null and b/addons/godotsteam/androidarm64/libsteam_api.so differ diff --git a/addons/godotsteam/godotsteam.gdextension b/addons/godotsteam/godotsteam.gdextension new file mode 100644 index 0000000..450b1b4 --- /dev/null +++ b/addons/godotsteam/godotsteam.gdextension @@ -0,0 +1,28 @@ +[configuration] +entry_symbol = "godotsteam_init" +compatibility_minimum = "4.4" + +[libraries] +android.debug.arm64 = "res://addons/godotsteam/androidarm64/libgodotsteam.android.template_debug.arm64.so" +android.release.arm64 = "res://addons/godotsteam/androidarm64/libgodotsteam.android.template_release.arm64.so" +linux.debug.arm64 = "res://addons/godotsteam/linuxarm64/libgodotsteam.linux.template_debug.arm64.so" +linux.debug.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so" +linux.debug.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so" +linux.release.arm64 = "res://addons/godotsteam/linuxarm64/libgodotsteam.linux.template_release.arm64.so" +linux.release.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so" +linux.release.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so" +macos.debug = "res://addons/godotsteam/osx/libgodotsteam.macos.template_debug.dylib" +macos.release = "res://addons/godotsteam/osx/libgodotsteam.macos.template_release.dylib" +windows.debug.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll" +windows.debug.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll" +windows.release.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll" +windows.release.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll" + +[dependencies] +android.arm64 = { "res://addons/godotsteam/androidarm64/libsteam_api.so": "" } +linux.arm64 = { "res://addons/godotsteam/linuxarm64/libsteam_api.so": "" } +linux.x86_64 = { "res://addons/godotsteam/linux64/libsteam_api.so": "" } +linux.x86_32 = { "res://addons/godotsteam/linux32/libsteam_api.so": "" } +macos.universal = { "res://addons/godotsteam/osx/libsteam_api.dylib": "" } +windows.x86_64 = { "res://addons/godotsteam/win64/steam_api64.dll": "" } +windows.x86_32 = { "res://addons/godotsteam/win32/steam_api.dll": "" } \ No newline at end of file diff --git a/addons/godotsteam/godotsteam.gdextension.uid b/addons/godotsteam/godotsteam.gdextension.uid new file mode 100644 index 0000000..5c29565 --- /dev/null +++ b/addons/godotsteam/godotsteam.gdextension.uid @@ -0,0 +1 @@ +uid://xa5gtvqdowmw diff --git a/addons/godotsteam/license.md b/addons/godotsteam/license.md new file mode 100644 index 0000000..ecadf79 --- /dev/null +++ b/addons/godotsteam/license.md @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2015-Current | GP Garcia, Chris Ridenour, and Contributors + +View all contributors at https://godotsteam.com/contribute/contributors/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so b/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so new file mode 100644 index 0000000..ed64893 Binary files /dev/null and b/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so differ diff --git a/addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so b/addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so new file mode 100644 index 0000000..4ed3f37 Binary files /dev/null and b/addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so differ diff --git a/addons/godotsteam/linux32/libsteam_api.so b/addons/godotsteam/linux32/libsteam_api.so new file mode 100644 index 0000000..ce21a66 Binary files /dev/null and b/addons/godotsteam/linux32/libsteam_api.so differ diff --git a/addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so b/addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so new file mode 100644 index 0000000..79ce18b Binary files /dev/null and b/addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so differ diff --git a/addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so b/addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so new file mode 100644 index 0000000..4addfa5 Binary files /dev/null and b/addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so differ diff --git a/addons/godotsteam/linux64/libsteam_api.so b/addons/godotsteam/linux64/libsteam_api.so new file mode 100644 index 0000000..ce21a66 Binary files /dev/null and b/addons/godotsteam/linux64/libsteam_api.so differ diff --git a/addons/godotsteam/linuxarm64/libgodotsteam.linux.template_debug.arm64.so b/addons/godotsteam/linuxarm64/libgodotsteam.linux.template_debug.arm64.so new file mode 100644 index 0000000..cf157b0 Binary files /dev/null and b/addons/godotsteam/linuxarm64/libgodotsteam.linux.template_debug.arm64.so differ diff --git a/addons/godotsteam/linuxarm64/libgodotsteam.linux.template_release.arm64.so b/addons/godotsteam/linuxarm64/libgodotsteam.linux.template_release.arm64.so new file mode 100644 index 0000000..858c2f3 Binary files /dev/null and b/addons/godotsteam/linuxarm64/libgodotsteam.linux.template_release.arm64.so differ diff --git a/addons/godotsteam/linuxarm64/libsteam_api.so b/addons/godotsteam/linuxarm64/libsteam_api.so new file mode 100644 index 0000000..8a874d3 Binary files /dev/null and b/addons/godotsteam/linuxarm64/libsteam_api.so differ diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_debug.dylib b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.dylib new file mode 100644 index 0000000..2ce8cdd Binary files /dev/null and b/addons/godotsteam/osx/libgodotsteam.macos.template_debug.dylib differ diff --git a/addons/godotsteam/osx/libgodotsteam.macos.template_release.dylib b/addons/godotsteam/osx/libgodotsteam.macos.template_release.dylib new file mode 100644 index 0000000..838986b Binary files /dev/null and b/addons/godotsteam/osx/libgodotsteam.macos.template_release.dylib differ diff --git a/addons/godotsteam/osx/libsteam_api.dylib b/addons/godotsteam/osx/libsteam_api.dylib new file mode 100644 index 0000000..0ad8ffc Binary files /dev/null and b/addons/godotsteam/osx/libsteam_api.dylib differ diff --git a/addons/godotsteam/readme.md b/addons/godotsteam/readme.md new file mode 100644 index 0000000..4abf99e --- /dev/null +++ b/addons/godotsteam/readme.md @@ -0,0 +1,87 @@ +# GodotSteam for GDExtension | Community Edition +An ecosystem of tools for [Godot Engine](https://godotengine.org) and [Valve's Steam](https://store.steampowered.com). For the Windows, Linux, and Mac platforms. + + +Additional Flavors +--- +Standard Module | Standard Plug-ins | Server Module | Server Plug-ins | Examples +--- | --- | --- | --- | --- +[Godot 2.x](https://codeberg.org/godotsteam/godotsteam/src/branch/godot2) | [GDNative](https://codeberg.org/godotsteam/godotsteam/src/branch/gdnative) | [Server 3.x](https://codeberg.org/godotsteam/godotsteam-server/src/branch/godot3) | [GDNative](https://codeberg.org/godotsteam/godotsteam-server/src/branch/gdnative) | [Skillet](https://codeberg.org/godotsteam/skillet) +[Godot 3.x](https://codeberg.org/godotsteam/godotsteam/src/branch/godot3) | [GDExtension](https://codeberg.org/godotsteam/godotsteam/src/branch/gdextension) | [Server 4.x](https://codeberg.org/godotsteam/godotsteam-server/src/branch/godot4) | [GDExtension](https://codeberg.org/godotsteam/godotsteam-server/src/branch/gdextension) | [Skillet UGC Editor](https://codeberg.org/godotsteam/skillet/src/branch/ugc_editor) +[Godot 4.x](https://codeberg.org/godotsteam/godotsteam/src/branch/godot4) | --- | --- | --- | --- +[MultiplayerPeer](https://codeberg.org/godotsteam/multiplayerpeer)| --- | --- | --- | --- + + +Documentation +--- +[Documentation is available here](https://godotsteam.com/). You can also check out the Search Help section inside Godot Engine. [To start, try checking out our tutorial on initializing Steam.](https://godotsteam.com/tutorials/initializing/) There are additional tutorials, with more in the works. You can also [check out additional Godot and Steam related videos, text, additional tools, plug-ins, etc. here.](https://godotsteam.com/resources/external/) + +Feel free to chat with us about GodotSteam or ask for assistance on the [Stoat server](https://stt.gg/9DxQ3Dcd) or [IRC on Libera Chat](irc://irc.libera.chat/#godotsteam). + + +Donate +--- +Pull-requests are the best way to help the project out but you can also donate through [Github Sponsors](https://github.com/sponsors/Gramps) or [LiberaPay](https://liberapay.com/godotsteam/donate)! [You can read more about donor perks here.](https://godotsteam.com/contribute/donations/) [You can also view all our awesome donors here.](https://godotsteam.com/contribute/donors/) + + +Current Build +--- +You can [download pre-compiled versions of this repo here](https://codeberg.org/godotsteam/godotsteam/releases). + +**Version 4.17.1 Changes** + +- Changed: SCsub and config.py for ARM64 and Android +- Fixed: potential crash in disconnect_peer; thanks to ***bearlikelion*** + +[You can read more change-logs here](https://godotsteam.com/changelog/gdextension/). + + +Compatibility +--- +While rare, sometimes Steamworks SDK updates will break compatilibity with older GodotSteam versions. Any compatability breaks are noted below. Newer API files (dll, so, dylib) _should_ still work for older versions. + +Steamworks SDK Version | GodotSteam Version +---|--- +1.63 or newer | 4.17 +1.62 | 4.14 or 4.16.2 +1.61 | 4.12 to 4.13 +1.60 | 4.6 to 4.11 +1.59 | 4.6 to 4.8 +1.58a or older | 4.5.4 or older + +Versions of GodotSteam that have compatibility breaks introduced. + +GodotSteam Version | Broken Compatibility +---|--- +4.8 | Networking identity system removed, replaced with Steam IDs +4.9 | sendMessages returns an Array +4.11 | setLeaderboardDetailsMax removed +4.13 | getItemDefinitionProperty return a dictionary, html_needs_paint key 'bgra' changed to 'rbga' +4.14 | Removed first argument for stat request in steamInit and steamInitEx, steamInit returns intended bool value +4.16 | Variety of small break points, refer to [4.16 changelog for details](https://godotsteam.com/changelog/godot4/) +4.17 | Windows projects using Steam SDK 1.63 are meant to work with Proton 11 or Experimental on Linux / Steam Deck. + + +Known Issues +--- +- GDExtension for 4.4 is **not** compatible with 4.3.x or lower. Please check the versions you are using. +- Overlay will not work in the editor but will work in export projects when uploaded to Steam. This seems to a limitation with Vulkan currently. + + +Quick How-To +--- +For complete instructions on how to build the GDExtension version of GodotSteam, [please refer to our documentation's 'How-To GDExtension' section.](https://godotsteam.com/howto/gdextension/) It will have the most up-to-date information. + +Alternatively, you can just [download the pre-compiled versions in our Releases section](https://codeberg.org/godotsteam/godotsteam/releases) or [from the Godot Asset Library](https://godotengine.org/asset-library/asset/2445) and skip compiling it yourself! + + +Usage +--- +Do not use the GDExtension version of GodotSteam with any of the module versions whether it be our pre-compiled versions or ones you compile. They are not compatible with each other. + +When exporting with the GDExtension version, please use the normal Godot Engine templates instead of our GodotSteam templates or you will have a lot of issues. + + +License +--- +MIT license diff --git a/addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll b/addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll new file mode 100644 index 0000000..452b447 Binary files /dev/null and b/addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll differ diff --git a/addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll b/addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll new file mode 100644 index 0000000..9cdc7f2 Binary files /dev/null and b/addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll differ diff --git a/addons/godotsteam/win32/steam_api.dll b/addons/godotsteam/win32/steam_api.dll new file mode 100644 index 0000000..b7ae797 Binary files /dev/null and b/addons/godotsteam/win32/steam_api.dll differ diff --git a/addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll b/addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll new file mode 100644 index 0000000..0812259 Binary files /dev/null and b/addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll differ diff --git a/addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll b/addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll new file mode 100644 index 0000000..dfe5346 Binary files /dev/null and b/addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll differ diff --git a/addons/godotsteam/win64/steam_api64.dll b/addons/godotsteam/win64/steam_api64.dll new file mode 100644 index 0000000..f0a4154 Binary files /dev/null and b/addons/godotsteam/win64/steam_api64.dll differ diff --git a/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll new file mode 100644 index 0000000..0812259 Binary files /dev/null and b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll differ diff --git a/common/steam_connection/steam_connection.gd b/common/steam_connection/steam_connection.gd new file mode 100644 index 0000000..d05a68e --- /dev/null +++ b/common/steam_connection/steam_connection.gd @@ -0,0 +1,16 @@ +extends Node + +const APP_ID = "4452760" + +func _init(): + OS.set_environment("SteamAppID", APP_ID) + OS.set_environment("SteamGameID", APP_ID) + +func _ready(): + Steam.steamInit() + + var is_running = Steam.isSteamRunning() + + if !is_running: + printerr("Steam is not running") + return \ No newline at end of file diff --git a/common/steam_connection/steam_connection.gd.uid b/common/steam_connection/steam_connection.gd.uid new file mode 100644 index 0000000..6af2768 --- /dev/null +++ b/common/steam_connection/steam_connection.gd.uid @@ -0,0 +1 @@ +uid://bq12bubjof2mo