This is a small top-down shooter game made with the purpose of learning basics of networking.
This project implements multiple interfaces allowing me to add any Networking Library as long as it can implement that interface, which could be highly usefull for implementing networking for different platforms, e.g.: Steam/Console and etc.
When running the project, as an argument you can pass the host ip address you will connect to, you can ignore it, if you want to test it in localhost.
INetworkHandle - used to specify different NetManager implementations(in this case DirectIPNH with LiteNetLib),
IPeerHandle - used to specify the PeerHandle implementation for each NetManager,
ISerializeableHandle - used to specify which struct/class can be serialized/deserialized for networking packets,
IInterpolateableHandle - which objects can be interpolated, e.g. players,
PacketType & PacketChannel - enums for separating different packets
S - starting server/creates client and connects it automatically as well
C - creating a client and connecting it to localhost or another address is specified
Arrow Keys - move around
Z - shoot
R - reset position to the center
Top-Left - Health bar; Peer number; If is host
Bottom-Left - every player's score
Showcasing connection to another server using direct IP attribute:

- FNA for rendering and update loop
- LiteNetLib for networking
- FontStashSharp for rendering text