It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
So far I've tested and confirmed the following are working:

* Supreme Commander (+ Forged Alliance)
* Divinity Original Sin - Enhanced Edition
* Anno 1701 (+ The Sunken Dragon)
* Civilization IV (& Addons, including "Colonization")
* Quake III Arena (+ Team Arena)
* War For The Overworld
* Star Wars - Jedi Knight II
* Star Wars - Jedi Academy
* Unreal Tournament '99
* Unreal Tournament 2004
* Hammerwatch
* Factorio
* Soldier Of Fortune 2
* Scrapland (Remastered)


At this point I'm quite convinced all Quake3 engine based titles will work, because their multiplayer capabilities seem similar, if not identical.
Post edited November 07, 2022 by WinterSnowfall
avatar
WinterSnowfall: Something I should have probably mentioned earlier is that relaying UDP traffic over the internet is not all that safe. Or better said it's as safe as the game makes it to be in the first place, but since most of these things are designed with LAN multiplayer in mind, that's usually not safe at all (meaning all traffic is exchanged in cleartext and no encryption is used).

You're only exchanging game data, so it's no state secret of course, but the game code underpinning the multiplayer implementation of any games you are using may potentially be exploited to carry back nastiness onto your systems, regardless if you are behind a firewall or not.

So, caveat emptor. Since I'm using it with Wine on Linux, that's not much of a problem for me, but as a Windows user you may want to be extra careful and not do over-the-internet UDP gaming on security-critical systems. A VPN typically provides end-to-end encryption and is overall a lot more secure.

To be extra clear, the Wookiee Unicaster does not make Direct IP multiplayer over the internet any more unsafe than it already is. If you were to play any of these Direct IP games by connecting directly to someone's own ISP-provided Public IP while they'd be hosting a game (without using any form of relay, like the Unicaster) it would be equally unsafe.
There's an opportunity here. It's quite easy to add some simple symmetric crypto + authentication, if you want.

For example, to use Chacha20 for crypto, you just need to share a random IV in the handshake and to add a counter to the packet (say 64 bits). Xor the actual data with the keystream to encrypt, xor the encrypted data with the keystream to decrypt. Authentication boils down to hashing the data + secret and passing the hash along with the data, so another few bytes of overhead per packet depending on how much security you want.

Maybe a couple dozen lines of code (assuming the crypto primitives are already available).
Post edited November 07, 2022 by clarry
avatar
clarry: There's an opportunity here. It's quite easy to add some simple symmetric crypto + authentication, if you want.
I have considered it, even had an operational RSA prototype, but you have to remember the only end-to-end traffic I have access to is between the relay and the game server. That's only half of the traffic going over the internet.

It's very similar to how remote port forwarding works over TCP, actually. The game server's link to the public IP is secured over the SSH tunnel, but the remote peers still send packets over the internet to the public entry point.

I don't really see the point of securing half the link and hurting latency in the process when UDP comes into the picture.

VPNs are simply a better option if encryption is needed or desired.

P.S.: Some games actually DO encrypt their traffic anyway, it's not like everything in existence uses cleartext packets, but older LAN era games pretty much tend to do that.
Post edited November 07, 2022 by WinterSnowfall
avatar
clarry: There's an opportunity here. It's quite easy to add some simple symmetric crypto + authentication, if you want.
avatar
WinterSnowfall: I have considered it, even had an operational RSA prototype, but you have to remember the only end-to-end traffic I have access to is between the relay and the game server. That's only half of the traffic going over the internet.

It's very similar to how remote port forwarding works over TCP, actually. The game server's link to the public IP is secured over the SSH tunnel, but the remote peers still send packets over the internet to the public entry point.

I don't really see the point of securing half the link and hurting latency in the process when UDP comes into the picture.
Fair eonugh. Sorry, I already forgot you only do half the link. I'd consider doing both ends, but then I guess it's already becoming too much of a pita to set up for your target audience. Mind you modern crypto is so fast that its impact on the latency of an internet tunnel is lost to noise.

VPNs are simply a better option if encryption is needed or desired.
Yeah I agree, although if the selling point of this tool is to be easier to set up than VPN, then doing some opportunistic encryption wouldn't necessarily hurt.. but I guess the selling point is lost if each client needs to set up their end of the tunnel. At that point it *is* a (poor) vpn, arguably.
avatar
clarry: I'd consider doing both ends, but then I guess it's already becoming too much of a pita to set up for your target audience.
I mean, that's a VPN :). Which I'm not trying to write.

avatar
clarry: Yeah I agree, although if the selling point of this tool is to be easier to set up than VPN
Yes, the main idea with the Wookiee Unicaster is that none of the remote peers have to configure or install anything. You can use it to play games with someone that isn't all that tech savvy.

That and the fact that I don't do any packet-level processing other than relaying, to keep latency as low as possible. I agree that other factors will hit latency far more than what one writes in code in such situations (which is why I ventured to write it in Python anyway), but everything tends to add up at the end of the day, so the KISS principle still applies.
Further expanded the tested games list with some non-GOG titles as well:

* Age of Mythology (+ The Titans)
* Anno 1701 (+ The Sunken Dragon)
* Civilization IV (& Addons, including "Colonization")
* Divinity Original Sin - Enhanced Edition
* Factorio
* Hammerwatch
* Kohan - Immortal Sovereigns / Ahriman's Gift
* Kohan II - Kings of War
* Quake III Arena (+ Team Arena)
* Return to Castle Wolfenstein
* Scrapland (Remastered)
* Soldier Of Fortune 2
* Star Wars - Jedi Academy
* Star Wars - Jedi Knight II
* Supreme Commander (+ Forged Alliance)
* Unreal Tournament '99
* Unreal Tournament 2004
* War for the Overworld


I was very pleasantly surprised the Kohan games support Direct IP multiplayer (albeit UDP-based). Definitely looking to play those over the internet with some folk. Age of Mythology (the retail version) was a nice surprise as well.
In a move which I think will make some people a lot happier, I've added support for Windows in the Wookiee Unicaster, at least when run in client mode.

I won't be able to test server mode on Windows, but in theory I don't see any reason why it shouldn't work as well.

Linux is still highly recommended, but I expect a lot of people will find themselves in situations where maybe they'll want to run server mode on a Linux cloud instance, and client mode on their local Windows installation where the game server is running. This is now fully possible.
Post edited November 11, 2022 by WinterSnowfall
Bumping one more time, with a link, as I now consider the implementation mature and have used it myself quite a number of times with various games.

It also works on Windows, beside Linux (x64 and arm64) and comes with a sample setup script with 40 supported titles that use either UDP or TCP-based Direct IP multiplayer.

https://github.com/WinterSnowfall/wookiee_unicaster

Use it well to DRM-free your multiplayer and have a good time! :)
Post edited October 10, 2023 by WinterSnowfall
Haven't bumped it in a while, but I've put in some more work on expanding what the Wookiee Unicaster can do, expanding its performance and the list of supported games.

I'm also actively using it to play Anno 1701, Supreme Commander and Quake III over the internet without any clients or other crap. Apart from making me miss the golden age of LAN/Direct IP even more, I'm having a blast.

If anyone finds it useful, have a go at it. It's not only free, it's open source. And although it's written by a well known occasional idiot, it works quite well :P.