Hello, I've been playing Hexen II on OS X 10.4 now on a PPC Mac. (By the way, this port is such a cool thing! Thank you guys!) The other day a friend and I decided to try multiplayer. (He has 10.5 on an Intel.) Now, we were trying it over the Internet, which I know can be tricky in its own right, but we couldn't get it to work even over an SSH tunnel. Feeling curious, I went and installed Hexen II on my PC (running XP) too, which is in a LAN with my Mac, and even they couldn't connect to each other. The PC can at least see the game being hosted by the Mac when I tell it to search for local games, but neither one can actually connect to the other. The best I got was an error message: "Net_GetMessage: Disconnected socket; Read error" on the server.
So then I noticed HexenWorld and decided to try that. I downloaded the Windows package; correct me if I'm wrong, but it does not seem to have the actual client along with the server and utilities. Since I didn't see a Mac version, I downloaded the source and spent an inordinate amount of time trying to compile it. The master server compiles fine as a universal binary; I can get the server to compile, but only for PPC (which I guess is fine, since I could run it and my friend could connect); however, I can't get the client to compile at all. After messing with it and telling it where files were that it couldn't find, it tries to get Strings.h, which says it is not available on OS X.
So basically I guess what I'm getting at is… How do I use HexenWorld, or at least get multiplayer working without? Is there something I'm missing here? I've tried Googling and searching this forum, but I can't seem to find much about it.
I guess the error you are getting is due to the sockaddr type having an additional "sa_len" field in BSD and OSX. Quake (and hexen2) net code relied on the system sockaddr type and its internal qsockaddr type being identical, hence the failures. Will try fixing this soon.
Huh. You learn something new every day. Thanks, and I will eagerly await a fix.
In them meantime though, we do both have (slightly less capable) PCs running Windows. Is there a Windows client and server available somewhere? All I got in the Windows download package was the master server, query, cron, and terminal.
> Huh. You learn something new every day.
Yeah. I was frustrated when I just saw that.
The structure sizes are actually the same but the sa_family
offset is different, I guess that's why it's failing.
> In them meantime though, we do both have (slightly less capable) PCs running
> Windows. Is there a Windows client and server available somewhere? All I got
> in the Windows download package was the master server, query, cron, and
Well, if you want hexenworld for windows, they are in
hexenworld-1.4.4-pre9-win32.zip and hexenworld-1.4.4-pre9-win64.zip
for windows x86 and x64. The client names are glhwcl.exe
(for opengl), hwcl (for software renderer.) and hwsv.exe (for
Ah, I was using the 1.4.3 packages. I will try that.
Okay, things still seem to not work. I downloaded the 1.4.4-pre9 HexenWorld package and put it in my Hexen II folder. I can start up the server (hwsv.exe) and it runs; however, whenever anyone tries to connect to it with the client (whether from my computer or from over the LAN), the client connects and then crashes. It reads in several things and the last line it outputs is " joined the game" before instantly quitting. The server says, " joined the game," then says that player timed out, quit the game with 0 frags, and was removed.
I've tried this pairing the 1.4.4-pre9 HexenWorld with both the 1.4.3 and the 1.4.4-pre9 versions of Hexen II itself, both with the same results. Also, the normal single-player version of 1.4.4-pre9 does not even work for me. The menu comes up fine, but when I try to start a new game it seems to crash at about the same point as the HexenWorld client. Perhaps it's the same problem.
We also tried connecting the non-HexenWorld single-player games together, and got the same error (disconnected socket) on Windows that we did on Mac, so apparently it's not just the difference in BSD socket address.
I am a generally computer savvy sort of person, but I readily admit I'm in over my head with this sort of thing, so I'm not sure if I may be leaving out useful information. Is there anything else I can provide that would help figure this out?
Do you see the the client crash with the software renderer, ie. h2.exe or hwcl.exe in 1.4.4-pre9? I found a bug in the software renderer (introduced in 1.4.4-pre8) and just fixed it about an hour ago. Did you try the gl version?
Huh. I myself only tried the software version, since GL (in the single player version) is unplayably slow on my computer. I was thinking my friends tried the GL version and had it crash, but just to be sure I tried it just now, and what do you know! It does work! So I guess tomorrow I'll try downloading the latest build, with your fix in it, and try the software renderer then.
Thanks! Hopefully that was the issue. I'll post an update on how it goes.
There are no binary builds of the new version yet. Hopefully in two or three days most as a new version.
Ah, and they don't actually compile on Windows, right. Since compiling on my Mac didn't work, I shall await the next version.
Well, why wouldn't they compile on windows??
And why would I make a user wait, anyway? ;)
Download this: http://uhexen2.sourceforge.net/tmp/sw_win32.zip
unzip and overwrite the ones you had from 1.4.4-pre9.
Haha! Excellent! That works perfectly. Thanks for putting those up. : D
(Outside of using Cygwin, I didn't know it was possible to compile stuff like this with makefiles on Windows; I thought the Windows binaries were just made by compiling on *nix with the Windows cross-compile options. Shows how much I know about Windows.)
Sooo… I'm not sure what voodoo you guys had to do to compile the earlier Mac binaries, but how soon do you think there will be updates to those with this fix? I totally can't wait to play this in big, widescreen resolution with my friends.
Also, you're officially awesome.
With version 1.5.6, an OSX package of HexenWorld client and server is provided on the downloads page. (Note that it requires the correspondirg Hexen_II OSX package along with it.)