As far as running off the clients goes, there are some parts of the code and some situations where the client could do most of the code. For example, lets say your in a town where there is really not much to do. If the game is area based (enter a new area, new map loads) then you could have almost everthing run off the clients while they are in that area. This is fine since there is nothing to gain by cheating (just remember to make sure they can't change anything important). However as soon as they would leave this situations and enter a ex: a combat situation, where things like strenght levels and experience would come in to player, the server has to take over most the load, to insure ppl wont cheat.