Well. From my understanding DNS works like this:
Local DNS checks its info for the adress, if not found then it tosses it up to a higher level that it knows has DNS ability, if that fail then it gets tossed again, ect. until you finally hit the master DNS. This is why some web sites can go awol when hosted through a DNS system that is not registered with those who techinically function as the master servers. As long as your own private DNS is working, it can redirect and resolve any links that you need, but if your hosting .hack sites and the people that normally register .com, .edu, etc. refuse to recognize and record that info (very likely, since you are not registering what they consider to be a 'valid' IP with 'them'), then when your DNS dies, so does any connection to all .hack addresses.
So my theory, though untested, is that having each mud server also act as a DNS server, you should always be able to reach at least one server that recognizes the main host name of www.play.game, even if your normal server is offline. Though actually the address is backwards now that I look at it, it should have been like: 'www.play.game and www.mygame.game' or 'www.game.play and www.mygame.play'. In theory, based on the way the internet is 'supposed' to operate it should work.
However with some servers intentionally redirecting traffic where it 'thinks' is more efficient, you now sometimes get entire sections of the internet becoming inaccessable from say the southern US, but still accessable from NY. The NY server may simply refuses to redirect traffic in a direction 'it' thinks is backwards compared to the origin of the message. It can take hours before a nearby system realizes a problem exists and then often someone in the middle of the alternate path will refuse to redirect the traffic anyway. It might be more efficient, but it is a bloody pain in the rear and is not even close to what the original design was 'supposed' to do. :p
As for virus code or the like.. It would be more limiting, but you could design it so that weapons and skills where limited to specific parameters. In most cases a combat skill just emotes different than others. If it effects other things, then you can still do it, by exapanding the range of things that you can give it to effect, all without sending any code at all. Items are a bigger issue, but not a big one, since such an item will only exist in one 'real' instance on the new server, protections can be used to keep it from making copies of itself (or unlimited ones of something else) and to make sure it can only effect those things in the game you expect. I.e. if it isn't an immortal it shouldn't be able to access a nuke command and you can't carry a player object on your person, so it can't be immortal, etc.
There are bound to be bugs that need to be worked out to keep malicious things from actually transitioning from system to system, but what it can do depends on what you allow it to do in the first place. You can't design the mud driver with the assumption that 'everything' on it is 100% trustworthy. This makes it potentially less flexible, but not by much. 90% of what anything does involves sending text out to people, the rest is changing stats or other such effects. As long as code is internally limited so it "can't" do anything more dangerous, all you need to worry about is permanently banning any item (or player if they show up again with something similar) that happens to do something you don't like. |