/steam-multiplayer-peer

Steam Sockets Multiplayer Peer for Godot 4 via GDExtension

Primary LanguageC++MIT LicenseMIT

β€œicon” Welcome to Expresso Steam Multiplayer Peer πŸ‘‹

Version Documentation License: MIT

Godot Asset Lib: https://godotengine.org/asset-library/asset/2258

Branchs Map

πŸͺΉmain: Contains C++ Plugin

πŸͺΉdemos: Same example as godot bomberman (This) But modified EnetPeer with SteamMultiplayerPeer

πŸͺΉaddon: Compiled version of the libs that are in the godot asset lib store.

πŸͺΉmodule: Same compiled version but just the addon folder, to be added as a git submodule

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

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
from godotsteam or compile it yourself
Steam Connection Steam Sockets Steam Docs
Steam's lowest connection level,
manages a connection
(It's very close to Enet,
that's why I chose this approach for the plugin)
Steam Messages Steam Docs
Without a connection idea,
the connection is managed by the lobby,
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.

Authors

πŸ‘€ Rafael Correa

πŸ‘€ Zennyth

πŸ‘€ greenfox1505

πŸ‘€ MichaelMacha

🀝 Contributing

Contributions, issues and feature requests are welcome!

Feel free to check issues page.

To suggest or discuss some project structure, feel free here discussions page

Show your support

Give a ⭐️ if this project helped you!

πŸ“ License

This project is MIT licensed.