Sign up Calendar Latest Topics
 
 
 


Reply
  Author   Comment  
Arkantos

Avatar / Picture

Registered:
Posts: 455
Reply with quote  #1 
As Thom begins work on Artemis 3, I would like to make some suggestions with regards the the network protocol. Obviously, Thom can do whatever he likes, but these things would be helpful to those of us who have worked on code that talks to Artemis servers and/or clients:
  • Publicly release the protocol specification. Having official and complete documentation of the protocol would make it much easier for modders. Currently, all that is publicly known about Artemis's network protocol has been determined via reverse engineering. It would be nice if there were official documentation from the source.
  • Semantically version the protocol separately from the Artemis software. People consuming the protocol should be able to be confident that their code will work with any version of the protocol with the same major version number.
  • Decouple enumeration values from their order, and don't rearrange or reuse values. Changing what any enumeration value represents makes things more complicated for people writing code that uses the protocol.
  • Name packet types for what they do, not for their internal format. Future developments may require you to add fields or change their type, making the type name misleading; e.g. valueFourInts.
  • If you significantly change the format of a packet type, deprecate it and create a new packet type instead.
NoseyNick

Avatar / Picture

Registered:
Posts: 105
Reply with quote  #2 
I'd probably add... something along the lines of TypeLengthValue, with well-defined types, would probably be much preferred rather than the funky compacted-bitmasky thing for objectBitStreams. This might even allow a bit of forward/backward compatibility between almost-compatible protocol versions, or in any case adding new fields in a fairly clean way.

Feel free to keep one of the Types as DEADBEEF though, fun is important   [biggrin]

Stop sending loads of DmxMessage packets unless stations have actually asked for it. Treat it a bit like another console if it helps, either manually selected like "main screen, comms" or automatically requesting the console if hardware is detected or whatever.

Arkantos

Avatar / Picture

Registered:
Posts: 455
Reply with quote  #3 
Seconding the DMX packet request. Most folks playing Artemis don't have a DMX setup, yet a huge chunk of the network traffic is devoted to DMX packets.
Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.