Initial push

This commit is contained in:
N0ble 2025-07-21 20:38:11 -06:00
commit 3240f07946
335 changed files with 11248 additions and 0 deletions

View file

@ -0,0 +1,22 @@
[configuration]
entry_symbol = "godotsteam_init"
compatibility_minimum = "4.4"
[libraries]
macos.debug = "res://addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework"
macos.release = "res://addons/godotsteam/osx/libgodotsteam.macos.template_release.framework"
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"
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.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"
[dependencies]
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": "" }
linux.x86_64 = { "res://addons/godotsteam/linux64/libsteam_api.so": "" }
linux.x86_32 = { "res://addons/godotsteam/linux32/libsteam_api.so": "" }

View file

@ -0,0 +1 @@
uid://d02t56dfoplvx

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>libgodotsteam.debug</string>
<key>CFBundleIdentifier</key>
<string>org.godotsteam.godotsteam</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>libgodotsteam.debug</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>4.15</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>4.15</string>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
</dict>
</plist>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>libgodotsteam</string>
<key>CFBundleIdentifier</key>
<string>org.godotsteam.godotsteam</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>libgodotsteam</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>4.15</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>4.15</string>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
~*.dll

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 Expresso Bits
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.

View file

@ -0,0 +1,87 @@
# <img src="https://raw.githubusercontent.com/expressobits/steam-multiplayer-peer/main/icon.png" alt= “icon” width="32" height="32"> Welcome to Expresso Steam Multiplayer Peer 👋
![Version](https://img.shields.io/badge/version-0.2.0-blue.svg?cacheSeconds=2592000)
[![Documentation](https://img.shields.io/badge/documentation-no-red.svg)](todo-doc)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](MIT)
See demos in:
Github: [Branch demos](https://github.com/expressobits/steam-multiplayer-peer/tree/demos)
Godot Asset Lib: https://godotengine.org/asset-library/asset/2258
## Tutorial and Learnings (How to use)
See post of Michael Macha
https://michaelmacha.wordpress.com/2024/04/08/godotsteam-and-steammultiplayerpeer/
See too on youtube videos
https://www.youtube.com/playlist?list=PLg_8mgEWE2p8ZA-AqUUJ3CYEtrRVFhl_v
Thank you Michael!
## Features
✔️ Change easy Enet peer to Steam Peer
✔️ Use Steam Sockets (Low level like enet).
✔️ GDExtension (Easy to add your project)
✔️ No dependency with GodotSteam, but demo use GodotSteam to handle connections with lobbies (See lobbies tutorial in Godot Steam [here](https://godotsteam.com/tutorials/lobbies/)).
## GodotSteam SteamMultiplayerPeer Differences
| Differences | This SteamMultiplayerPeer | GodotSteam SteamMultiplayerPeer |
|---|---|---|
| Lib Type | GDExtension, add on your project libs to use easy. | C++ module, you need to use the precompiled <br>ones from godotsteam or compile it yourself |
| Steam Connection | Steam Sockets [Steam Docs](https://partner.steamgames.com/doc/api/ISteamNetworkingSockets)<br>Steam's lowest connection level,<br>manages a connection <br>(It's very close to Enet, <br>that's why I chose this approach for the plugin) | Steam Messages [Steam Docs](https://partner.steamgames.com/doc/api/ISteamNetworkingMessages)<br>Without a connection idea,<br>the connection is managed by the lobby,<br>Need Steam lobbies. |
| TODO | | |
## Known issues
⚠️ Features No channel support currently
At some point I intend to integrate channels to be used in rpcs commands, but currently it is only necessary to use channel 0 or the default rpcs.
## In Progress
🔨 Bugs fixes
## Planneds
📅 No planned features.
<!-- ## Install
See in [Wiki](https://github.com/ExpressoBits/inventory-system/wiki) -->
## Authors
👤 **Rafael Correa**
* Twitter: [@ScriptsEngineer](https://twitter.com/ScriptsEngineer)
* Github: [@scriptsengineer](https://github.com/scriptsengineer)
👤 **Zennyth**
* Github: [@Zennyth](https://github.com/Zennyth)
👤 **greenfox1505**
* Github: [@greenfox1505](https://github.com/greenfox1505)
👤 **MichaelMacha**
* Github: [@MichaelMacha](https://github.com/MichaelMacha)
## 🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/ExpressoBits/steam-multiplayer-peer/issues).
To suggest or discuss some project structure, feel free here [discussions page](https://github.com/expressobits/steam-multiplayer-peer/discussions)
## Show your support
Give a ⭐️ if this project helped you!
## 📝 License
This project is [MIT](MIT) licensed.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,25 @@
[configuration]
entry_symbol = "steam_multiplayer_peer_init"
compatibility_minimum = 4.2
[libraries]
linux.debug.x86_64 = "./linux/libsteam-multiplayer-peer.linux.template_debug.x86_64.so"
linux.release.x86_64 = "./linux/libsteam-multiplayer-peer.linux.template_release.x86_64.so"
linux.debug.arm64 = "./linux/libsteam-multiplayer-peer.linux.template_debug.arm64.so"
linux.release.arm64 = "./linux/libsteam-multiplayer-peer.linux.template_release.arm64.so"
linux.debug.rv64 = "./linux/libsteam-multiplayer-peer.linux.template_debug.rv64.so"
linux.release.rv64 = "./linux/libsteam-multiplayer-peer.linux.template_release.rv64.so"
macos.debug = "./macos/libsteam-multiplayer-peer.macos.template_debug.universal.dylib"
macos.release = "./macos/libsteam-multiplayer-peer.macos.template_release.universal.dylib"
windows.debug.x86_32 = "./windows/steam-multiplayer-peer.windows.template_debug.x86_32.dll"
windows.release.x86_32 = "./windows/steam-multiplayer-peer.windows.template_release.x86_32.dll"
windows.debug.x86_64 = "./windows/steam-multiplayer-peer.windows.template_debug.x86_64.dll"
windows.release.x86_64 = "./windows/steam-multiplayer-peer.windows.template_release.x86_64.dll"
[dependencies]
linux.x86_64 = { "linux/libsteam_api.so": "" }
linux.arm64 = { "linux/libsteam_api.so": "" }
linux.rv64 = { "linux/libsteam_api.so": "" }
macos.universal = { "macos/libsteam_api.dylib": "" }
windows.x86_64 = { "windows/steam_api64.dll": "" }
windows.x86_32 = { "windows/steam_api.dll": "" }

View file

@ -0,0 +1 @@
uid://2kvjphhw06ra

Binary file not shown.

Binary file not shown.