For the last couple days twilight has been under a sort of development freeze. I decided that it was time to put some serious effort into making things better for myself and for players outside the USA. Probably the lesser of the two ways that I’ve chosen to do that is what I’ve been pouring a lot of time and effort into lately, and that is ssh support. SSH has support for compression at the transport level, which would make packets smaller and hopefully reduce latency a bit. Unfortunately, so far as I could tell, there was no good library for the server half of ssh. So, I’ve been writing my own sshd. Right now it does the key exchange. I’m working on getting the encryption going. After that the next step appears to be dealing with channel negotiation and finally adding the compression. Overall it’s been very frustrating and very educational. I do have some mild concerns about how resource intensive it will be to have all that crypto to do for every single packet, but we’ll see. I’m using OpenSSL for all my crypto stuff.
The other thing that I’m going to do, but haven’t really started work on yet, is making twilight only redraw what changed, when beneficial. Right now it pretty much redraws the entire screen every turn, and I’m sure I can save a lot of bandwidth by making it not do that.
Since such major changes to the networking and rendering are under way, I decided I probably should avoid doing much work on the rest of the code, plus it’d probably slow me down on the “important” stuff if I was adding gameplay features.