Sections
Home
Hills
Infinite Hills
Tournaments
Software
Evolving
Optimizer
Community
Newsletter
Discussion
History
Sections
 
For Beginners
First Steps
FAQ
Guides
Lexicon
Benchmarks
For Beginners
> Home > The Corewar Newsletters > Core Warrior > Issue #1

Issue 29                                                          May 13, 1996
______________________________________________________________________________
Core Warrior is a weekly newsletter promoting the game of corewar.  Emphasis
is placed on the most active hills--currently the '94 draft hill and the
beginner hill.  Coverage will follow where ever the action is.  If you have
no clue what I'm talking about then check out these five-star internet locals
for more information:

FAQs are available by anonymous FTP from rtfm.mit.edu as
pub/usenet/news.answers/games/corewar-faq.Z
FTP site is: ftp.csua.berkeley.edu /pub/corewar
Web pages are at:
http://www.stormking.com/~koth                  ;Stormking
http://www.ecst.csuchico.edu/~pizza/koth        ;Pizza
http://pauillac.inria.fr/~doligez/corewar/      ;Planar

Newbies should check the stormking page for the FAQ, language specification,
guides, and tutorials.  Post questions to rec.games.corewar.  All new players
are infinitely welcome!

If ftp.csua.berkeley.edu is still out of service, you can download pMARS at:
Terry's web page--http://www.infi.net/~wtnewton/corewar/
Planar fpt site--ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars
______________________________________________________________________________
Greetings.

This week the discussion in the newsgroup has been about self fights,
most opinions have been against self fights with those arguments:

-self fights disadvantage some warriors unable to kill themselves
-self fight waste machine time
-in a tournament there are no self fights, one fights only his opponents

with those arguments pro:

-removing self fights will unbalance the score, because only with self
 fights every warriors fights against the same warriors.
-self fight score has little influence and it's important to keep
 rules constant

My opinion is known and I won't express it again here, but it's
important we discuss the topic, not long ago it seemd everybody was
against self fights, in the polite way usual in the newsgroup-

--Beppe Bezzi
______________________________________________________________________________
Current Status of the Internet Pizza Server ICWS '94 Draft Hill:

Hill Specs:
         coresize: 8000
   max. processes: 8000
         duration: after 80,000 cycles, a tie is declared.
max. entry length: 100
 minimum distance: 100
    rounds fought: 200
  instruction set: ICWS '94 Draft

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  47/ 37/ 16                  Scan Man        David van Dam     158      79
 2  47/ 40/ 12         Wind-up Toy v1.2c          Ian Oversby     155     111
 3  41/ 35/ 25               Thermite II        Robert Macrae     146    1659
 4  40/ 35/ 25                T.N.T. pro    Maurizio Vittuari     146      38
 5  38/ 33/ 29              La Bomba 1.3          Beppe Bezzi     144     230
 6  41/ 37/ 22                      Blur        Anton Marsden     144      66
 7  40/ 35/ 25                      test    Maurizio Vittuari     144      12
 8  40/ 36/ 24      Grilled Octopus v0.5         David Boeren     143     875
 9  28/ 14/ 58             Hazy Shade II             John K W     143     618
10  34/ 25/ 41     Walk Like An Egyptian             John K W     143     217
11  40/ 37/ 23             Blanket Party             J E Long     142     383
12  38/ 34/ 28                 Yogi Bear              P.Kline     142       2
13  39/ 37/ 23                 Chameleon           M R Bremer     142    1130
14  42/ 43/ 15            Stepping Stone          Kurt Franke     142     472
15  40/ 38/ 23       The Core Clear V1.3        David van Dam     141     174
16  30/ 18/ 52                  test eif                  JKW     141      56
17  38/ 36/ 26              Flimsy v0.4a          Ian Oversby     140     172
18  31/ 22/ 47            Impfinity v4g1               Planar     139    1858
19  38/ 38/ 24          Gem of the Ocean              P.Kline     138     528
20  34/ 31/ 35                    Flurry        Anton Marsden     138     620
21  25/ 12/ 64                EvolCap XI       John Wilkinson     137     368
22  41/ 45/ 14              Solomon v0.3          Ian Oversby     137     271
23  36/ 34/ 30               Tornado 3.0                Beppe     137    1460
24  34/ 42/ 25             stone test 11                Beppe     125       1
25  24/ 32/ 43                 Torch t19              P.Kline     117       3

Weekly age: 107 ( 78 last week )
New warriors 8  Turnover/age rate 7%
Average age:    456 ( 403 last week, 464 the week before )
Average score:  141 ( 142 last week, 142 the week before )
The top 25 warriors are represented by 13 authors: JKW with 4,
Oversby, Bezzi, and Kline with 3, van Dam, Vittuari and Marsden with 2.

Van dam replaces Snanny boy, see it in extra extra, with his big
brother Scan Man that kees the top from his appearance; Wind up toy
and Thermite held second row positions easily while The Core Clear is
slipped down a little. Vittuari, after some testing, puts his new
version of T.N.T in a good position. La Bomba bounces up, maybe thanks
the stone test, some of which successful, made by his author, Beppe
Bezzi.

Of the over 1000 veterans Thermite is the more healthy, always in the
hilltop; Chameleon has been always seen around tenth position and
Impfinity bouncing a little from 15th to 20th. Tornado seems in
serious troubles, always near the bottom.

The competition is always fierce, we have less than ten points from
the third to the the 23rd, even if the King seems to have a good lead
over the runners up.
The hilltop is kept by different kinds of warriors, scanners,
p-spacers, bombers and replicators are having their share of glory.

Paul submitted his new version of Torch, without a little work it's difficult it will repeat the success of it's former version
______________________________________________________________________________
94 - What's New

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  47/ 37/ 16                  Scan Man        David van Dam     158      79
 4  40/ 35/ 25                T.N.T. pro    Maurizio Vittuari     146      38
 6  41/ 37/ 22                      Blur        Anton Marsden     144      66
 7  40/ 35/ 25                      test    Maurizio Vittuari     144      12
12  38/ 34/ 28                 Yogi Bear              P.Kline     142       2
16  30/ 18/ 52                  test eif                  JKW     141      56
24  34/ 42/ 25             stone test 11                Beppe     125       1
25  24/ 32/ 43                 Torch t19              P.Kline     117       3

Worth notice are Scan Man, new King of the Hill, and TNT pro
______________________________________________________________________________
94 - What's No More

 #  %W/ %L/ %T                      Name               Author   Score     Age
26   2/  2/  0                     gtest              P.Kline       6       7
26   2/  2/  1                  testb1<<    Maurizio Vittuari       5       5
26   1/  2/  1                      Test        Anton Marsden       5      16
26   7/  7/  2                   testb1>    Maurizio Vittuari      22      12
26   1/  2/  0                Scanny Boy        David van Dam       4     399
26   0/  0/  3                      test              P.Kline       4      35
26   2/  2/  0                T.N.T. pro    Maurizio Vittuari       5      87
26  34/ 44/ 22                  Mirage 2        Anton Marsden     123     411

______________________________________________________________________________
94 - What's Old

 #  %W/ %L/ %T                      Name               Author   Score     Age
18  31/ 22/ 47            Impfinity v4g1               Planar     139    1858
 3  41/ 35/ 25               Thermite II        Robert Macrae     146    1659
23  36/ 34/ 30               Tornado 3.0                Beppe     137    1460
13  39/ 37/ 23                 Chameleon           M R Bremer     142    1130
 8  40/ 36/ 24      Grilled Octopus v0.5         David Boeren     143     875
20  34/ 31/ 35                    Flurry        Anton Marsden     138     620
 9  28/ 14/ 58             Hazy Shade II             John K W     143     618
19  38/ 38/ 24          Gem of the Ocean              P.Kline     138     528
14  42/ 43/ 15            Stepping Stone          Kurt Franke     142     472
11  40/ 37/ 23             Blanket Party             J E Long     142     383
21  25/ 12/ 64                EvolCap XI       John Wilkinson     137     368

Two new entries in the over 300: Blanket Party and Evol cao XI, and
one loss Mirage 2
______________________________________________________________________________
HALL OF FAME
* means the warrior is still active.

Pos    Name                  Author          Age     Strategy
 1  Impfinity v4g1         Planar            1858 *  Stone/ imp
 2  Thermite II            Robert Macrae     1659 *  Qscan -> bomber
 3  Jack in the box        Beppe Bezzi       1620    P-warrior
 4  Torch t18              P.Kline           1539    Bomber
 5  Tornado 3.0            Beppe Bezzi       1460 *  Bomber
 6  Frontwards v2          Steven Morrell    1420    One shot scanner
 7  Evol Cap 6.6           John Wilkinson    1299    Imp / stone
 8  quiz                   Schitzo           1262    Scanner/ bomber
 9  T.N.T.                 Maurizio Vittuari 1204    Bomber
10  Chameleon              Myer R Bremer     1130 *  P-warrior
11  Iron Gate 1.5          Wayne Sheppard     926    CMP scanner
12  Agony II               Stefan Strack      912    CMP scanner
13  Barrage                Anton Marsden      876    Qscan -> replicator
14  Grilled Octopus v0.5   David Boeren       875 *  P-warrior
15  Blue Funk              Steven Morrell     869    Stone/ imp
16  Thermite 1.0           Robert Macrae      802    Qscan -> bomber
17  Blue Funk 3            Steven Morrell     766    Stone/ imp
18  Night Train            Karl Lewin         755    Replicator
19  Mirage 1.5             Anton Marsden      736    Scanner/ bomber
20  Blizzard               Anton Marsden      713    Qscan -> replicator
21  HeremScimitar          A.Ivner,P.Kline    666    Bomber
22  La Bomba               Beppe Bezzi        650    Qscan -> replicator
23  myVamp v3.7            Paulsson           643    Vampire
24  Blue Funk 5            Steven Morrell     624    Stone/ imp
25  Flurry                 Anton Marsden      620 *  Qscan -> pwarrior

Imfinity is now at reach of 2000, 142 challenges aren't an impossible
task. Thermite II surpasses Jack in second position. None of the
living hall of famers has been stopped.
Flurry enters the hall of fame pushing Hazy Shade of Winter off, next
scheduled is Hazy shade II at 618
______________________________________________________________________________
Current Status of the Internet Pizza Server Beginner's Hill:

Hill Specs:
         coresize: 8000
   max. processes: 8000
         duration: after 80,000 cycles, a tie is declared.
max. entry length: 100
 minimum distance: 100
      maximum age: At age 100, warriors are retired.
    rounds fought: 200
  instruction set: ICWS '94 Draft

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  60/ 28/ 12        Violent Micro v0.4             basehead     193      65
 2  52/ 35/ 13         Extreme Prejudice         Scott Manley     168      42
 3  47/ 27/ 26                Reluctance       Andy Nevermind     167      98
 4  48/ 35/ 17                coal 3.22b       bjoern guenzel     161      27
 5  50/ 39/ 10                frogskin 4       bjoern guenzel     161      76
 6  42/ 25/ 32         So Long Hyakutake         Scott Manley     159      44
 7  46/ 36/ 18         mini blue x-torch       bjoern guenzel     155       2
 8  41/ 26/ 33             Fork v0.1-10p    Christoph C. Birk     155      45
 9  43/ 32/ 25                  Toxin IV                Edgar     154      23
10  38/ 23/ 40                     Toxin                Edgar     152      89
11  47/ 41/ 12                  x-frog 2       bjoern guenzel     152      92
12  47/ 42/ 12                Bloodhound        Andrew Fabbro     152      90
13  46/ 45/  8                 Drill 1.1                Edgar     148       1
14  44/ 43/ 13                  8-Ball 2            Iain Hogg     145      17
15  38/ 31/ 32              Szyzyg v1.01         Scott Manley     145      11
16  44/ 45/ 10           Centurion (mod)                Edgar     143      15
17  43/ 44/ 13                    8-Ball            Iain Hogg     143      21
18  43/ 47/ 10                 Centurion                Edgar     140      16
19  34/ 35/ 32               Szyzyg v1.0         Scott Manley     133      12
20  28/ 27/ 46                   invicta        John K. Lewis     129       6
21  33/ 40/ 27                 test 0.01    Christoph C. Birk     125      38
22  36/ 47/ 17                    Blammo                Edgar     124       4
23  30/ 42/ 29    C Seagal II v 2.0 Test             jShelton     118      97
24  36/ 59/  6                SideWinder               Julian     113      75
25  32/ 57/ 11      yet another test 0.1           Justin Kao     107      14

Not many challenges, but 35, also this week. Violent Micro is still the leader.
______________________________________________________________________________
The Hint
Imps

This time I'm speaking of an argument I don't know too much, all old
88 players and our archiver/imp master Planar surely know much more,
so I'll try to fly low, ready to hide if (when :-) flames will come.

Most part of what I'm saying is also reported in Steven Morell's
manual, if you don't understand something you may check here, and vice
versa :-)

Imps are apparently simple warriors, they are made only of a mov
statement that crawl relentless in the core trying to overwrite the
opponent and, sometimes, kill it. Once launched an imp spiral, let's
suppose an 8 process 3 points mov #0,2667 one, works that way.

loc. X          ADG
loc. X+2667     BEH
loc. X+2667*2   CF

process A, is the executing one, copies itself in the location where
process B is going to execute, then queue itself for execution at
location A+1 i.e where process D is queued. Process B does the same,
copy to C and queue at E, and so on, spiraling through the core.

When the spiral hits an opponent it begins to execute the mov and two
thing may happen: if the enemy has less processes than the spiral it
will die, because the spiral is unable to feed it of mov instructions
at the rate it executes them, is it has more processes it's a
tie. Usually 94 warriors, al least when executing their clear, have
many process running, so the attack power of the spiral isn't great,
but the main strenght of the spiral is its thoughness.

Consider the spiral above, only two locations are subject to attack:
the tail, i.e. the lowest address process, and the process going to be
executed, if the spiral is hit in any other location, with any kind of
of bomb, it's unaffected because it copies a fresh mov instruction
just before executing it, a near perfect self repair. The spiral will
die only when its processes are reduced to less than the number of
points
Considering that the spiral is usually coupled with a process building
comrade, usually a stone, only the tail is vulnerable till the partner
is alive.

The speed at which the spiral crawl is a simple function of the number
of points and processes:
c * points / process

So the more processes, the slower it will move and the harder will be
killing it, the drawback is that it will steal more cycles to its
partner.

The tricky part of imps is starting them running, launching it. In
practice placing the wanted number of processess in the right core
locations to make it run. There are three classic methods: binary,
jmp/add and vector launch and two rather new: continual an paper
launch.

Binary launch is the faster. I don't know how to do it, but there is a
c program, makeimp by Jay Han, that does the job very well. Binary
launch has the problem of being very long, an easy prey for qscanners
if we are launching but a 16 processes spiral.

Jump add launch is the smaller and the slower. You make as many
parallel processes as you need, using spl 1 and mov -1,0 exacly the
same way as you do for a replicator, then execute a jmp add sequence
to spread them in the core:

imp     mov.i   #0,     impsize
impboot
	mov     imp,    imp+impdspl
	spl     1
	spl     1
	spl     1
	spl     1      ;1-1-1-1 = 15 = 16 parallel process
	spl     2
	jmp	imp+impdspl
	add.a	#impsize,-1
        dat     0       ;mandatory dat

You need the dat because extra processes generated have to die, the
spiral processes have to execute one after the other, recycling them
will weaken the imps

The third classic way is vector launch, nearly as fast as binary but
much smaller: it comes in two main subspecies, the classic and the
smaller one, proposed by Ting Hsu:
We always have to generate as many parallel process as we need.

imp     mov.i   #impsize,*0

impboot
	mov     imp,    imp+impdspl
	spl     1,      #0
	spl     1      ,#0
	spl     1      ,#0
	spl     1
;-break
vjmp    djn.a   @vector-1+btaway,#0

a for impproc
	dat     0,      imp+impdspl+impsize*(impproc-a)
rof
vector
	dat     0      ;or any other thing you want, it's just to have a label
The for rof develops in
        dat     0,      imp+impdspl+impsize*15
        dat     0,      imp+impdspl+impsize*14
...
        dat     0,      imp+impdspl+impsize*0

There is no need to have a dat after vjmp, this line isn't to be
executed, all processes jump away.

vjmp line decrements itself and jump in succession to the addresses in
the table.

Hsu's launch is more compact, using also the a-fields of the vector.

impboot
        mov     imp,    imp+impdspl
        spl     1
        spl     1
        spl     1       ;8 processes till now, they double in next line

vspl    spl     <0     ,#vector
vjmp    djn.a   @vector,#0

imp     mov.i   #0,impsize
        jmp     imp+impsize*15+impdspl, imp+impsize*14 +impdspl
        jmp     imp+impsize*13+impdspl, imp+impsize*12+impdspl 
        jmp     imp+impsize*11+impdspl, imp+impsize*10 +impdspl
        jmp     imp+impsize*9+impdspl,  imp+impsize*8+impdspl 
        jmp     imp+impsize*7+impdspl,  imp+impsize*6+impdspl 
        jmp     imp+impsize*5+impdspl,  imp+impsize*4 +impdspl
        jmp     imp+impsize*3+impdspl,  imp+impsize*2+impdspl 
vector  jmp     imp+impsize+impdspl  ,  imp+impdspl

(Exercise for the reader do a for rof loop for the vector table)

It's a bit more tricky, both vspl than vjmp decrements themselves and
split or jump to the table addresses.

The speed is exactly the same, Hsu's launch is smaller but more
vulnerable because vector table lines are executed so a hit with an
incendiary or a vampire fang in the table can be deadly, while a
similar hit in the other table causes but a misjump and the death of
remaining processes, at worst we lose the spiral but the partner isn't
stunned.

Continual launch has been treated very well by Planar in his corner,
look at first issues of Corewarrior, I have nothing to add.

Paper launch is a mix beetween imps and replicators; if we launch a
paper containing a simple imp launcher, something like

        spl 1
        mov -1,0
        spl 1           ;6 processes

silk    spl @0, 1400
        mov }-1,>-1     ;spread new spiral
        spl @0, impstep
        mov }-1,>-1     ;spread new branch of spiral
        spl #0          ;wait
        mov #0,impstep

We create many spirals filled of processes, that are very difficult to
kill, even if not too much deadly. Those launchers are sometimes used
as safety net in pspacers, should losses exceed a stated limit.

Now what you have to do is adding the imps to your favourite stone;
how? wait for one of next issues :-)
______________________________________________________________________________
Extra extra
Scanny boy
by David van Dam


Here's "Scanny Boy". It's just a one shot scanner. When found something, the 
core clear starts right at the spot where something was found.

Just after trying to write some bombers (for a brief moment at the top of the 
beginners hill) I became interested in scanners. At the same time the 
Wilkies-ratings came up and I was very interested why "Porch Swing" scored so 
high. When I studied "Porch Swing" I saw that it went direct in to a core clear 
when he found something (later when I looked at Frontwards, I saw it look 
alikes, but I use less instructions).

I thought, lets put together a 0.66c Sne search-engine and a core clear. Wow 
and that worked very good. Because it goes right to the core clear when found 
something it's very effective against papers. Mod 5 bombers are another story, 
because Scanny Boy also uses mod 5 and 4 out of 5 times it scans between al the 
bombs and find the nasty bomber. Scanny Boy is just 8 instructions, so the 
loses against Quick-Scanners are not so great (I think).

I tried to build in some extra attacks, like a gate in the search engine with 
the Djn. A ">" in the Spl of the Core Clear, which also acts like a gate.

In the beginning I've tried to make Scanny Boy better, by using other steps, 
other distances, other mods (4 & 8), usings a Djn-stream instead of a gate. But 
nothing realy worked. So at the end I've given up and just left it at the hill. 
It was aging very well at the top.

Some problems of Scanny Boy are:
  hit by a Djn-stream and it's dead
  the gates of the core clear aren't effective enough

So when Ian came at the top with his P-warrior "Wind-up Toy v1.2c" with a very 
big lead, I decided to redesign Scanny Boy. I gave it an anti-bomber style, 
a Djn-stream protection and made the gate more effective.

The result was Scan Man, which can compete with "Wind-up Toy v1.2c". The 
version of Scan Man without boot, scores about 165.1 Wilkies and 157.7 Wilbez.

And now enjoy Scanny Boy. If there questions, just send a mail. I hope it won't 
influence Scan Man to much, but what the heck. Maybe after Scan Man, Scan 
Women. Every man has a weak for a women and before you know it, your dead.

Cu at the top

David van Dam (D.vanDam@is.twi.tudelft.nl)

-----------
;redcode-94

;name       Scanny Boy
;author     David van Dam

;date       4 april 1996

;strategy   0.66c scanner
;strategy   spl/spl/dat core clear with djn-stream

;strategy   scores 158,0 Wilkies & 151.8 Wilbez (2000 fights)

;assert     CORESIZE == 8000

            org     scanner

disp        equ     4
range       equ     15
step        equ     30
offset      equ     (scanner+disp-range)


scanner     add.f   incr    ,   cnt
cnt         sne     offset  ,   offset+range
            djn.f   scanner ,   -step+1         ;Djn used as gate

incr        spl.f   #-step  ,   >-step		;>-step used as gate

cc          mov.i   @bombp  ,   }cnt           
            djn.f   cc      ,   <cnt           
                                                
bombp       dat     #8      ,   #1		;After 2 Spl passes the
            spl     #7      ,   #-85            ; Djn-stream will overwrite
                                                ; the bombp and the @bombp
                                                ; will points to the Dat

        for MAXLENGTH-CURLINE
            dat     0       ,   0
        rof

            end


____________________________________________________________________________
Questions?  Concerns?  Comments?  Complaints?  Mail them to people who care.
authors: Beppe Bezzi <bezzi@nemo.it> or Myer Bremer <bremermr@ecn.purdue.edu>
2002-2005 corewar.info. Logo C. Schmidt