Networking generaly is a killer. I've made my own net-lib based on FPC sockets and winsock2(in windows) and that still means I made only 1/3rd of my work. I'm making a one-screen "quasi-3d" shooter lentilwars ( http://lwars.sf.net - be warned, current net play is totaly desynchronized - not much playable).
I'm currently rewriting my whole event system to a stack-like structure of keypresses so I can remember the whole history and do "backtracking". For example I am a client and I get an event in time MYTIME - 5 that another player started shooting. if this happened now all I could do is start to shoot with that player NOW and hope for best. With that stack-event system I will "go back in time" start the player's shooting and recalculate the situation (so next blit might be a bit of a fun if the latency is high enough).

It's still not the best thing and I'm sure not much good for RTS but I just wanted to show how networking can be a killer. My hint to starting projects: go singleplayer!