March 6, 2014 11:09 PM
9½ years ago I rudely forced Shim to write a Flash front end to my insane multi-threaded high performance (1000 moves per second, 15,000 simultaneous users) web-based game engine.
Sadly, two days ago, the machine that provided the connection between Shim's client and my server was switched off - forever.
Fortunately, back in the mists of time, Shim had made two excellent decisions:
Firstly, although the spec required the server address be hard-wired into the client, he made it sneakily overridable by a config string (handy for debugging).
Secondly, he didn't put a limit on the size of the <session> tag we used to identify sessions. When we built the system, my server tracked sessions with a GUID; nowadays we've all got a bit more bandwidth - so why not just send the session itself?
So - 9½ years later - with absolutely no changes to Shim's code - we were able to quietly switch out the back end.
Obviously, I had to rudely trick m'colleague Martyn into doing all the hard work necessary to completely change the way the engine worked - so as of today it's no longer running on a single server hidden in the back of a broom cupboard, but rather it's distributed over an entire array of vastly powerful machines.
You still need Flash to play the game, of course. Re-writing the entire server and writing a new client would be a lot of work.
copyright ©1998-2017 Sean D. Sollé.