See related writings:
How it works
- Online mode: Nakama
- Online mode: https://github.com/louis030195/octree for “network culling” i.e. if an animal moves in (1000,0,1000) and I’m in (0,0,0) I don’t want to be notified of that.
- Hosts (any life form) have characteristics. When hosts reproduce sexually or asexually, the offspring characteristics are its parent’s plus mutations.
- Hosts behaviour code MUST be generic, so we can either implement simple heuristics like state-machines, behaviour trees or go more complex like reinforcement learning.
- Observers can trigger artificial selection, the goal is to implement actions that offer the possibility to influence evolution. Currently what came to my mind: any way to protect, harm, heal, feed … some species
git clone https://github.com/louis030195/niwrad
Online & Offline
- Unity to build artifacts or find a client here
- make is recommended:
sudo apt install make
- protoc, protoc-gen-go, protoc-gen-csharp
sudo apt install -y protobuf-compiler
go get -u github.com/golang/protobuf/protoc-gen-go
usage: make [target] ... targets: help Display this help build-client-artifact Build unity client build-server-artifact Build unity server build-unity-image Build unity server docker image build-js-image Build js client docker image build-integration-tests-image Build integration tests docker image build-nakama-image Build nakama docker image build-proto Build protobuf stubs deploy Deploy cluster un-deploy Un-deploy cluster client Run client test Run unit tests and integration tests
# Should run Unity unit tests (but unfortunately Unity CLI rarely works on Ubuntu 20.04 at least so it Seg Fault) # Run integration tests with Helm (imply that you have a configured k8s/k3s cluster, Helm) make test