Skip to content

Alternative multiplayer server support

EvilRenegade edited this page Jan 3, 2013 · 2 revisions

TCP/IP based multiplayer games

WOL/XWIS is old, and the abandonment of WOL has shown how fragile an ecosystem is that relies on a service that only few (read: Westwood/EA and reverse engineers) can provide. This specification has the aim to establish support for an alternative to XWIS.

As a catch-all term, this specification suggests CAOS: Command & Conquer Alternative Online Services.

Specification details

Goals

  • Add support for an alternative match-making architecture, including lobby-support.
  • Use established, open protocols and formats and document the required steps to create one's own matchmaking server.
  • Provide:
    • Lobby/chat
    • Direct messaging, including from inside the game (prohibit out-of-band communication between people in the same game)
    • Quick match creation
    • Traditional online game creation
  • Release "dedicated server" software, so people can create their own servers quickly.

Suggestions / Notes

  • Should not collide with [generic TCP/IP multiplayer] (https://github.com/Ares-Developers/Ares/wiki/TCP-IP-based-multiplayer-games), at best use the same functions.
  • Configuration: UseCAOS=true, DefaultCaosServer=[IP or hostname], both in ra2md.ini
  • At a later point, a ladder and support for tournaments would be nice.
  • Mod support, in the sense of displaying the mod used and in advance, would be nice. (Rather than just erroring out later.) At best, make the mod transfer like a map, at the least let the mod provide download information to the non-compliant joiner.
  • Cheating will be an issue, as usual. We'll need an authority/majority system to deal with that.

Protocols

IRC

Pros:

  • Used by WOL/XWIS, so client code already exists in game.
  • Simple protocol with little overhead

Cons:

  • Primitive, no "standard" way of extension (you just make up new words and have the other side parse them)
  • Hosters generally forbid hosting of IRC servers, since they are frequently targets of DOS attacks and usually a hive of criminal activity

XMPP

Pros:

  • Extensibility is so deeply entrenched into the protocol that it's part of the name. Extending XMPP with C&C-related functionality would be perfectly standards-compliant.
  • Uses a decentralized, e-mail-esque approach, i.e. messages are not confined to one server. If properly leveraged, this could mean that both PPM and C&C Guild could independently run CAOS servers, but [email protected] could still send a game request to [email protected] and the two could establish a game.
  • XEP-0060: Publish-Subscribe would provide an alternative, simple way to broadcast newly established games.
  • If properly done, usage of XMPP could negate the need for custom server software entirely, since match-making could be handled through extended messages and Ares - any XMPP server that (for example) supports Multi-User Chat and Publish-Subscribe would work.

Cons:

  • Fat. XML is inherently verbose, and XMPP has been noted for its overhead. (Note, though, that XMPP would only be used for chat and match-making, not for the actual game data transfer, so the overhead would be less critical. It would be a bandwidth usage/efficiency issue, not a lag one.)
  • Multi-User-Chat is not part of the basic protocol, but an extension. (This is true for many of XMPP's features, though, since its entire point is extensibility. XEP-0045: Multi-User Chat is widely supported.)

SIMPLE

Pros:

  • Based on SIP, designed for exactly the things we want: Session management and messaging.

Cons:

  • Less widely supported
  • More technical, primitive

See also

Clone this wiki locally