Author Topic: The problems with multiplayer  (Read 6861 times)

0 Members and 1 Guest are viewing this topic.

Offline JGZinv

  • 211
  • The Last Dual! Guardian
    • The FringeSpace Conversion Mod
Re: The problems with multiplayer
Throwing an observation and a thought out there.

1. Observation - With FringeSpace and StellarAssault, and to a large extent BTRL/Diaspora, what we experenced was equatable to clients not receiving hit data from the server.
IE if you were the host, you could play with other people and almost have a semi reasonable feeling game. If you were a client, nothing you fired had any affect on the target.
In SA we could literally park 3 clients and the host, and have clients shoot the host with very rapid fire weapons, and only one hit in dozens if not hundreds would register.
In FringeSpace we found roids had a significant impact on performance, particularly moving roids, but a similar result as to primary fired weapons, lead everyone to use missiles to deal any damage.
In Diaspora with the Raider, I can remember doing a deathmatch or survival in a hosted server from myself, and getting over a hundred kills easy. When we switched host, I had 8.

Now with that said, these observations were all on SCP builds going back about 5-6 years ago. I dropped experimenting on it since we had other problems come up.
I realize over the years various improvements were made here and there, as Fringe has been watching with anticipation for multi to work again.
My point being, that the core issue of hits not registering, seems to have remained the same over time.

2. Is there a way to test with the original PXO code still in place? See if that made a difference?

Alternatively, you mentioned jg18 that you removed IPX support.  However, did anyone try IPX versus TCP/UDP to see if there was any difference?
There is a IPX wrapper that does work by translating the packets to UDP, and you can use it in conjunction with the Tunngle service to play over the net with any recent Windows edition.
We do this now for Tachyon, since it is in a similar situation, we can't use the internet lobby, and have to make do with a virtual LAN.
True power comes not from strength, but from the soul and imagination.
Max to PCS2 to FS2 SCP Guide
The FringeSpace Conversion Mod

 

Online AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: The problems with multiplayer
2. Is there a way to test with the original PXO code still in place? See if that made a difference?
PXO and FS2NetD should behave identically: namely, by helping the executables make a connection, but no impact on on in-game performance whatsoever.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: The problems with multiplayer
You could give the icculus.org version a try in your testing too (the git version, not the svn one). There are a lot of fixes and optimizations but it's basically just a cross-platform, up-to-date, retail port. It's fully network and data compatible with the retail version. It also has full PXO compatibility with the retail version, minus one stats saving bug. And I can give you limited/private access to the PXO server for testing purposes if you want to try that out. My connection is pretty bandwidth limited so more than 2-3 connections will mess up your results.  Works far better with Linux builds at the moment, but I can make some Windows builds available (with the odd hiccup or two) or you can just build them from source.

 

Online AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: The problems with multiplayer
You could give the icculus.org version a try in your testing too (the git version, not the svn one). There are a lot of fixes and optimizations but it's basically just a cross-platform, up-to-date, retail port. It's fully network and data compatible with the retail version.
That makes testing it not terribly useful, because I've tested the actual retail executable, and it has exactly the same networking problems as FSO does.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: The problems with multiplayer
You could give the icculus.org version a try in your testing too (the git version, not the svn one). There are a lot of fixes and optimizations but it's basically just a cross-platform, up-to-date, retail port. It's fully network and data compatible with the retail version. It also has full PXO compatibility with the retail version, minus one stats saving bug. And I can give you limited/private access to the PXO server for testing purposes if you want to try that out. My connection is pretty bandwidth limited so more than 2-3 connections will mess up your results.  Works far better with Linux builds at the moment, but I can make some Windows builds available (with the odd hiccup or two) or you can just build them from source.

Hi Taylor!

 

Offline jg18

  • A very happy zod
  • 210
  • can do more than spellcheck
Re: The problems with multiplayer
I've been following this  thread and started work on a reply, but unfortunately RL has been slowing me down/wearing me out. I'll try to finish it this weekend. As I mentioned earlier in the thread, I am interested in working on the netcode and have made a little progress in that direction. Unfortunately I've been dealing with RL lately and that's been slowing me down.

Replying to taylor is easy enough though:

You could give the icculus.org version a try in your testing too (the git version, not the svn one). There are a lot of fixes and optimizations but it's basically just a cross-platform, up-to-date, retail port. It's fully network and data compatible with the retail version. It also has full PXO compatibility with the retail version, minus one stats saving bug. And I can give you limited/private access to the PXO server for testing purposes if you want to try that out. My connection is pretty bandwidth limited so more than 2-3 connections will mess up your results.  Works far better with Linux builds at the moment, but I can make some Windows builds available (with the odd hiccup or two) or you can just build them from source.
Interesting, perhaps we can port over to FSO some of your netcode fixes/improvements in the icculus.org version. I'd also be interested in your general thoughts on the netcode and how it could be made better, but that's probably better suited for another thread or PMs/e-mail.

EDIT: In case it would help with understanding the icculus.org version, I recently got Ubuntu 14.04 set up on my desktop and can use that for testing, even if I can no longer play FS2.

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: The problems with multiplayer
You could give the icculus.org version a try in your testing too (the git version, not the svn one). There are a lot of fixes and optimizations but it's basically just a cross-platform, up-to-date, retail port. It's fully network and data compatible with the retail version.
That makes testing it not terribly useful, because I've tested the actual retail executable, and it has exactly the same networking problems as FSO does.
If the lag problem is purely an implementation issue then no, it isn't going to be any use. If there are build/optimization/bug factors contributing then it might be something worth trying out. I honestly haven't tested netplay enough to say whether it has a bad lag problem or not. But I definitely haven't noticed anything like what I had the last time I was testing FSO netplay issues.

Interesting, perhaps we can port over to FSO some of your netcode fixes/improvements in the icculus.org version. I'd also be interested in your general thoughts on the netcode and how it could be made better, but that's probably better suited for another thread or PMs/e-mail.

EDIT: In case it would help with understanding the icculus.org version, I recently got Ubuntu 14.04 set up on my desktop and can use that for testing, even if I can no longer play FS2.
Anything that you can use, feel free.

Git repo is here: http://git.icculus.org/?p=taylor/freespace2.git;a=summary

You'll need CMake 2.8+, SDL 2.0.2+, wxWidgets 2.8+, openal-soft 1.15+, and libwebsockets 0.6+. A recent Linux distro should have all of that, just install the dev packages and you should be good. For reference, I'm using Debian Stretch as my dev platform.

And my email is my username at icculus.org if you want to contact me that way. PM is fine too, but I don't come around here very much anymore so responses may be a little slow.

 

Online AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: The problems with multiplayer
You could give the icculus.org version a try in your testing too (the git version, not the svn one). There are a lot of fixes and optimizations but it's basically just a cross-platform, up-to-date, retail port. It's fully network and data compatible with the retail version.
That makes testing it not terribly useful, because I've tested the actual retail executable, and it has exactly the same networking problems as FSO does.
If the lag problem is purely an implementation issue then no, it isn't going to be any use. If there are build/optimization/bug factors contributing then it might be something worth trying out. I honestly haven't tested netplay enough to say whether it has a bad lag problem or not. But I definitely haven't noticed anything like what I had the last time I was testing FSO netplay issues.
Well, MatthTheGeek and I tested FSO and Retail multiplayer in the same missions with the same settings and got identical (and terrible) behavior, so I considered it to pretty conclusively point towards the implementation itself being the problem, but I readily admit I am no expert when it comes to netplay from any perspective (design, coding, or even as a user), so I could definitely be wrong.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: The problems with multiplayer
Well, MatthTheGeek and I tested FSO and Retail multiplayer in the same missions with the same settings and got identical (and terrible) behavior, so I considered it to pretty conclusively point towards the implementation itself being the problem, but I readily admit I am no expert when it comes to netplay from any perspective (design, coding, or even as a user), so I could definitely be wrong.
You could be right too though. :) The code I can handle, but I rarely try multi-player except to fix a bug. How it works is one thing but how it actually plays isn't an answer that I'm well suited to give.

Either way the icculus.org code is there if anyone wants to give it a try. There is 14 years worth of fixes, optimizations, and cleanup in there. On the off-chance that it's any better you'll know that it's something that can be fixed. And if not then it's probably something that most likely needs to be replaced.

 
Re: The problems with multiplayer
I mentioned this on another thread, but this seems a better place for it. Has anyone thought about trying FS2 Multi over a virtual LAN service? Evolve seems a good one. Used it for some multi for Starfleet Command 2 community edition.
There are only 10 kinds of people in the world;
those who understand binary and those who don't.

 

Online AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: The problems with multiplayer
I mentioned this on another thread, but this seems a better place for it. Has anyone thought about trying FS2 Multi over a virtual LAN service? Evolve seems a good one. Used it for some multi for Starfleet Command 2 community edition.
At best, this would be equivalent to using fs2netd: it would help you make a connection to another player, but you'd still have to deal with the exact same level of latency.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: The problems with multiplayer
Well, it does solve the issues with NAT.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Online AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: The problems with multiplayer
Well, it does solve the issues with NAT.
I suppose, although that should become a moot point with UPnP, shouldn't it?
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 
Re: The problems with multiplayer
Not really. Even with UPnP, you're still dealing with Network Address Translation. It's an extra layer to go through. Call Evolve a gaming VPN service. Everyone in a party is on the same virtual private LAN with no NAT at all.
There are only 10 kinds of people in the world;
those who understand binary and those who don't.

 

Offline niffiwan

  • 211
  • Eluder Class
Re: The problems with multiplayer
:confused:  My understanding & experience with uPNP is that it creates NATs dynamically. If the "gaming VPN service" is creating a virtual LAN then it's dealing with the NAT's itself somehow, sure TCP/IP outbound connections generally don't need inbound NATs because of the stateful nature of the protocol, but UDP will always require a NAT, even for outbound connections (unless you're running an advanced router/firewall, not one that I'd typically expect to be handed out by your average ISP)

edit. actually, I think I was smoking something there, normal routers must be able to create inbound NATs for UDP return packets otherwise DNS lookup wouldn't work.... I guess FSO is running peer to peer which is why the inbound NATs are required... that could also be solved by moving to a client-server model (HA! like that's easy to do)
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 
Re: The problems with multiplayer
Evolve actually creates a virtual LAN with its own virtual network adapter. Like I said, it's sort of a gamers' VPN service. However, it can create these virtual networks on the fly by a user creating what they call a party and inviting other users to it.
There are only 10 kinds of people in the world;
those who understand binary and those who don't.

 

Online AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: The problems with multiplayer
Not really. Even with UPnP, you're still dealing with Network Address Translation. It's an extra layer to go through.
https://en.wikipedia.org/wiki/Universal_Plug_and_Play#NAT_traversal
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline niffiwan

  • 211
  • Eluder Class
Re: The problems with multiplayer
It's an extra layer to go through

oops, missed this the 1st time around.  Any VPN will add extra layers of processing to each packet, and I'd be confident that the overhead from a VPN is higher than the overhead from NAT (which is essentially changing a couple of fields in the packet headers, as opposed to VPNs which wrap every packet in encryption (maybe?) & other headers! :))

IOW, there's no such thing as a free lunch :D
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 
Re: The problems with multiplayer
Well, MatthTheGeek and I tested FSO and Retail multiplayer in the same missions with the same settings and got identical (and terrible) behavior, so I considered it to pretty conclusively point towards the implementation itself being the problem, but I readily admit I am no expert when it comes to netplay from any perspective (design, coding, or even as a user), so I could definitely be wrong.
You could be right too though. :) The code I can handle, but I rarely try multi-player except to fix a bug. How it works is one thing but how it actually plays isn't an answer that I'm well suited to give.
I played multi quite a bit during the good old times with an ISDN connection (64k). If more than 2 or 3 players wanted to play the host had to have a cable connection. Host used update on high and everyone else on low cause the game seemed to be unable to cope with higher update settings without producing horrible lag for everyone.

I do remember these coop missions where a cap warps in and jumps forward in ~0.5 s intervals which was normal. As the usual difficulty setting was insane you ended up spamming missiles to destroy anything and rearmed or died to repeat. Scoring hits with the primaries was rather hard and didn't do much damage due to the difficulty setting.
PvP was similar in that you were mostly trying to get missile lock. That's where the "no fish" and similar rules came from. Sitting in a bomber (for durability) and spamming Piranhas was annoying as hell for everyone and got you kills cause some missiles will hit. Many people used a Morning Star on one primary bank cause if it hits the opponent has a hard time moving properly making it so much easier to continue hitting with all the lag.

So yeah, people were much more resistant to lag back then and learned to adapt.
Here goes scripting and copy paste coding
Freespace RTS Mod
Checkpoint/Shipsaveload script

 

Offline m!m

  • 211
Re: The problems with multiplayer
Well, it does solve the issues with NAT.
I suppose, although that should become a moot point with UPnP, shouldn't it?

Adding UPnP support probably wouldn't fix all NAT problems because some routers don't support it or it is disabled for security reasons. For those cases an alternative solution would be needed which could be done my using the ICE protocol family. Using STUN would solve a lot of problems where a client needs to determine its external address. If required, TURN could be used if the client hosting the game was unable to determine its external address. I have considered implementing it in my Node.js reimplementation of fs2netd but I current don't have the time to work on that.