You have to calculate changes at few machines at least to prevent cheating. And deal with desyncs somehow.vukica wrote: P2P doesn't mean everyone get's to share the same load.
graphics is done localy, all you need to send to "peers" are changes. as far as i can remember minimum bandwidth for a very very very high density environment was about 100kbps. that's peak, not average.
and if someone has a poor connection, only he/she suffers from it.
Plus, slow machine means that it can't calculate even what it see right now. If it will expect someone else to send new data over - it will visually lag even more.
AI is hard, but physics and shooting calculations are trivial. They could be offloaded to the GPU and calculate dozens of ships at same time.client-server is no good since host(server) would have to take to much of a load. now, someone could say that eve online does it in a persistent universe. well... not realy, since it's not real time. there are all sorts of gameplay tricks that mask the lag. kind of like windows animations in windows vista/7/8. not much but 200ms is enough to kill the mood in a FPS.
Sure, there will be network delay, but well... people are playing with delay above 300ms. It's hard, but ok - it's not the FPS after all.
P2P won't solve delay issues - if someone is in Australia it WILL lag. In case of client-server model it will lag only for him. In case of P2P model it will either slow down time (which is extremely annoying - see Supreme Commander) or will lag for everyone or will create "rubber-banding" effect, which is even worse (see Counter-Strike).
I'd rather see client-server model with server offloading some parts of generic calculations (without client acknowledging what exactly this calculations are about, to prevent cheating) to the clients with good delay. I.e. distributed computation.besides, i did say hybrid was better. that's mostly p2p, with node hierarchy and probably central auth & content servers. a super-node is a node that has more processing power and can coordinate ordinary nodes. super-node would also be responsible for a bigger share of the environment.
But server should be designed in such way that it will be able to handle all this calculations itself, because clients are unreliable.
Ah, MMO... Yes, for MMO it would be just cost inefficient (i.e. you will make less super-profit then in general) to make all calculations on server.we are of course talking about MMO concept...
ordinary multiplay is obvious, but would still probably require some load sharing between adjecent nodes.