Yes online is some what of a pain, but mostly just connecting to people. I've based my last project's networking off of this demo. However, it doesn't handle things like connecting and disconnecting well. Like for example, sometimes my server would crash and the client had no idea. But overall it doesn't seem too hard to set up correctly, and the way packets work is actually very simple. Literally like reading/writing to a save file. Although netcode does require a different way of thinking/writing the game than single player games. Lots of things you take for granted have to be networked, so they sync across all clients.