The idea for this project began just over a year ago. I was in Barcelona, playing on my Minecraft server with my brother in California. He wanted to show me something he had built in a single-player world. Had we been on the same physical network, it would be trivial thanks to the game's "Open to LAN" feature, but over the Internet the options were not pleasant. I could try to explain over the phone how to set up port forwarding on our home router, or we could both attempt to figure out Hamachi or some other VPN. We ended up just sending screenshots, but they really didn't do the build justice.

NetherHub makes playing over the Internet as simple as playing on a LAN. When you open a LAN world, the NetherHub client automatically sets up a tunnel through a gateway server, and sends a notification to your online friends. Your friends can then see your world in their server list and connect, as if it was on their own network.

I think this project could easily become a bootstrapped business. Server costs will be low because I am not hosting game servers, just forwarding traffic, which takes very little RAM. With Minecraft among the best-selling video games of all time, the customer base is enormous. Even people who already have servers can use it to easily collaborate on planning builds, or for minigames and adventure maps.

I built NetherHub with Minecraft in mind, but it could be extended to other games in the future. Any TCP-based game with a similar "broadcast to LAN" feature could be added using my Portal tunneling protocol, and with some additional work it should be possible to do the same sort of setup for UDP games.

The tunnel server and client are open-source and are available on Github. I intend for them to be generic enough to be useful on their own, and would like to add pluggable authentication and event hooks. Due to time constraints though I only implemented a no-op authentication backend, and hard-coded the notification hooks. The NetherHub client is in a private repo DeltaWhy/nhclient - judges please contact me for access. The app currently runs on Windows and Linux, and I expect Mac will work as well but didn't have one to compile and test on.

Built With

Share this project: