Feature suggestion: Autodiscover LAN server

Developer's Forum, for discussion of bugs, code, and other developmental aspects of DOSBox.

Feature suggestion: Autodiscover LAN server

Postby Eodiv » 2017-11-12 @ 14:47

This issue topic is not only about IPX emulation over TCP/IP, but about LAN in general. For the sake of a clear example, I will assume a game using IPX emulation.

The situation:
I am using dosbox to run a few games which I play with my sister and friends. We do not always play at the same location, so not always in the same network. We do also not always play with the same people.

To run the games, I have tested and optimized a few configuration files. Out of the group of friends, I am one of the few who understands how to configure DOSBox. Nothing to blame them for, not everyone is into computers.


The 'problem':
Because we play ur multiplayer games in different networks and with different computers all the time, the ip addresses change all the time. This means that if I start a game with IPX SERVER, I also have to go into a command prompt and look up my current ip address (ipconfig).
I then have to explain to all my friends how to edit the config file, and add a line IPX CONNECT x.x.x.x .
A static IP is not an option, because we are in different networks all the time.
Now I hear all you tech savy people thinking, how hard can it be? But keep in mind not all your friends understand what an IP address is, how to discover the current ip address and how to use a command prompt. They dont have to understand, I would gladly help them configure dosbox for them, but I have to change those IP addresses almost each time we play a game.

The suggested feature:
There are probably third party software's for this, but I don't think that is necessary.
Most LAN supportive games these days feature a simple auto-discovery. This means that if anyone in the LAN starts a server, all other people who run the same game on the LAN can simply see the server pop up on their screen and join it.
This is a feature DOSBox does not have yet. And I think it can be very useful to simplify DOSBox usage in LAN parties.
Obviously, IPX CONNECT x.x.x.x will still be necessary for external IP addresses. But within a LAN, it should be quite possible for an IPX server to announce its presence to the local subset. Or the other way around, for a client to ask the local subnet is there is any DOSBox server present.
Code: Select all
IPX STARTSERVER (optional:[name_of_party])

Code: Select all
IPX CONNECT (optional:[name_of_party])


Not essential, but still valuable:
I have brought the same suggestion to the IRC channel, and most responses were in the trend of "we don't really need this". I agree, it's not an essential feature at all, but it does add something useful for some users, without compromising anything existing. I think a feature like this would make DOSBox more accessible to the less tech savy gamers.



####### IF YOU DON'T LIKE BRAINSTORMING, STOP READING HERE and continue to the replies.
The part below is not essential to the topic.
######


Potential complication:
There are still a few complications which require brainstorming. Hence my posting here, maybe some of you have a good idea how to handle this.
- There could theoretically be multiple LAN parties of a different game running on the same LAN. Auto-connecting to all other hosts/clients might not be the desired outcome in some scenarios. There could even be multiple instances of DOSBox running on one device, hosting under different ports.
-> I do have a solution to this problem in mind. Force the user to pick a name for his LAN server if he wishes to make use of auto-discovery. IPX STARTSERVER [name] . This way others in the LAN would simply use IPX CONNECT LANPARTY [name], where [name] is not a hostname or ip address, but a predefined name.
However, this brings us halfway back to the original issue. Now the users no longer need to know the host-name or addressees of the host, but they still have to edit their config file if the person hosting picks a different name than the one previously used.

Alternative solutions:
alternative 1.
A completely different solution to the problem at hand would be to prompt the user, instead of requiring command line input. A configuration file is simply executed, there is not way for the user to input any last minute changes without editing the file. Instead of requiring the user to specify the IP address inside the config file, prompt him when executing the configuration, asking for the ip address.
Code: Select all
 (...)
IPX CONNECT 192.168.1.179
game.exe
exit

I myself am not a fan of this solution, as it still requires users to check what their current IP or host name is. It solves only half the initial problem. Besides, it's unlike DOS to prompt a user.

alternative 2.
Move the IPX CONNECT to a separate configuration file. This would make it easier for users to edit the IP addresses, but again, they would still have to know the IP address of hostname in the current LAN. It could also become more confusing, because a game now can have multiple configuration files which one has to check when the game is having problems.

I am not a fan of the alternatives, they are too complex, and don't fully resolve the issue of existing complexity. I prefer to stick to the original idea of IPX CONNECT auto discovery.
Eodiv
Newbie
 
Posts: 1
Joined: 2017-11-12 @ 14:25

Return to DOSBox Development

Who is online

Users browsing this forum: Exabot [Bot], ignatius and 1 guest