The Lushdrizzler Way

October 31st, 2020 by Diana Coman

As yet another year of mine is almost over and I take stock of that part of it that consists mostly in a relentless cutting of various tangles, draining of swamps, making of interfaces and bringing back to life forgotten dragon bones of the most potent kind, it occurs to me that the very same cleanliness, clarity and productivity that I obtained as a result of all this work of mine can very well mean also utter devastation and total disturbationnce for the two-cents invested young'uns1 not quite ready to take the scary step of playing the game but certainly ready to futz inconsequently at the door while never daring to open it up at all2 for fear of a less-than-optimal (thus not good enough for them!!) opening that might ruin their chances, their future, their success their possibilities and impossibilities even, otherwise and putting it all together plainly, their very impossible chances of a possible future success! Imagine Eulora's 2.0 client from the perspective of the lushdrizzler come to futz importantly about it and notice his utter horror when the simple act of running the client 2.0 turns vicious on him as it directly plunges him into the game, his character all made and set, without any "choice" in the matter, without any door left to open, nor any stats left to study, nor looks to alter nor even a name choice to agonise over!

Does the above mean indeed that Lushdrizzler's path has been closed forever leaving that many followers lost and forlorn? Could it possibly be indeed that Eulora 2.0 will be so open that one can't even hesitate at the door anymore? If such prospect terrifies you, despair not young'un with two cents to spare for I am kindly disposed and so ready to point you in the direction that your heart desires: it may not be your character's stats, it is true but it's even better than that for it's the whole game's own...configuration file! And it's all on your own hard-drive so you can indeed utilize your mighty Excel powers on it until you're sure (but do be sure-sure not merely sure!) it's absolutely optimally configured for your best advantage. It gets even better than this, since I can even point you directly to the most important part of it all, seeing how it has to do with keys and encryption and security - look at all those important words and tell me sincerely if they are not simply by themselves a total proof that it's worth Excel-izing anything related to them for a few hundreds of hours at the very least!

If you wonder how a mere configuration file can be so excellently suited for your excel-lent efforts, consider this: communications between client and server are encrypted using Serpent keys that are stored in a circular buffer; those keys would need of course to be changed from time to time, since otherwise it becomes increasingly possible for an attacker to collect enough information to start decrypting messages, too; to allow therefore updating of keys, the client needs to maintain its circular buffer in sync with the server's corresponding buffer. While the client can send to the server new keys at any time, the communication protocol states that any keys received are set in the buffer on available positions considered in order - so if the server misses for instance one message from the client, its own "next available positions" may suddenly be different from those on the client side. Given that keys are afterwards identified in client-server communications solely by their position in the circular buffer, it follows that any time your client's buffer becomes out of sync with the one on the server, the immediately following communications may fail since the server will use a different key than expected - not as much for not having the correct key as for having it simply on a different position. In such case, the best bet from client's perspective is simply to discard the mismatched key (position) and pick another - but note that there is no guarantee that another pick is in sync, either!

Basically any change of key comes with a risk of discovering a mismatch and thus missing as a result as many communications from the server as it takes until the blessed state of sync is achieved yet again, at least partially for the selected ONE key (since anyway, there is no hard guarantee of any other keys matching beyond the one that is in use and And now imagine that this sort of situation happens while your character is fighting all sorts of monsters - as a result of this unexpected sin of getting out of sync with the world essentially, your character becomes blind and dumb in the most direct sense, while the monsters being immune to such crypto-challenges as they are, will surely make short work of the blind and the dumb! Imagine this horror - your future greatness is already lost for lack of having set the relevant constants in your configuration file to their most auspicious values!

What relevant constants in what configuration file? The client's very own .ini file, easy to find, easier still to change, comes with various constants and settings but for the above issue, the value that is most relevant stands for the maximum number of times you want to use the same key before discarding it. If you go for the golden standard of OTP3, the inevitable consequence is that your client will change keys *very often* indeed! How often? Well, it depends on the situation really4 but generally speaking the more crowded and animated the situation, the more you need to find out from the server and therefore the more messages your client receives so ...the more often it will have to discard a key and pick a new one! Add to this the fact that if you discard the key after one single message, you run into the very likely situation where you *also* discard as a result any multiple-messages answer that the server might give you since there is no time to change the key in between the several messages that are just parts of the answer to one single question (and no, your client can't even know in advance when such situation will happen or how many messages may constitute one single answer).

If the OTP is such a pain, you might say, fine, go with some big-enough-but-not-too-big number of uses! Sure, what exactly might that be though? If it's any help, I can even give you some shiny numbers, not like there's any lack of them as long as computers are involved: in the simplest of cases where your character is basically alone in a deserted world and for a fixed update interval of 10 seconds (ie the client asks the server for a world update every 10 seconds), using a key for a maximum of 8 times triggers a key change around every 15 seconds; setting the maximum uses to 16 increases that to about 21 seconds, then 32 maximum uses further increases it to about 50 seconds and at 64 maximum uses it manages to finally get slightly over 1 minute (at least at times...). Is that enough/too much/too little? Which of those shall it be and is that 10 seconds interval between requesting world updates even enough to give you that optimal configuration without which you surely can't even try for the game for it would be just such a terrible loss of face and future fucks? No way to know other than excelizing it so go forth and good speed to you!

Then again, if you made it all the way here, you might even avoid the futzing and who knows, perhaps try at least to come up with a useful improvement to the client code itself so that it *adjusts* so well to various situations that there is indeed neither danger of key overuse nor of that most dangerous blindness and dumbness to the world around it - thus literally gaining an actual edge in the game. Mind though that such attempt requires at the very least some proper thinking and actual work rather than fashionable excelizing. Not to mention also that it certainly requires as the most basic prerequisite even playing first the game and talking to people to figure out what's what and why and how...

  1. Immature really, nothing to do with biological age as such. 

  2. In the words of their best known avatar to date, Baldwin Lushdrizzle, this frantic activity in front of the door while avoiding at all costs the handling of any possible handle is called having "invested over 100 hours into the largely unexplored goal of understanding and utilizing the game's stat system". If you are following his path, might as well know his words for it, too, you know? 

  3. One Time Password = as the name says, each key gets used only once and then it's promptly discarded. 

  4. It gets better/worse actually, since you get to also set how often the client should ask for an update on the world's situation so that the actual value as to "how often does the key change" depends on that too! 

Comments feed: RSS 2.0

Leave a Reply