Skip to content

TCP IP based multiplayer games

EvilRenegade edited this page Jan 3, 2013 · 4 revisions

TCP/IP based multiplayer games

This specification aims to improve and extend YR's multiplayer capabilities by allowing the game to use TCP/IP for LAN games, instead of the IPX/SPX protocol currently used, which is not available in post-XP Windows. The code should be written in a way that is not actually limited to LANs, that is, it should allow direct-connection multiplayer games over the Internet, without requiring XWIS.

Original Request

While this is an independent request, a similar suggestion was made on the old tracker as Issue #1197 and [Issue #1071] (http://bugs.renegadeprojects.com/view.php?id=1071)

Specification details

Goals

  • TCP/IP-based LAN games
  • TCP/IP-based direct connections over the Internet (as in "Connect to server at IP...")
  • TCP/IP mixed-mode games, i.e. the game doesn't care if players joined via LAN or WAN

Suggestions / Notes

  • WOL/XWIS works. So there must be some kind of TCP/IP interaction code in the game already, or at least wrapper functions over DX methods.
  • If all else fails, custom TCP/IP code with a library would do the trick, though that potentially expands Ares's requirements and setup size/complexity. Libs like [Boost.Asio] (http://www.boost.org/libs/asio/) could be statically linked to avoid that, if the licenses are compatible.
  • Should be flexible enough to work with a [new matchmaking service] (https://github.com/Ares-Developers/Ares/wiki/Alternative-multiplayer-server-support).
  • This will require a lot of tests to make sure it's stable.
  • Should be settable through ra2md.ini-flag (UseTCP=true or something).
  • Might be a good moment to also rethink/redo the synchroneity check. (Might even be necessary.)
  • Graion brought up that the game might be running on UDP instead. Which of the two to choose will depend on what's in place already.

See also

Clone this wiki locally