Networking is a fairly difficult topic to start with. I wouldn't recommend it. also please note that many games get networking hoplessly wrong. See the different forums for your fav game to see the problems apon problems with the network side of life.
So start with a game. Add networking later. I'll wait.
Now you have a single player game working fairly well we can start thinking about networking. There are libs and stuff to make the "marshaling" of messages or objects easier or harder. But we typically now come to the first important design question. Peer to Peer or server based. These days many people are just going server. But for smaller games like RTS etc peer to peer can still work well.
Bad connections do run badly and mostly we humans have got very good and adjusting ourself to things like lag. There is not much you can do about it. The speed of light is just too slow. (260ms ping for around the world is about as good as it gets, and in fiber it is a little slower).
Next is TCP or UDP, if your using a lib (you probably should) that will do this for you and you don't need to worry about it. Mostly you should ALWAYS START WITH TCP. No UDP is not faster, and it is not "better". there is one very narrow exception to that rule. A game where you can send the entire game state in a single packet and you send such packets at a fixed rate. Quake 3 and Unreal do this. Outside that use TCP. Seriously. Do you know what the 2 generals problem is? What flow control is? Congestion collapse? Packet fragmentation? Then you don't know enough about networks to tell me UDP is better and you don't know what TCP really does.
Now if your using a lib or TCP we finally get to your questions more or less. As stated before the simplest solution is to just send the full game state every game tick to all clients. this only works for small games. But when it does work it is a really simple system that is fairly easy to implement. Users send actions to the server. Server at the end of a game tick, processes all actions. Sends out new game state. Rinse and repeat.
More complicated systems are much harder to implement. But that is a good place to start. Esp if you havn't done networking before.