otavepto / gbe_fork

Fork of https://gitlab.com/Mr_Goldberg/goldberg_emulator
https://gitlab.com/Mr_Goldberg/goldberg_emulator
GNU Lesser General Public License v3.0
183 stars 51 forks source link

Make use of custom broadcast ip #233

Open qwertysmosh opened 1 week ago

qwertysmosh commented 1 week ago

It could be an alternative to VPN, allowing us to even create our own gaming community similar to how dedicated servers work.

This way it'll work on any game aslong as the server stays up & running, something like a GBE Dedicated Server running in a Linux environment or whatever OS you use for your PC server.

• 1.) Server runs a CLI that opens the listen port specified in configs.main.ini (which is 47584 by default) via localhost. • 2.) Receive connection from client using a VPS or tunneling software that will proxy your localhost and give you a public IP address. • 3.) Have all clients send connections to that Domain name or IP address listed in the custom_broadcast.txt

Check out playit.gg... Experiment with it and get the idea what I'm saying. If you aren't around, your friends are still able to play online without having you open ports, run the game and wait for you to host!

One more thing to note, is to let it accept any steam_appid but only show players running games with the same App ID.

elyashivhazan commented 1 week ago

i know github isnt a forum

couldnt u just host ur own wiregurd,open vpn or zerotire-moon on ur pc and port foreword that? lets say this server is written then u or one of ur friends still needs to host and open ports just like a vpn with wiregurd/open vpn/zt1

did i understand ur suggestion?

qwertysmosh commented 1 week ago

Only one person needs to host a centralized server and everyone goes through it to see eachother. Your friends won't need to install and configure anything.

One method is to send your friends a portable preconfigured client, have them run it and voila they're connected to your server!

What you're saying is 100% accurate, minus the portforwarding. You won't need to forward ports and expose your IP address to the public since we're going to be using tunneling which is safer than setting up a proxy yourself. My ISP also uses CGNAT so no portforwarding for me.

Speaking of Lanemu... I tried everything to make it work behind CGNAT to no avail. If Lanemu dev can provide us with a CLI server that can point to localhost:port then maybe it'll work with tunneling.

Detanup01 commented 1 week ago

Nemir's emu has an option for signaling server and stuff. Because I still learning networking in that level I still trying to implement that in C# [easy way for me] If you know C++ then feel free to create a PR I will check myself and try to understand the code.

elyashivhazan commented 1 week ago

Only one person needs to host a centralized server and everyone goes through it to see eachother. Your friends won't need to install and configure anything.

One method is to send your friends a portable preconfigured client, have them run it and voila they're connected to your server!

What you're saying is 100% accurate, minus the portforwarding. You won't need to forward ports and expose your IP address to the public since we're going to be using tunneling which is safer than setting up a proxy yourself. My ISP also uses CGNAT so no portforwarding for me.

so ur trying to eliminate the need to install a "third party" software? is that all the point of creating a server? because tunneling will still need a central server which means port forwarding by someone unless the developers of this emu r going to host one public proxy for us all. take a look at webrtc u still need a server for the browser to create that connection or even nintendo solution for game servers.

Edit: never mind u could just use a third party service for tunneling and implement that. that could help groups that none can host on a vps/home and for those who can r still not locked to that service.