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#.
server
lobby
manages lobbies of players with WebSocket connections to the server, and messages between themapi
defines API endpoints for finding, creating and joining game lobbiesgame
implements the game logic (resolving player orders on the board)
client
src
contains C# game scriptsscenes
contains Godot scene filesassets
contains 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