Distributing personal adventures

I had a thought while thinking about my current project I was hoping to get some feedback from your guys as to its worth and/or practicality.

As some of you know I’ve been writing a little adventure game of late which is intended to be some sort of cross breed between MMOG and NWN. Its here for those who’d like to see:

http://www.newdawnsoftware.com/miniad

Back to the idea, the players can travel round the “main” world and have adventures like in most MMOG. However, I wanted to add the possibility of going on seperate personal quests as groups (a bit like anarchy). For instance, you talk to the mighty wizard and he asks you to retrieve his orb or power. He creates you a portal which you and your party step through and hence enter a new personal area that only exists for you and your group mates in which you can have your “MINI ADVENTURE!” :slight_smile:

The idea was to palm off the processing for these personal adventures onto the clients. So someone in the group takes on the actual server task onto their machine. The server bandwidth isn’t used or the processor. Thoughts so far are:

a) Clients should be able to decide (and be tested) if they want to support being a server.

b) If a client dies/disconnects the current game state must have been synced somewhere to allow one of the other group members to pick up the ball (as it were).

c) What to do if no group member is available to host the adventure? Stick it back on the server?

I wasn’t intending to implement this up front but wondered on the practicality of it? If its worth while I might take it into consideration when designing the adventure system.

Any comments gratefully received,

Kev

If you haven’t already, I’d go and (re-)read all the reviews, post-mortems, criticisms, fansites, LTM attacks etc for NWN. They had quite a lot of “issues” with the player-run-servers as you described, not least the scalability and persistence. I’m not saying they did it particularly well or badly (IMHO I think this aspect was one that got bitten badly by “must cut features in order to make deadline”), but the critiques and any scathing reviews reveal a lot of the problems you’re likely to face.

PS LTM = Lum The Mad, and friends. Can’t remember off the top of my head the main site that’s taken over from ltm (water something? hmm…), but these are sites that publish one-sided reviews full of expletives and/or scathing attacks on MMOG’s. Normally vitreolic, sometimes funny, sometimes waffling and a bit far up their own backside - but a good source for spotting the problems that will REALLY upset players.

A few quick comments:

(1) The fail over scheme you suggest is usually called “Host Migration.” In general its a pain in the ass though you might be able to make simplying assumptions specific to your game.

(2) The Client Is Inherently Insecure
That bears repeating.
The Client Is Inherently Insecure

There is no way to secure the state of a machine your user has control over. If you are at all worried about cheating then I’d drop this idea.

Pain in the ass :- how about just distributing the “movement server”. Ie, logic still goes through the centre, movement goes through the client, you reakon this would simpify it enough.

Security :- while I’m going to do my best to make the server elements secure I think I just have to accept that the client could be hacked. Afterall, its in java. For this project I’m going to try not to worry about it, add a crosschecking system to the server. However, you’re right, this would be insecure.

The main reason I want to do this is that I’m a hobbiest, although I’m happy to pay for hosting a box to run it on the bandwidth cost in the UK is massive. The more bandwidth I can palm off the better.

Obviously, I’d like to keep the game free since I don’t think people would pay for it :wink:

Kev