Project Status: IN PROGRESS - EARLY DEVELOPMENT
This is a command-and-control server and client implementation for the "Pixelflut" game. This project consists of two components:
- The
Commanderer
, which is the command-and-control server. This server will be used to control which picture is drawn to which coordinates and to which pixelflut server. - The
Pixelknecht
, which is the client implementation which will draw the picture recieved from theCommanderer
to the canvas using the Pixelflut protocol.Knecht
is a german word forservant
.
Mainly getting startet with Golang, especially with asynchronous programming using channels and goroutines.
The aim of this project is education, NOT to really write the best pixelflut client.
This project is designed for development using the Nix package manager.
# enter dev shell
nix develop
# apply code format
nix fmt
# run the pixelknecht (pixelflut-client)
nix run
# run the commanderer (CnC-Server)
nix run .#commanderer
# start local pixelflut server for testing
nix develop
pixelnuke
For interacting with the Commanderer, there is currently no frontend available. But there is a Bruno collection available for interacting with the REST API.
Of course you will also need a Pixelflut server for development. I'm using the pixelnuke server for now.
# build the commanderer container image
nix build .#commandererContainerImage
# load the container image into docker
docker load < result
# start the commanderer container
docker run -d --name commanderer -p 9000:9000 ghcr.io/rubenhoenle/pixelknecht/commanderer:unstable