I've done a little bit of network coding for games before, but primarily with TCP for games that don't really need to simulate real-time interaction. I am working on a (somewhat) simple 2D Java game which I would like to have networked multiplayer. I would rather not use any robust network APIs as I would like this to be a more involved learning process.
In your game networking experience, what is an efficient way to represent the game state which is sent to clients from a server? There is the most obvious but probably least efficient way, which would be to create some sort of game state context object with each player's location, animation state, etc., and send that out to each player every update. That doesn't seem terribly difficult to implement, but would probably be too large to achieve anything close to real-time interaction (of course my experience with this is limited so I may be incorrect).
Is there a solid way any of you have used before to only transmit changes in state, and is there even a large enough disparity in performance that it is worth the extra work?