Up to Main Index Up to Journal for October, 2012 JOURNAL FOR WEDNESDAY 10TH OCTOBER, 2012 ______________________________________________________________________________ SUBJECT: Good old Antoine de Saint-Exupéry - delete, delete, delete... DATE: Wed Oct 10 22:21:08 BST 2012 Tonight I worked on WolfMUD. However I seem to have simplified a few things and ended up deleting a lot more code than I wrote. Hence my reference to Antoine de Saint-Exupéry[1]. Still the less code there is the less there is to document, test and maintain. It also got me thinking about dropping something I was going to include in this rewrite. I was planning on have multiple worlds. Thinking about it now I can simplify things even more by NOT having multiple worlds. This does not mean 'losing' any functionality though. I was planning on have two types of 'multiple worlds'. In the first the game server listens on multiple ports - one for each world. In the second you connect on one port and select a world to enter from a menu. If one game server is listening on multiple ports and running all your worlds and something goes wrong - well there goes your universe :( Same goes for listening on one port and using a menu. A much better idea is just to start different game servers running on different ports with their own data files for their world. If one goes bang all of the others will keep running. If you want the option of choosing from a menu you can have a mini menu server that accepts all the connections and then proxies the connection to the selected world. Of course if the proxy goes bang you lose all the connections. However there are a number of advantages to the proxy idea. Firstly you could get the proxy to pause connections to a world while it's server is being restarted so player aren't disconnected and have to connect again. Secondly the proxy could do load balancing - have the same world running in multiple instances and when one instance gets busy[2] people join one of the others. Thirdly you could have different worlds running on different physical servers and connect through the proxy[3]. In fact I've just convinced myself that running multiple worlds behind one game server instance is not the way to go. One world per game server and proxying is a much more flexible idea. Ho-hum, now I can delete more code and simplify things a bit more ;) -- Diddymus [1] See ../index.html for the quote [2] Or an instance stops responding, goes bang or some other nasty occurs [3] Would obviously need some way of syncing data if it's between physical servers. Up to Main Index Up to Journal for October, 2012