Ismoh / NoitaMP

WIP! Not working, atm! NoitaMP, Noita Multiplayer: First synchronous multiplayer mod for Noita!
GNU General Public License v3.0
116 stars 12 forks source link

Developer want to add Steam API / integration #58

Open Ismoh opened 2 years ago

Ismoh commented 2 years ago

TBC

pakeke-constructor commented 2 years ago

Hello- I hope you're doing well. I've written up a really quick and dirty C wrapper for the SteamNetworkSockets functions. It requires the steam SDK, and all of it is really untested.

I just thought I'd let you know since you have shown interest in it https://github.com/pakeke-constructor/steam_api_wrap

Ismoh commented 2 years ago

Thanks a ton! I really appreciate it a lot! I am still not quite sure, how to use it, but I'll give you a shout, when I am working on it. Anything I can help you with?

pakeke-constructor commented 2 years ago

No- I think I'll be fine for the moment. I'm having trouble getting it working actually- I'm not very well-versed in c++, especially when it comes to ABIs and linking and stuff.

I also found someone else's implementation which seems a lot more complete than mine (And it looks like it actually works; although it doesn't have the sockets, it's a step in the correct direction) https://github.com/EvilPudding/steam.candle/blob/master/steam_api_c.h So maybe you could try check this out. Friendly reminder to also check out this page on FFI: https://luajit.org/ext_ffi.html

Ismoh commented 2 years ago

Steam.Candle does only provide depricated networking api. ISteamNetworkingSocket is the new, but the deprecated one is still available. Better than nothing. Did you tried the deprecated one yourself (in your repo)? @pakeke-constructor

Deprecated one: https://partner.steamgames.com/doc/api/ISteamNetworking

New one: https://partner.steamgames.com/doc/api/ISteamNetworkingSockets

Ismoh commented 1 year ago

There is hope! https://github.com/uspgamedev/luasteam/issues/26#issuecomment-1454351075

Ismoh commented 9 months ago

On hold until #67 and #133 was merged into develop.

Furrior commented 7 months ago

Isnt this exactly what you want? https://github.com/EvaisaDev/noita-online

Ismoh commented 7 months ago

no, doesn't fit to NoitaMP.

We might be able to reuse stuff, but plain integration won't work.

Ismoh commented 7 months ago

Isnt this exactly what you want? https://github.com/EvaisaDev/noita-online

https://luasteam.readthedocs.io/en/stable/networking_sockets.html#isteamnetworkingsockets

As I am having issues with eNet and people need to forward ports, Steam would be a good replacement, but then it's only working with steam, what I don't really like.

Both implementations would be awesome, but would need yet another rework :uff:

Myzumi commented 7 months ago

Steam is something that kinda works, or it just dosen't. When their servers are down then what? You need to wait for then to get then back up (and their weekly maintanance)

I like the idea of making a own way to connect, that way you could even introduce somekind of server software (which i planned to do) to allow even more members if possible or somekind of optimizing server sideded

Ismoh commented 7 months ago

That's true! Steam should be an alternative, no replacement.

Unfortunately NoitaMP is hardcoded P2P. You still have a server and clients, but if you want to host a server, you need to run Noita, because of hardcoded Noita API functions. I am sure there won't be a cli NoitaMP version :(

Unless you reverse engineer Noita and rework API functions, but hf gl!

Myzumi commented 7 months ago

Unfortunately NoitaMP is hardcoded P2P. You still have a server and clients, but if you want to host a server, you need to run Noita, because of hardcoded Noita API functions. I am sure there won't be a cli NoitaMP version :(

Thats Sad, might would have allowed for some fun gamemodes or anything server sided that dosent need any extra mods etc. but oh well.

Unless you reverse engineer Noita and rework API functions, but hf gl!

I mean its possible for me, but i don't think anyone wants to "extra" mod their game and kinda break other mod support etc.

Ismoh commented 7 months ago

I mean its possible for me, but i don't think anyone wants to "extra" mod their game and kinda break other mod support etc.

I have no time for that! :D

Myzumi commented 7 months ago

I mean its possible for me, but i don't think anyone wants to "extra" mod their game and kinda break other mod support etc.

I have no time for that! :D

I have plenty of time, but reverse engineering something isn't really worth it, so if you need anything other, i have time ;)

JamesGamesALot commented 1 month ago

https://github.com/EvaisaDev/noita-online hope this helps

Ismoh commented 1 month ago

no, doesn't fit to NoitaMP.

We might be able to reuse stuff, but plain integration won't work.