Closed roblade closed 2 years ago
Try using my fork of greenworks
Try using my fork of greenworks
Hi Gabriel . In your fork the lobby methods works?
In this repo the last update/releases/version was in 2018. And there is no none method lobby in last greenworks-v0.13.0.
In the last build from this site/repo exist Lobby methods https://greenworks-prebuilds.armaldio.xyz/
Even so, there are still essential methods missing. The method "greenworks.setLobbyData" work only with lobby owner. Then, it is not possible to have communication in a lobby
There needs use/export these two methods:
ISteamMatchmaking::GetLobbyMemberData = greenworks.getLobbyMemberData
ISteamMatchmaking::SetLobbyMemberData = greenworks.setLobbyMemberData
Then, when other user updates the data, it can be accessed here
greenworks.on('lobby-data-update', function(m_ulSteamIDLobby, m_ulSteamIDMember, m_bSuccess ) {
log('lobby-data-update');
log( m_ulSteamIDLobby ); //String: the Steam ID of the Lobby.
log( m_ulSteamIDMember ); //String: Steam ID of either the member whose data changed, or the room itself.
log( m_bSuccess ); //Boolean: whatever the lobby data was successfully changed.
});
I've been in this role for a week. Thought about trying to find a way to use emscripten. Or run a separate C++/C# application. For now what can i do is open a new TCP connection, because the P2P connection is useless without the methods GetLobbyMemberData, SetLobbyMemberData. I can't even create a new handshaking because there's no communication.
https://partner.steamgames.com/doc/features/multiplayer/matchmaking https://github.com/greenheartgames/greenworks/blob/master/docs/matchmaking.md https://github.com/greenheartgames/greenworks/blob/master/docs/events.md
Hi Gabriel . In your fork the lobby methods works?
My fork has no changes in the matchmaking/lobby part.
Thought about trying to find a way to use emscripten.
I'm not an steamworks sdk expert but I think this is very hard to achieve since the sdk uses multiple processes and probably uses in-process communication, not supported by emscripten. If it uses TCP you will have to handle through a WebSockify server.
Or run a separate C++/C# application.
Yeah, it's a very good approach. Maybe edge.js
does the job.
Good suggestion. All I needed was just 3 communications to perform a Webrtc handshake. I had created a build with the C++ code that ended up with only 13kb. I know little C++, I just create the delta loop and managed to get the name and ID. I didn't even finish not even one TCP because the problem of separate application with TCP/gRPC/etc or this Edge is that Steam overlay will be missing.
I also had created TCP with node js/NET to use with Greenworks. As the owner can publish in the lobby, he can send the ip and port for everyone to connect. With that, later it would be possible scale to create another WEbrtc connection if necessary.
However, I realized that there is another essential function missing. It is not possible to list and join non-friends' lobbies. So that rules out using Greenworks in my case.
I kept searching and found GodotSteam, a Steamworks Module for Godot Engine. I found it better than Steamworks.NET and Facepunch.Steamworks for Unity. It is the only one with all methods implemented and with current SDK 1.53. Another advantage is the 30Mb single executable
Godot also allows JS<>Godot communication It is possible to use an Axios within Godot if exporting in HTML5 However, with the Steam SDK I could not export to HTML5 Maybe because of this problem you highlighted
Anyway, it is much easier and faster to learn GDScript than C++, or export, or acess, all these functions from the SDK. And it's also something better tested than making a gambiarra. ^^
Thanks for reply
@Gurigraphics I started a new project to enable steamworks on JS: https://github.com/ceifa/steamworks.js And yes, steam overlays it's working :D
@Gurigraphics I started a new project to enable steamworks on JS: https://github.com/ceifa/steamworks.js And yes, steam overlays it's working :D
I'll test this... \o/
...--Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.Am 17.01.22, 13:42 schrieb Gurigraphics @.***>:
@Gurigraphics I started a new project to enable steamworks on JS: https://github.com/ceifa/steamworks.js And yes, steam overlays it's working :D
I'll test this... \o/ —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>
The version of the greenworks that i used is lastnew. Node version is v16.13.0. An error was produced when is used it in my project.
error info: App threw an error during load Error: The module '\?\G:\ElectronDemo\greenworks\lib\greenworks-win64.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 93. This version of Node.js requires NODE_MODULE_VERSION 98. Please try re-compiling or re-installing the module (for instance, using (G:\ElectronDemo\greenworks\greenworks.js:15:18)
at Module._compile (node:internal/modules/cjs/loader:1110:14)
[6800:1230/140440.323:ERROR:gpu_init.cc(453)] Passthrough is not supported, GL is disabled, ANGLE is
npm rebuild
ornpm install
). at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1800) at Object.Module._extensions..node (node:internal/modules/cjs/loader:1170:18) at Object.func [as .node] (node:electron/js2c/asar_bundle:5:1800) at Module.load (node:internal/modules/cjs/loader:982:32) at Module._load (node:internal/modules/cjs/loader:823:12) at Function.c._load (node:electron/js2c/asar_bundle:5:13331) at Module.require (node:internal/modules/cjs/loader:1006:19) at require (node:internal/modules/cjs/helpers:93:18) at Object.