Friday, March 11, 2011

Network Architecture Client Server vs P2P

This is a question I am thinking these days. I love pushing what is normal into something new but I also hate to be wrong, mainly because I do not get a cookie at the end. So while everyone is doing Client Server type of architectures I want to really know why.
  1. It is because punching a hole in the NATs could be a problem...? No really, I think everyone has skype or other p2p programs and they work just fine. 
  2. Is it because Cheating is a problem? Not really as you can cheat in both architectures, and people is not so concern about how they die but rather why.
  3. Is it because it is more complicated in P2P? No really...
  4. Is it because there will be more over all traffic, which increases the chances of something going wrong? I don't think this is valid neither, because the internet handles plenty of traffic already.  What about local traffic? again not a big deal for the download side because it should be about the same not to mention if other people in your home is using the local net. But something related to this may be...

I think it really comes down to to a simple thing. I think it has to do with the upload rate. Since a node in each peer really has to upload X*Nplayers whether a C/S only has to upload X. Then to make something **new** can not be a pure P2P and definitely not a pure C/S.

I read an interesting post of how you could think outside the box and make the decision base on the actual data. This sounds more like something worth exploring. However there is a potential issue here and is that you could get the best/worse of both world.

In a related topic, I am convince that there is an untapped resource in the network components of games and its the fact that they could share computations. Usually a C/S the server does the hold CPU work and Clients get the results. Which is great for the client but not so great for the server. There is a sharing of complexity as the clients usually handle all the rendering crap. Well this is great but the model does not scale well.

The peer to peer approach by its nature hints at the possibility of sharing computation across Nodes. If this is the case then we could have a cloud base architecture which gets more and more powerful the more nodes we add. I am definitely in the belief that this is possible and because of this it may merit looking at the p2p approach even if it in a hybrid way.

I will keep this blog posted on what I find.

No comments:

Post a Comment