Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Secure P2P Without Dedicated Server #76

Open
JacKAsterisK opened this issue Dec 4, 2023 · 7 comments
Open

Secure P2P Without Dedicated Server #76

JacKAsterisK opened this issue Dec 4, 2023 · 7 comments

Comments

@JacKAsterisK
Copy link

I was wondering if there was a way to securely use GGPO without dedicated servers. If I'm not mistaken, games like Brawlhalla use dedicated servers to connect via IP/port. I'm no networking expert, but using NAT traversal techniques like STUN to get an IP and plug that in isn't recommended right?

I was thinking about using Steam P2P so it's not exposing the client IPs but it seems like it'd be a lot of work. If that's been done before, there's a better method, or if I could have some pointers on the best way to implement it I'd be very grateful!

@austinh1
Copy link

austinh1 commented Dec 4, 2023

I'm actually looking to do the exact same thing, so I'd also love to know if anyone's done this before.

If there isn't and you'd be interested in collaborating, let me know! It'd be awesome to have an open source version of GGPO that works with Steam's NAT punchthrough.

@JacKAsterisK
Copy link
Author

@austinh1 Glad to hear I'm not alone! I'll do some research and testing on it and let you know if I come up with anything useful. Would definitely be great to have an open source solution, but if it fights me too much I might just continue with my own custom rollback solution for my UE5 game since I already have that (mostly) working. Either way I wouldn't mind sharing my solution.

@austinh1
Copy link

austinh1 commented Dec 5, 2023

@JacKAsterisK Are you by any chance in the GGPO discord? I know of one other person that would also be interested in having GGPO work with Steam's networking, maybe we could get a group chat going to talk about it.

But yeah, sounds good! I think most people these days are going with custom solutions, so that makes a lot of sense. Still surprises me that no one hasn't written this code yet though 😆 I'm going to try my hand at writing it, but yeah I would love to know anything you find out!

@lolriley
Copy link

@JacKAsterisK Are you by any chance in the GGPO discord? I know of one other person that would also be interested in having GGPO work with Steam's networking, maybe we could get a group chat going to talk about it.

But yeah, sounds good! I think most people these days are going with custom solutions, so that makes a lot of sense. Still surprises me that no one hasn't written this code yet though 😆 I'm going to try my hand at writing it, but yeah I would love to know anything you find out!

Hey Austin, have you made any further progress on this?
I too am interested in porting GGPO over to steam's networking relay. For one, this GGPO heavily relies on Windows implementation of BSD sockets and windows types/headers. It would be nice to make the lib more cross platform friendly. And the rollback/synchronization could just be a layer on top of the actual relay/connection.

@JacKAsterisK
Copy link
Author

@JacKAsterisK Are you by any chance in the GGPO discord? I know of one other person that would also be interested in having GGPO work with Steam's networking, maybe we could get a group chat going to talk about it.
But yeah, sounds good! I think most people these days are going with custom solutions, so that makes a lot of sense. Still surprises me that no one hasn't written this code yet though 😆 I'm going to try my hand at writing it, but yeah I would love to know anything you find out!

Hey Austin, have you made any further progress on this? I too am interested in porting GGPO over to steam's networking relay. For one, this GGPO heavily relies on Windows implementation of BSD sockets and windows types/headers. It would be nice to make the lib more cross platform friendly. And the rollback/synchronization could just be a layer on top of the actual relay/connection.

Hey, we actually got it working in this fork here: https://github.com/JacKAsterisK/ggpo_steam

I was also working on a UE integration but never finished it unfortunately... Maybe I'll continue work on it at some point: https://github.com/JacKAsterisK/GGPOSteamUETemplate

@lolriley
Copy link

@JacKAsterisK Are you by any chance in the GGPO discord? I know of one other person that would also be interested in having GGPO work with Steam's networking, maybe we could get a group chat going to talk about it.
But yeah, sounds good! I think most people these days are going with custom solutions, so that makes a lot of sense. Still surprises me that no one hasn't written this code yet though 😆 I'm going to try my hand at writing it, but yeah I would love to know anything you find out!

Hey Austin, have you made any further progress on this? I too am interested in porting GGPO over to steam's networking relay. For one, this GGPO heavily relies on Windows implementation of BSD sockets and windows types/headers. It would be nice to make the lib more cross platform friendly. And the rollback/synchronization could just be a layer on top of the actual relay/connection.

Hey, we actually got it working in this fork here: https://github.com/JacKAsterisK/ggpo_steam

I was also working on a UE integration but never finished it unfortunately... Maybe I'll continue work on it at some point: https://github.com/JacKAsterisK/GGPOSteamUETemplate

That's awesome. Any chance this was built off the cross_platform branch? Or is it going to take a lot to convert this?

@JacKAsterisK
Copy link
Author

JacKAsterisK commented Dec 29, 2024

@JacKAsterisK Are you by any chance in the GGPO discord? I know of one other person that would also be interested in having GGPO work with Steam's networking, maybe we could get a group chat going to talk about it.
But yeah, sounds good! I think most people these days are going with custom solutions, so that makes a lot of sense. Still surprises me that no one hasn't written this code yet though 😆 I'm going to try my hand at writing it, but yeah I would love to know anything you find out!

Hey Austin, have you made any further progress on this? I too am interested in porting GGPO over to steam's networking relay. For one, this GGPO heavily relies on Windows implementation of BSD sockets and windows types/headers. It would be nice to make the lib more cross platform friendly. And the rollback/synchronization could just be a layer on top of the actual relay/connection.

Hey, we actually got it working in this fork here: https://github.com/JacKAsterisK/ggpo_steam
I was also working on a UE integration but never finished it unfortunately... Maybe I'll continue work on it at some point: https://github.com/JacKAsterisK/GGPOSteamUETemplate

That's awesome. Any chance this was built off the cross_platform branch? Or is it going to take a lot to convert this?

It wasn't, and unfortunately it isn't really set up to compile without steam even. Was a plan of mine if I were going to use it but I ended up making my own rollback stuff instead so I sort of stopped working on it... If you want to use the method we did though it should be easy enough to look through the commits and copy it, I don't think the changes were that much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants