-
Notifications
You must be signed in to change notification settings - Fork 35
Alternative multiplayer server support
EvilRenegade edited this page Jan 3, 2013
·
2 revisions
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.
- 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.
- 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.
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