Niwrad by louis030195 - 2

Games & ProjectsNetwork

Distributed multiplayer sandbox evolution simulation

Unity 2019.4.11f1MIT LicenseUpdated 4 days agoCreated on June 14th, 2020
Go to source

niwrad

Acquire activation file Build project

Alt text

Try the offline WebGL version directly here, if you want to try on other OS (Windows, Linux, Android, Web available) check out latest Github Actions artifacts.

See related writings:

How it works

Dependencies

Objectives

  • 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

Development

git clone https://github.com/louis030195/niwrad

Prerequisites

Online

  1. Docker
  2. Install kubectl
  3. Install helm
  4. Install minikube (for local k8s)

Online & Offline

  1. Unity to build artifacts or find a client here
  2. make is recommended: sudo apt install make
  3. 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

Testing

# 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

TODO

Show all projects by louis030195