Ok, so I realize this has been discussed over and over as I have read countless number of Stack Overflow threads, and articles on the web. I currently have a TCP Asynchronous C# .NET Server running on a VPS.
I have gotten this to work well for the multiplayer lobbies such as connecting players to the game and what not. My main problem is when the game starts, as It becomes really blocky. So upon my research
I found some very helpful threads on Interpolation in which they guided me towards a basic (Difference (Serverpos - Localpos) * Deltatime (Time between server updates?) * Interpolation Constant). This worked in the sense that it smoothed out the frame rate, but I still had a momentary lag on the server update times.
However my main problem is that I am using the accelerometer to update the position of each player, however my server cant receive that data and process it as fast as the accelerometer updates which causes it the start messing up.
So today I tried simply sending data to the server, however my max transfer time is around 350MS, that keeps it from combining messages on accident.
I then came across "Dead Reckoning", which would work in theory however since you wouldn't be keeping track of paddle positions up to date in theory. What happens when the ball hits your opponents paddle? Do you automatically jerk the paddle into position and reverse the ball position?
Basically I think I have spun myself in a big circle, by just theorizing different ways of doing this. I am also aware of UDP, but I cant imagine a Pong multiplayer would require me to run a UDP connection, there has to be a way to use TCP.
Anyways, thank you for any help you guys give me. I am new to this and I think have gotten lost in the web of Networking.