An implementation of r2wars:
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
emile 907f5bc763
removed genetic aspect, might add back later
2 years ago
bots updated the bots 2 years ago
src updated the default round time 2 years ago removed genetic aspect, might add back later 2 years ago
go.mod go mod 2 years ago
go.sum go mod 2 years ago


The goal of r2wars is to place two bots in as shared memory space and let them battle against each other until one of them cannot run anymore, because of some kind of broken instruction.

A more informal README can be found here.


You'll probably first of all want to simply play with the two provided bots. In order to do so, run the game like this:

go run ./... -t 1s -v ./bots/warrior0.asm ./bots/warrior1.asm

This runs the game with a round duration of 1 second and an info verbosity level using the two provided bots. You can attach more bots if you'd like, each bot increases the arena size by 512 bytes by default.

You can tweak most of the settings as displayed in the help:

$ go run ./... -h
Usage of src:
  -arch string
    	bot architecture (mips|arm|x86) (default "x86")
  -bits int
    	bot bitness (8|16|32|64) (default 32)
  -maxProgSize int
    	the maximum bot size (default 64)
  -memPerBot int
    	the amount of memory each bot should add to the arena (default 512)
  -t duration
    	The duration of a round (default 250ns)
  -v	info