title: Implementing computation on a TCP based game application
body: <p>We are planning a real-time network game application for mobiles.<br>
  After some researches and studying, we decided to use a TCP connection between the server and the clients (mobile devices) by implementing <code>Socket</code>.<br>
  As we are writing the protocols, we came across the following question: where should we implement the computation? In the user's device or in the server?</p>
  
  <p>For example, imagine a short game between 5 players which does not require communication until the game ends (hitting the screen as fast as you can or something like that).<br>
  At the end of the round, the clients send their score to the server, and the application should display the loser or the winner.</p>
  
  <p>Where should the computation take place? Should the server collect all of the scores, compute the maximum and the minimum and send back the loser and winner? Or should the server send back all the scores to the players, in which their devices will compute the results?<br>
  What are the pros and cons of each strategy?</p>