This was my first experience with BSD sockets, UDP protocol and networking in games in general. There is no reliable way to exchange messages, data is placed in the packet by hand thus very error prone. The game uses SDL2 for graphics.