Jason's Corewar project page.

What is Corewar?

Corewar is a game played by two or more programs written in an assembly language called Redcode. They are run on a virtual computer. The object of the game is to cause all processes of the opposing programs to terminate. Free Corewar systems with source are available for most computers. Because of this Corewar programs are very portable. I see Corewar as very good system for looking at the behaviors of a simple computing system without the limitations many modern computer place on program structure.

  • My corewars evolution program ga_war.c.

  • This program will make corewars warriors in a closed system. I have built it under DOS, AIX , Irix, Linux, Solaris and HP-UX without change.

    Some programs after 250 cycles.
  • xx_1.red
  • xx_2.red
  • xx_3.red
  • xx_4.red
  • xx_5.red
  • cycle.text

    Some programs after 5000 cycles.
  • vv_1.red
  • vv_2.red
  • vv_3.red
  • vv_4.red
  • vv_5.red
  • vv_6.red
  • vv_7.red
  • vv_8.red
  • vv_9.red
  • vv_10.red
  • cycle.text

    Some other programs.
    This program was the winner of 1000 programs developed with
    a many types settings and run times. It was part of a population
    of 100 ran for 2500 cycles with a low mutation rate of 3% and
    a replacement/return rate of 1%.
  • zz_972.red

    This program was the best of a early batch of 50 run for 500
    cycles. I sent it to the beginer hill and got in at 25th.
  • ga_24.red
  • The report from pizza.

    This is a nice one for a 100 program 500 cycle run with 25% mutation.
  • x_25.red

    These are just some simple forms.
  • djn-1.red
  • djngun-1.red
  • mov.red
  • movgun.red

    I have noticed that the programs seem to pass though
    stages that cycle between high and low rates of replacement.
    Also as program size seems to become stable at some size less
    than the maximum size in the config file. This I think is a function
    of the mutation rate. Larger programs stand a better chance of
    preserving a helpful development with a lower mutation rate. So
    slow mutation seem key to further improvements.

    I think a very large population is not nessary for improvement, but
    the total number of battle tested is. So 20 programs 1000 times
    may be about as good as 100 programs 200 times. This will not be true
    at the limits though populations >5 should not do as well as a larger
    group would. Large populations have the advantage a divergence which
    may help against outside programs.

    The strongest program I developed so far was from the largest population
    run for the largest number of cycles. It out performed all programs from
    shorter smaller groups and had the best outside showing against human made programs.

    Some Links.
  • Martin Ankerl's CoreWar Page
    Martin has created an evolver "yace" originally based on ga_war.c
    it integrates exhaust and doesn't use Pmars. He has had good
    results on tiny hills.

  • Exhaust
    Exhaust is a GPL redcode simulator for easy embedding into other programs

  • GTK+ Corewars
    A GTK+ Corewars redcode simulator and some nice web based hills

  • StormKing - The Corewar KOTH
    This is the place for Corewar info.
    Check out Corewar Genetics: The Evolution of Predation by John Perry.
    This paper gives a account of using Core war as a system for evolution.

  • The Pizza Server Home Page
    Another great site for Corewars info.
    Goto the Portable MARS page and get yourself a Corewar system.
    The Corewar FAQ is also here.

  • rec.games.corewar
    This is the newsgroup for Corewar.

  • Mathematical Models for Step Sizes.
    An article on the mathematics of Corewar by Steven Morrell.

  • Evolved Core-Warriors Or... If you can't make them, grow them.
    Some interesting results with ga_war and other evolutions systems.

  • Learning By Simulating Evolution Using Corewars
    Ryan Coleman's finding with corewars evolution.