Casus Belli ("justification for war") is a game of strategy, diplomacy and battle. It was originally created as a gift by the father of hermannm, a developer of this project. This digital edition of the board game consists of a server written in Go, and a client built with the Godot game engine and C#.
serverlobbymanages lobbies of players with WebSocket connections to the server, and messages between themapidefines API endpoints for finding, creating and joining game lobbiesgameimplements the game logic (resolving player orders on the board)
clientsrccontains C# game scriptsscenescontains Godot scene filesassetscontains textures, images, icons and fonts
- Install Go: https://go.dev/
- Run the server: navigate to
casus-belli/server, thengo run .- To run in single-lobby mode for local server hosting:
go run . -local
- To run in single-lobby mode for local server hosting:
- To run cross-compilation build script, install Mage: https://magefile.org/
- Run
mage crosscompile(incasus-belli/server) to compile server for all supported OSes
- Run
- Install Godot 4.1 or newer, with .NET support: https://godotengine.org/
- Install .NET 7.0: https://dotnet.microsoft.com/en-us/download
- Install .NET project tools: navigate to
casus-belli/client, and rundotnet tool restore - (Recommended) Install the Csharpier formatter plugin for your IDE, and enable format-on-save: https://csharpier.com/docs/Editors
- Tomas H.V. Mørkrid for creating the original board game
- kristley, bjorvik, Lars-over and ragnsol of Immerse NTNU for their contributions to the game client
- gorilla/websocket for the Go WebSocket package