expressobits / steam-multiplayer-peer

Steam Sockets Multiplayer Peer for Godot 4 via GDExtension
MIT License
191 stars 13 forks source link

Cannot create_host() (error 20) or join_host() (error 25) on macOS #9

Open cortrano opened 10 months ago

cortrano commented 10 months ago

Tested both on macOS and windows. On Widows everything works well with same code

image
143mailliw commented 9 months ago

Can confirm - this error happens on my Mac too (macOS 14 on M1 Pro)

scriptsengineer commented 9 months ago

These error combinations confirm that steam sockets is null. I don't use Mac, but perhaps I should confirm that Steam is initializing correctly before calling these functions. I'll check if we have a similar problem on godotsteam.

143mailliw commented 9 months ago

These error combinations confirm that steam sockets is null. I don't use Mac, but perhaps I should confirm that Steam is initializing correctly before calling these functions. I'll check if we have a similar problem on godotsteam.

FWIW GodotSteam picks up user personas and lobbies perfectly fine.

ntngamedev commented 6 months ago

The bug happens in Macbook M2 Pro also.

dev-bre commented 2 months ago

This is still happening. Is there any way to fix the MacOS build?

brogan89 commented 2 months ago

This is still happening. Is there any way to fix the MacOS build?

Currently, no. It seems to be an issue with ENet and not this repo. If you just using only using gdscript, then you out of luck for now I'm afraid.

In C# there are more options: Even the vanilla Enet in C# doesn't work on macOS. The only way I got my networking working on windows, macOS, and Linux is using LiteNetLib. Raknet will probably work as well, I haven't tested that yet because LiteNetLib unblocked me. You just need to roll out your own networking stack and not use any Godot networking features.

Even Steamworks.Net doesn't work on macOS, its a damn shame, but it is what it is. I don't have enough C++ knowledge to try fix it :(