Game Server

Car combat was designed and built for CS481(Senior Software Project). Car combat is a real-time multiplayer game. Car combat uses an architecture with an authoritative server. Each client connects to the server and communicates over a UDP socket. Each client streams commands to the server, and the server broadcasts the current State of the Game to all of the connected clients. The commands and GameState are described below: alt text

The game server runs its udp receiver on 2 goroutines, one for sending GameStates and one for receiving game commands. The main game loop in the GameManager is run on its own goroutine. Each Game command has a corresponding Command Processor which mutates the GameState for its corresponding command.

alt text

Project Information

Project Contributers:
Install dependencies:
    go get .    
Run Unit Tests:
    go test -v ./...  
Run Server:
    go run server.go  

By default, the server listens on port: 10001, this can be configured in the server.go file Car combat client implementation is located: here

Software Engineer

My interests include software architecture and team building. The views and opinions expressed in this article are those of the me and do not necessarily reflect the official policy or position of my employer past or present.