I have been programming in Unity for a while, and ever since I started I could not wrap my head around the Unity Networking system. I understand on a whole how it works, I even made a small project using it, but it has always seemed to me like I did not have much control over the system (e.g. managing the streams of data, the lack of documentation about more advanced topics). Therefore, I would like to try to implement a peer-to-peer game without Unity Multiplayer. My current project has a lot to do with movement ( take for example a fighting game, a brawler), where there is real-action constantly being streamed. It is important that when something gets hit, killed, crashed into, the players get the update immediately. I know a few basic thing about socket programming and I am ready to learn even more. I imagine the system being based on byte arrays messages, that trigger specific actions on each player. For Remote Procedural Calls (RPCs), this looks like a good solution, but what about streaming the constant position of a player? How can I stream it fast and easy without overloading the network channel?
I would like to hear different approaches to this problem.