Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
moonpiedumplings

Need Help Setting Up a LAN Multiplayer Game

Recommended Posts

While I was able to get a multiplayer game up and running on my home network with GZDoom just fine, when trying to set it up at school, I got an error. I also tried with zandronum, and got a similar error. The error that I got for GZDoom was EINVAL socket could not be created, and the error I got with Zandronum was #10038. I tried looking to see if GZDoom/Zandronum  where allowed by Windows Firewall, and they were, but I still got the error. 

Does anyone have a potential solution? I really want to play lan doom with my friends. 

Share this post


Link to post

Do all the computers have internet access? If so, you might be better off starting a Zandronum server that broadcasts to the internet rather than LAN and try connecting that way. There will be a tiny bit more lag, but it’s a decent workaround.

 

Screenshots of the error messages and your server starting process would also be super helpful in diagnosing the problem 

Share this post


Link to post

I can't give a screenshot now, but I might be able to give them later. 

The error is specifically related to the creation of a socket and port allocation. I also encountered this error on my laptop when attempting to launch a LAN server from there. This means that the error definitely has something to do with the wifi, and not the computers. 

However, I find it very odd, because creating a LAN server with Minecraft works fine, but doom is blocked. 

The problem is that I don't really know what I'm doing. I don't know how the game is getting blocked, so I can't really find I way to workaround it. 

Share this post


Link to post

Not familiar with that error nor where in the process you're encountering it but

 

School (should) have a guy whose career hinges on securing the network, so all ports are going to be blocked as a rule, and only opened for things that need to be opened. Minecraft working fine makes sense, as it's one of a tiny handful of games that are considered useful in school, so Network Guy probably manually forwarded that port. Minecraft by default uses port 25565 according to google, so you could change your gzdoom or zandronum server config file to use that port instead of whatever their default is. If there  is a machine hosting Minecraft on that network and port though, no joy. This could be interpreted as "hacking" by morons so beware, but if it comes down to it the person to be reprimanded should be the one who opened up the Minecraft port.

 

Other possiblity is something else is just set up wrong, but hard to tell without more details.

Share this post


Link to post

I tried using port 25565 as well, and no dice. Also, the minecraft that we got on the school computers use a seemingly random port. One time it used 63091, another time it used 64217, and another 64431. If I try to use those ports with GZDoom, it doesn't work and gives me the same error. I put screenshots of the errors below. 

ZandronumError.PNG

GZDoomerror.PNG

Share this post


Link to post

I didn't read much of this but part of your problem is that you are trying to connect to a zandronum server with gzdoom. They are entirely different source ports. You need to try connecting with zandronum itself.

Share this post


Link to post

I am not trying to connect to a zandronum server with GZDoom. I cannot set up a server with either engine, and that is my problem. I only need one of them to work. 

Edited by moonpiedumplings

Share this post


Link to post

Your school has a security policy on their network blocking the allocation of ports it doesn't consider registerable. Judging from Zandronum's reported registered IP:Port, the this is resulting in it falling back to allocation 0 (likely as an incidental fallback because it's failing to register any normal port), and 0 means to use the first random port winsock provides (hence why it's random each time it starts).

From there, things get worse, you have two key error codes. Zandronum reports any transmission is responding with 10038, which means WSAENOTSOCK, as in the socket handle is completely invalid. Meanwhile GZDoom is straight up giving you 10022, WSAEINVAL, which means the socket parameters are invalid when it tries to set the options. With both of them this happens because the socket they thought they created and just tried to interface with was destroyed or never existed to start with.

 

From here I can deduce that your school's network has a very strict security policy against the allocation of UDP sockets of most port numbers. As a result most games will completely fall over themselves trying to do anything over the network. Minecraft likely works because that whole game is rather bizarrely designed to use TCP, which most non-game network software require so Minecraft falls into a weird hole in security policies.

 

In short, your school's IT administration is 5 steps ahead of you and you will not win. Stop misusing their resources and get pack to work.

Share this post


Link to post
56 minutes ago, moonpiedumplings said:

So is there a way to configure Doom to use TCP? 

No, it's not something you can simply configure as the difference between TCP and UDP isn't just superficial, they change how data is sent and processed quite dramatically. TCP is used for continuous streams of data such as file transfers and is buffered, data is processed as a continuous  stream of bytes and isn't expected to arrive in real time but always in order and is buffered. UDP is used for data that changes constantly, such as real time communication in games, data organised as complete datagrams and is expected to arrive on time or it's discarded without notice.

As such with the above, Doom ports will use UDP because it's faster to assume that the information will arrive without tracking it, and will have methods to recover only necessary information if it's lost. And as I previously stated, these designs prevent such protocols from being casually swapped. It's not just some simple setting you can switch, it's an entire fundamental design in packet transmission.

 

Like I said, Minecraft is a bizarre anomaly. Your school's IT administration has specifically configured their systems to stop you from playing multiplayer games on their computers, and there is nothing to be gained from trying to flaunt that rule.

 

Edit: I've just been reminded of Chocolate Doom's vanilla-net branch that actually can do a TCP connection, among other various protocols. However it's still under development so information is quite sparse, there's no precompiled builds and it's extremely unknown how it'll function on such a network where most of the standard ports are blocked anyway.

Edited by Edward850

Share this post


Link to post

Chocolate Doom was not my first option, as it does not have as many modern features as GZDoom or Zandronum (Freelook, Mod support, graphics), but if that is the only thing available, then I am fine with using it. 

However, It says that ZDoom uses the TCP/IP protocol here -> https://doom.fandom.com/wiki/Multiplayer Also, I am looking into Odamex, which is based of off ZDoom. 

Also, it says that PrBoom+ uses TCP/IP here -> http://manpages.ubuntu.com/manpages/trusty/man6/prboom-plus-game-server.6.html

I will test these out, and hopefully something will work. 

Share this post


Link to post
6 hours ago, Edward850 said:

and there is nothing to be gained from trying to flaunt that rule.

 

I bet he's learned more about networking/security since attempting this task than he has in his whole life, though

Share this post


Link to post
7 hours ago, moonpiedumplings said:

However, It says that ZDoom uses the TCP/IP protocol here

Sort of a misnomer of terms. It is actually UDP, same with Odamex (as stated before, using TCP for something like Odamex would be hell), but sometimes the IPv4 protocol is referred to as TCP/IP even when it's UDP as that's where it originates from. 

 

Also if you specifically want G/ZDoom features, Odamex will do you no good anyway. 

Edited by Edward850

Share this post


Link to post

I specifically want freelook and better graphics. 

Is there a source port that has those, and uses TCP?

I am going to test prboom+, but people said that they encountered mouse lagginess after the first level. 

People said that they did not encounter this in prboom v2.5.0, but that doesn't (I think?) have freelook support. 

Share this post


Link to post

PRBoom+ is UDP. As I implied, that Chocolate Doom vanilla-net branch was the exception to this because it's aim is to support connection to a bunch of legacy protocols. All modern ports use UDP.

Share this post


Link to post

Yeah, I think all modern ports use UDP. I am going to test prboom v2.5.0, because I think that is the most modern port I can find that uses TCP. I will also test the Chocolate Doom vanilla-net branch, but Choc Doom is not the most ideal source port for my friends and me. 

Share this post


Link to post
7 minutes ago, moonpiedumplings said:

Really? Huh. So choc doom it is. Is there a way to get better graphics with it?

 

Chocolate Doom's entire goal is to be vanilla Doom, what you have is what it is and remains.

 

6 minutes ago, moonpiedumplings said:

Also, How do I get CMake on windows?

Download it, then run it.

Share this post


Link to post

Do you have Visual Studio 2019 installed? You'll need that to configure a VS2019 project (which from that you then compile the project). You'll also need SDL2, SDL2_Net and SDL2_Mixer.

I must ask, have you compiled programs before? I can quickly see this becoming a very slow process of walking you through step by step on how to compile a project for the first time, and to be honest that's a fairly involved writeup.

Share this post


Link to post

You could also ask @fraggle if he happens to have a Windows build of that branch floating around. Though it's not his primary OS.

Share this post


Link to post

I am having trouble using MSYS2 (what was listed in the guide) to compile the source port. I am struggling to install the sdl2 package. I will attempt to use Windows Subsystem for Linux to compile the package. Wish me luck. 

Share this post


Link to post
12 hours ago, moonpiedumplings said:

I specifically want freelook and better graphics. 

Is there a source port that has those, and uses TCP? 

Doomsday Engine

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×