It's been several months since I last tried the game I'm making online with a friend. What I'm working on is very multiplayer focused, for better or worse, and the approach I took was hacking in features for P1 as quickly as possible and worry about getting it working nicely for P2-4 later. In hindsight, I would not do this again.
The first reason is network code can be a bit much for my brain, and I'm a newbie scripter. It's one thing to pour through code and try to remember how the hell I cobbled it together, and quite another to do so while also pouring through each tiny event and make sure the right player called it, that the server knows about it, and updates each player accurately, without problems inherent to throwing data over an internet connection.
The second reason is that network code is just uninteresting. I started in this industry as an artist and then moved into design, and even the most overwhelmingly complex and immaculate Excel files were somehow enjoyable to me. There is something about the communication of ideas that can keep me happy despite how grueling the process is. But so much of network programming is just buried under the hood. No one is seeing the energy I spend. I'm spending energy to not suck. Though incredibly noble, I just don't find it as satisfying.
But today I played the game with a friend, testing some of my recent network fixes over the internet again, and despite my client having no network prediction -- my character was jittering because the game moves it locally and then stomps over that position with the "correct" data from the server -- it just felt so cool. I love exploring randomized environments shooting defeating baddies with a friend, watching his back, etc., etc. It feels great, and makes the remaining network tasks a wee bit more exciting.