A midweek review of Corewar
October 25, 1993
-------------------------------------------------------------------------------
I. The Standings:
# %W/ %L/ %T Name Author Score Age
1 34/ 13/ 53 Cannonade P.Kline 155 101
2 34/ 20/ 46 Imprimis 7 P.Kline 149 498
3 33/ 18/ 48 Impact v1.0 Anders Ivner 148 395
4 36/ 24/ 40 Vagabond P.Kline 148 6
5 36/ 25/ 39 test James Layland 147 23
6 45/ 42/ 13 Dragon Spear II c w blue 147 28
7 40/ 34/ 26 Winter Werewolf 3 W. Mintardjo 146 576
8 31/ 16/ 53 pMARS pMARS project 146 307
9 37/ 30/ 32 Keystone t13 P.Kline 144 105
10 43/ 41/ 16 Twilight Pits 8 W. Mintardjo 144 2
11 34/ 25/ 41 Deck of Many Things c w blue 143 15
12 44/ 46/ 11 Impurge Fredrik Ohrstrom 142 582
13 44/ 47/ 9 Agony 6.0 Stefan Strack 141 210
14 37/ 33/ 30 Herem VI Anders Ivner 141 430
15 32/ 23/ 45 ttt nandor sieben 141 482
16 33/ 25/ 42 FlyPaper 3.10 J.Layland 141 29
17 41/ 43/ 15 test Mike Nonemacher 140 5
18 41/ 42/ 17 Red Baron ][ v2 Mike Nonemacher 139 16
19 31/ 23/ 47 Night Crawler Wayne Sheppard 139 1258
20 5/ 44/ 51 Primitive imp Mintardjo W. 65 1
21 2/ 98/ 0 test P.Kline 7 0
-------------------------------------------------------------------------------
II. The Basics:
-Core War Archives, including many helpful articles, warrior source
code, and reliable emulators, are available via anonymous FTP
at soda.berkeley.edu in pub/corewar.
-FAQ for this newsgroup is available via anonymous FTP at
rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.z
-------------------------------------------------------------------------------
III. The Scoop:
Oh my! What a week (well ok, two weeks). Stout hearts were driven to
tears as sturdy warriors were laid in the dust. There is no mercy,
KotH has no favorites, all is woe and struggle - except for the lucky
author whose four entries were ranked 1-4 after a recent battle :-)
Dragon Spear, one of a class of strong cmp-scanners, was driven off.
Sorry Blue, I forgot to make a note of Dragon's age :-( It was well
over 1000 for sure, leaving Night Crawler as our only remaining 1000+
contender.
FlyPaper 3.0 fell off at 590, succumbing to a rash of scanner onslaughts.
Not deterred, J. Layland tightened up a few sprockets and successfully
launched FlyPaper 3.1.
W. Sheppard's cmp-scanner Iron Gate 1.01, a spl-jmp bombing cmp-scanner,
fell off at 399. Iron Gate was one of the first cmp-scanners to react
to the imp barrage with the endgame gating that has become such a standard.
Then leprechaun 1b, A. Ivner's fast-booting bscanning bomber, was pushed off
at 224. leprechaun and Herem are worth studying for ideas on how stone
can deal with paper.
QuickFreeze was pushed off at the nice round age of 100. Although deadly
to imps and other slow-starting programs, QuickFreeze was helpless against
fast scanners. (QuickFreeze's anti-imp paper has been resurrected, however :-)
Beholder's Eye v2 was also a casualty. After M. Hasting's highly successful
'B-Scanners Live in Vain' was driven off by the imps last fall, W. Mintardjo
succeeded in resurrecting it with a nifty gate retro-fit. One of those
'teeny-tinies' you've heard so many good things about :-)
So, with all these programs falling off KotH, who's filling the gaps?
Let's start with Dragon Spear II. Without having seen any source version,
but judging by its performance against several known programs, I would guess
it is a carpet-bombing cmp-scanner with a fast boot and at least one
reflection against another scanner on the Hill. Based on its current
ranking, Dragon looks like it might be up for a long time.
Then there's Vagabond, my own stone-imp combination, modelled after
Smooth Noodle Map. See write-up in Hints.
J. Layland's mysterious 'test' program is also in the top 10 today.
With a score similar to Vagabond, and his proclivity to paper, I'm guessing
its a stone-paper combination, or possibly an advanced version of
FlyPaper.
Just in time for Halloween, the vampire has returned. Twilight Pits 8
must be whipping somebody (else :-) on KotH, with a respectable 10th
place ranking.
Then theres M. Nonemacher's Red Baron ][. Red was all over the Hill
in recent days, from high to low. Red appears to be a fast stone
with an anti-paper strategy of spl-zero carpeting followed by a standard
core-clear. Got a gate in there too?
On another topic, the old ah-ha! light went on yesterday. I've been
puzzled by the fact that a zero-length, or single-line DAT #0 program
could show 2% wins on KotH. Of course! When it plays itself the first
one to die loses and the other gets credit for the win. 50 wins out of
2000 battles is 2.5%, rounded to 2%. Hope you are all as relieved as
I was to have this explained.
-------------------------------------------------------------------------------
IV. The Outlook:
1 45/ 43/ 12 Dragon Spear II c w blue 148 1
2 35/ 26/ 39 FlyTest J.Layland 144 1
2 38/ 23/ 39 FlyPaper 3.09 J.Layland 153 1
3 42/ 45/ 13 Twilight Pits 8 W. Mintardjo 139 1
4 42/ 44/ 14 test Mike Nonemacher 139 1
4 31/ 27/ 42 Vagabond P.Kline 136 1
5 42/ 45/ 13 Dagger v2.2 Michael Constant 139 1
6 44/ 45/ 11 sub-type-cmp c w blue 143 1
9 27/ 19/ 54 Silver Paper v1.5 W. Mintardjo 134 1
9 32/ 28/ 41 Deck of Many Things c w blue 135 1
9 42/ 46/ 12 Iron Cannon Wayne Sheppard 139 1
10 39/ 41/ 20 Match Stick c w blue 137 1
10 41/ 44/ 15 Red Baron ][ v2 Mike Nonemacher 137 1
-------------------------------------------------------------------------------
V. The Quick Look:
16 31/ 30/ 39 test James Layland 132 1
18 40/ 51/ 9 Paratroops v3.0 W. Mintardjo 129 1
18 41/ 48/ 11 All That Glitters v5.4 Mike Nonemacher 134 1
19 27/ 37/ 36 Test 1 Brant D. Thomsen 118 1
19 29/ 27/ 44 Tar Paper P.Kline 131 1
19 38/ 47/ 15 B+C Anders Ivner 129 1
19 40/ 57/ 3 NTA wayne sheppard 123 1
20 0/ 46/ 54 Primitive imp Mintardjo W. 54 1
20 21/ 41/ 38 Warrior's Gate 0.3 J Kyle Kelso 100 1
20 22/ 47/ 31 Incrimination v3.0 Brant D. Thomsen 98 1
20 28/ 57/ 15 Crystal Vampyre c w blue 98 1
20 29/ 44/ 27 Test R Ford 113 1
20 36/ 52/ 11 Irony v4.0 Brant D. Thomsen 120 1
20 40/ 50/ 10 Cleaver Wayne Sheppard 129 1
21 1/ 38/ 61 Implets J.C.Vazquez 63 0
21 2/ 43/ 55 Imp Test Stephen Linhart 60 0
21 2/ 80/ 18 ring2 Unknown 23 0
21 3/ 96/ 1 nexus5 Fredrik Appelberg 11 0
21 6/ 54/ 41 Nice Try J.C. Vazquez 57 0
21 8/ 74/ 17 Punch Drunk Chris Clark 42 0
21 10/ 63/ 27 Pitcher 0.09 J Kyle Kelso 57 0
21 11/ 49/ 40 Combinatoris 1 J Kyle Kelso 74 0
21 13/ 75/ 12 B52 Bryan Kilian 51 0
21 13/ 81/ 6 AntiFreeze Stephen Linhart 44 0
21 14/ 62/ 24 pitcher 0.1 J Kyle Kelso 67 0
21 14/ 68/ 18 Shrew Stephen Linhart 59 0
21 15/ 74/ 11 Minelets[04] J.C.Vazquez 56 0
21 15/ 74/ 11 Dwarf Spitter v0.5 Daniel Parnell 56 0
21 17/ 63/ 21 The Chain 1.1 J Kyle Kelso 71 0
21 19/ 73/ 8 Nova 1 Jay Han 65 0
21 20/ 41/ 39 Warrior's Gate 4 J Kyle Kelso 99 0
21 20/ 47/ 33 new paper c w blue 93 0
21 20/ 61/ 19 Tiers of Stone 1 J Kyle Kelso 78 0
21 23/ 28/ 49 Hydra Stephen Linhart 117 0
21 23/ 38/ 39 Bloody Mary Bryan 108 0
21 23/ 54/ 24 Eye Stone 1 J Kyle Kelso 91 0
21 23/ 60/ 17 ttest J Kyle Kelso 86 0
21 26/ 33/ 41 bordel v 1.0 P.E.M & E.C 120 0
21 26/ 37/ 37 FireFighter Bryan 115 0
21 26/ 57/ 17 Test Stephen Linhart 95 0
21 27/ 28/ 45 Balo v1 P.E.M & E.C 126 0
21 28/ 57/ 14 Morannon 1 J Kyle Kelso 99 0
21 28/ 59/ 13 Morannon 3.1 J Kyle Kelso 96 0
21 29/ 42/ 29 clown v 1.0 P.E.M & E.C 116 0
21 29/ 44/ 26 Fast Food v1.0 Brant D. Thomsen 114 0
21 29/ 48/ 23 clown v8 P.E.M & E.C 110 0
21 29/ 52/ 20 bozo v1 P.E.M & E.C 106 0
21 29/ 55/ 17 Glass House 3.0 J.Layland 103 0
21 30/ 61/ 9 Samson IV Bryan Kilian 100 0
21 31/ 41/ 27 Clown v1 P.E.M & E.C 121 0
21 31/ 53/ 16 death Steven Morrell 109 0
21 33/ 56/ 11 Taser }{ StarWriter 110 0
21 35/ 49/ 16 sub-type-os c w blue 120 0
-------------------------------------------------------------------------------
VI. The Hint:
Inquiring minds want to know how to create a winning program. Here's the
process used in building Vagabond. Better warm up your coffee before
starting :-)
First, look at the mix of programs on KotH. You have to beat a sufficient
number of them to get a decent score. If you only beat stones you
won't make it. Or Paper. Or imps. Or scanners. So the goal is a program
that is strong enough to beat or tie a variety of opponents.
Second, look at what you like and understand. Right now I am playing
with anti-imp replicators. C. Blue believes paper is the only useful
strategy against imps, and I agree to an extent. The paper in QuickFreeze
beats some of the imps on the Hill over 50% of the time. So that
is where we start.
Strip everything out except the paper and run it against KotH. Who
do you beat, and who beats you? This paper beats some of the imps
and ties the others (except Impact), clobbers stones and RotLD/Hydra
types, and loses marvelously to scanners and vampires.
Note that the largest point loss is against scanners. What beats scanners?
Bombers are the best. Small bscanners can be good, vampires probably
go even-steven. Also a small dat-bombing cmp-scanner like FlyPaper
does well. Just to see, I set up a FlyPaper like program (Tar Paper)
and submitted that. Hmm. Not much luck. The wins against cmp-scanners
were in the 30% range, still losing 50%. Make a note for later
that I can take a line off FlyPaper's scanner, but losing that many
against cmp-scanners just encourages more of them.
Since stones have the best win/loss ratio against scanners, how can
we bring them in? Successful past strategies were used in FlashPaper,
Gamma Paper, and Smooth Noodle Map. FlashPaper starts both the stone
and the paper at the beginning, and realizes a small number of wins against
scanners, about like Tar Paper. Gamma Paper bombs for a long time before
starting its paper colony. Probably if it were to boot the stone away
from the colony it would have better success. Smooth Noodle Map
boots a stone and two mice-style replicators away from the startup, bombs
for a while, then starts both replicators and continues bombing. I decided
to try the Smooth Noodle Map strategy.
Then ask why Smooth Noodle Map doesn't work today? Well the reason is
imps - it just loses or ties them. But I have paper that works against
imps so success seems like a possibility. So set up a non-optimized
test version that boots a really simple non-splitting stone and two copies
of the replicator. The stone bombs for a while, then splits to create the
necessary processes and jumps them to the replicators. This test is
surprisingly successful on KotH. The stone is getting 40-50% wins against
the scanners, and the paper is tying or slightly beating the other
stones and the imps.
So now we run a series of tests against single known opponents.
An early version of Night Crawler was published, so run and watch
some battles against that. Hmm. Looks like we lose battles because the
stone is not self-splitting. A single DAT bomb kills Vagabond's stone
rather frequently. So add a SPL to grow cycles. Run more tests.
Notice that sometimes NC's stone is crippled, but so are my replicators.
Then my stone is left to face the imps, but since I am growing processes,
I get a tie. This is much better.
Now run some tests against an early version of the spl-jmp bombing cmp-scanner
Iron Gate. The stone gets lots of wins, but there are a large number of
ties. Sometimes IG drops a stunner on one of the replicators, then
gets crippled. As soon as Vagabond launches the paper the spl-jmp loop takes
over and we get a tie. Maybe the stone could somehow bomb the replicators
after they've had time to reproduce. Unfortunately the spl-jmp
could be anywhere in the code, so where do we bomb? And the two copies are
too far apart for sequental bombing. Ah! What if the two papers' descendents
would overwrite one another's original code? Try setting up their 'child'
distances so the second generation shortly overwrites the original
of the other copy. In 15 battles this strategy succeeds 3 times. The
unstunned paper's children kill off the stunned copy and are freed up to
locate and destroy the crippled scanner.
Now run some tests against Keystone, a bomber. Vagabond's paper gets a
lot of wins, but there are still quite a few ties. Sometimes V's
paper-launching code is crippled. Then we see that Vagabond's stone
is really a lightweight and has no core-clear. Rig up a core-clear
by having it drop its increment code (now MOV STEP,<-STEP) onto the DJN line.
Yes, that works. Now we've turned some losses and ties into wins.
Impact is a special case. It's a DAT and SPL bomber (Herem), with
a 3-point spiral. Ordinarily Vagabond's paper would beat a bomber/spiral
but those SPL bombs are crippling them, and the Impact is getting a lot
of wins by mopping them up with a core-clear. Impact's SPL's should
not be as dangerous as others' SPL-JMPs, but they are effective. The
problem is that my paper has its own JMP - back to the beginning to
make another copy, and doesn't use FlashPaper's trick to clear
single SPL's. Hmm. How to clear SPL's, or to make no-loop paper? Each
copy could make two children and jump to them with no need to go back
to the beginning. After trying a few variations on this, conclude that
it is worthy of further investigation, but not useful at this time.
All mods to the paper seem to make it just slower enough to get shot
down more.
Agony is another special case. Agony beats Vagabond about 50/40. After
watching many battles, give it up as a lost cause. Too many of
Agony's instructions shrug off the stone's decrements. Without
an effective decrement, stones are just 33%-of-c bombers. Cmp-scanners are
66%-of-c. I can see the decrement lines passing through Agony's code,
but there is no effect. It might be possible to separate parts of the
stone and paper-launching code to make me look smaller, but nothing comes to
mind.
Now optimize the stone's step size. Its a mod-5 step, but that's only
a relic of the program (Emerald) it was cut out of. Better to use a
mod-1 step so some of the decrements will decoy scanners a little.
Look for a number that finds size-13 opponents rapidly and is small
enough to be used in the core-clear line.
Package everything together, slap on a name test^H^H^H^HIrish^H^H^H^H^HVagabond
and send him up. Whoa! 4th Place. Break out the heart medicine!
One variable is the amount of time the stone runs before launching
the paper, which is controlled by a DJN STONE,#XXX. A large XXX makes
me look more like a stone, a small XXX makes me look more like paper.
Changing XXX affects the success against individual opponents, but the
overall score doesn't change that much.
Items noted for future research:
adding an imp-gate to the stone
anti-vamp code
paper that kills 1143-imps
paper that overcomes single SPL's
reducing size of the stone & paper-launch code
reducing size of boot code
try bscanner instead of stone
-------------------------------------------------------------------------------
VII. The End:
Paul Kline
pk6811s@acad.drake.edu