backroll-rs icon indicating copy to clipboard operation
backroll-rs copied to clipboard

Steam Networking Sockets transport implementation

Open james7132 opened this issue 4 years ago • 1 comments

The original reason a I/O abstraction layer via bevy_transport was to support potentially multiple I/O options where direct control over the low level communications may not be possible, particularly with the ISteamNetworkingSockets interface in the Steamworks SDK.

Right now the most mature wrapper around the Steamworks SDK is steamworks-rs, but the ISteamNetworkingSockets interface does not have bindings (see Noxime/steamworks-rs#6), and the existing ones are blocking (see Noxime/steamworks-rs#57). It does contain a Send and Sync client that can do the original ISteamNetworking interface, but according to the official Steamworks documentation, it's considered depercated and may be removed in the future:

NOTE: This API is deprecated and may be removed in a future Steamworks SDK release. Please 
use ISteamNetworkingSockets or ISteamNetworkingMessages instead. 

james7132 avatar May 30 '21 05:05 james7132

A preliminary ISteamNetworking implementation is done as of b444e03de111eb3cf2ab607f375bc5a83642e8ad. A full ISteamNetworkingSockets implementation will likely require the bindings to be present in steamworks-rs.

james7132 avatar Jun 07 '21 18:06 james7132