Implemented a simple tank game multiplayer game in C++ using UDP client server architecture. Features: Server discovery - Using 192.168.0.255 broadcast address (You can change it if needed in config.h) Reliable messages (reliable_events.h & charlie_gameplay.hpp) Map downloading - Client downloads the map from the server if not found on the client. Note: does not save the map on file. - I did not figure out how to send out map (did not fit in one package?) in less packages so now it will send every tile as separate package. - You can test this by deleting (assets/map1.txt) from client Cut bandwidth usage - Sending entity and player data has been optimized by sending less data. - Position as uint16 for x and y - Turret and tank rotation as int16; - Similarly input bits use int16 for rotation (instead of float) Master server - master server address is in /assets/masterserver.txt - You can change node app port and IP address in the .env file - Local game server sends heartbeat messages to keep them in the server list - NodeJS master server keeps a list of local server addresses - Clients requests game server from master server and receives it as bytearray - launch masterserver from: "/masterserver/index.exe" Assets: https://free-game-assets.itch.io/free-2d-tank-game-assets https://2dgameartguru.com/top-down-extras-2-tank/ https://adamatomic.itch.io/gallet-city https://pixabay.com/photos/tank-war-military-army-battle-4885714/ https://opengameart.org/node/46538