Quote Originally Posted by Maxelcat View Post
ugh, wack too many responses already TLR

Speaking as an experienced DM, when dealing with only one enemy, (like a dragon) In P&P I would:

Ask the Players to roll their Initiative.

Inform the players of the monsters AC/DR/MR etc (could be passed to client side?)

then going in order, top to bottom, the players (client side?) would tell me how much damage they did in their round.

Then I as the DM (server side) would process that info, and on the dragons turn issue out the dragons changes/attacks/damage/actions/whatever...

granted, DDO isn't P&P, isn't done in turns/rounds yadda yadda... also I'm not a programmer (other than some basic) in any way...


but it seams to me:

Client says: attack on
server: attempts to roll dice and apply effects (that's a lot of numbers... what RND# are you using? could you make a machine that only rolls numbers? then the game servers could just sample from it (when needed) instead of rolling it themselves? cause a server just rolling d2/d4/d6/d8/d12/d20/d100/d? could do that all day)

how i used to do it P&P

Player: rolls dice works out damage and effects sends to server
Server: takes it and then responds

end effect: huge combats go by easy with out waiting for the rolling of mountains of dice, and since every character has a set amounts of attacks per second...

alot of us are running pretty wikkid machines on the client side, i don't see why not off loading some of the load to the client wont work (other than lag from the ISP side but that's changing)

Personally, I run a duo core and the other core and more than half my RAM isn't doing anything, and my wifes quad core with way more RAM is barely clicking over. total bandwidth use from here (both running DDO and a server on top of it) is only topping out at 10% of 5Mbips down and 3/4Mbips up...

personally i think sharing more of the load on the client side might help... Its all known values set down by you...

granted, that does expose you to packet shaping on the client side, but you could always stick in a one time encryption key (for packets) on every log in...

gone are the years where the server was king. most of us are running machines that used to be servers back in the day.

(granted, im not a programmer, but I am a 11 year system admin, and co-op computing is new)


as i see it...

if the crunching numbers is the problem... then build a machine that just does that then wire that in. granted, that's a probably a huge rewire of code... but link that number generator with the rest of the farm with OC and let it run...


Server: !needD20? (call#1,call#2,call#3)
numergen(x): !#!

that's how i would do it. **** the rewrite. (just don't forget to have a back up machine generating numbers, and a back up of that, and a back up of that...) last thing you want to say to a customer is "oh wait, the only thing doing this job has crashed..."
bad idea, very prun to clientside Steamhacks. IE, client sent false information to the server.