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