I just finished up the Advanced Networking class at DigiPen, and I just gotta say it. Network programming is hard! It’s easy to screw up, and even implementing simple features cleanly and robustly can be challenging. Take enet as an example. If you read through their feature list, it looks like pretty standard fair for a networking engine. My team and I more or less implemented this in our class. It fell quite short of enet.