A midweek review of Corewar
September 23, 1993
-------------------------------------------------------------------------------
I. The Standings:
# %W/ %L/ %T Name Author Score Age
1 43/ 28/ 29 QuickFreeze v1.4 P.Kline 159 1
2 48/ 41/ 11 Iron Gate 1.01 Wayne Sheppard 154 240
3 46/ 43/ 11 Dragon Spear c w blue 148 1199
4 47/ 46/ 7 Agony 6.0 Stefan Strack 147 49
5 34/ 22/ 44 Deck of Many Things c w blue 146 13
6 42/ 40/ 18 Beholder's Eye v2 W. Mintardjo 144 17
7 40/ 37/ 24 Winter Werewolf 3 W. Mintardjo 143 415
8 34/ 26/ 40 FlyPaper 3.0 J.Layland 143 521
9 33/ 24/ 43 ttt nandor sieben 143 321
10 30/ 19/ 51 pMARS pMARS project 141 146
11 32/ 25/ 43 Night Crawler Wayne Sheppard 140 1097
12 42/ 45/ 12 Impurge Fredrik Ohrstrom 140 421
13 31/ 23/ 45 Impact v1.0 Anders Ivner 139 234
14 36/ 34/ 29 Keystone t13 P.Kline 138 55
15 31/ 24/ 45 Imprimis 7 P.Kline 137 337
16 37/ 39/ 24 Leprechaun 1b Anders Ivner 136 165
17 30/ 24/ 46 Hydra Stephen Linhart 135 166
18 30/ 25/ 45 Sphinx v2.8 W. Mintardjo 135 2095
19 39/ 44/ 17 Grimm's Vampyre c w blue 134 280
20 35/ 37/ 27 Herem VI Anders Ivner 134 269
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:
What do Core War veterans consider to be the _real_ terror, the one
opponent they never hope to meet? 'Hard Disk Crash' of course!
C.W. Blue had one and he is scrambling to recover his warriors.
Hmm. looks like he found the source to Deck of Many Things, a
program whose motto might be "yield no losses!". Not a bad strategy
either :-) [Blue, I tried responding to your request, but my
replies bounced]
After publishing QuickFreeze last week, I realized that not only
can he scan faster than c, but he can JMN to the attack much
sooner. Thus the improved performance. Sorry, ttt, that seemed
to make a BIG difference. I'm even starting to pick up a few
points against scanners.
S. Strack's new tournament is underway. After the first round
winners and losers are equally divided :-) Should be interesting
to see whether the '94 standard fighters have any unusual advantage.
Remember, participants, you have until Friday, the 23rd, to submit
a new program, otherwise the old one will go into the second round.
Speaking of '94 standard, is koth.stormking active? I've sent
three programs that way with no response. Maybe someone could
repost the submission syntax for us. And the standings.
Funny, every couple of weeks someone posts Dwarf or Imp, copied right
out of the old Dewdney articles. And they never make it on the Hill.
Note to all newcomers: today's programs can out-bomb Dwarf, out-tie
Imp, out-reproduce Mice, and out-lasso Cowboy. Better check
the archives at soda. But hang in there, it takes time to learn
enough to become dangerous. Just keep repeating: "it's a harmless
addiction, it's a harmless addiction, . . .".
-------------------------------------------------------------------------------
IV. The Outlook:
2 34/ 22/ 44 Deck of Many Things c w blue 147 1
2 40/ 29/ 30 QuickFreeze v1.4 P.Kline 151 1
-------------------------------------------------------------------------------
V. The Quick Look:
20 0/ 70/ 29 ImpSpawn Tim Scheer 31 1
20 20/ 77/ 3 BackTrack Tim Scheer 62 1
21 0/ 47/ 53 Unknown TR Reed 54 0
21 0/ 90/ 10 Anti-IMP v1.0 Bryan Turner <bcturn 10 0
21 0/ 91/ 9 BombSeeker_1 Garen K.E. 9 0
21 0/ 92/ 8 tr2.red TR Reed 9 0
21 6/ 50/ 44 Bug Zamkovoy Evgenij 62 0
21 7/ 70/ 22 SLExplorer Slava Shinderov 44 0
21 14/ 56/ 30 Sandstone Jonathan Wolf 72 0
21 16/ 70/ 14 Nosferatu 0.2 J Kyle Kelso 62 0
21 16/ 80/ 4 Ringer Tim Scheer 52 0
21 18/ 73/ 9 BackTrack v1.3 Tim Scheer 63 0
21 18/ 80/ 2 DuoTrac Tim Scheer 57 0
21 19/ 69/ 12 AllThatGlitters Mike Nonemacher 68 0
21 20/ 71/ 9 spriteII Cormac Walsh 69 0
21 24/ 62/ 14 RealStoneD Jonathan Wolf 85 0
21 26/ 48/ 26 Red Baron v3.0 Mike Nonemacher 104 0
21 30/ 60/ 10 death Steven Morrell 101 0
-------------------------------------------------------------------------------
VI. The Hint:
Today's topic is imp launching, or actually imp-spiral launching, using
several different launch techniques, with some pointers as to their merits.
Just for fun, here is the old 'worm' launcher, which could be considered
a one-point spiral with an imp-size of 8001:
length dat 0,#10
go spl extrude,0
djn 0,length
mov length,extrude ;Stop making the worm
;
extrude spl 0,0 ;spin here and make a worm
mov 0,1 ;of imps
end go
The unfortunate thing about worm is that the processes execute in reverse
order. The leading process executes, then the one behind that, the one
behind that, etc. In a true spiral you want each mov instruction to
write over the location that the next process is going to execute. So
there is no time lag between writing the mov instruction and executing
it. That, plus the great separation of instructions in core, is the
strength of spirals.
Anyway, here is a standard binary launcher:
boot equ 1000
impsize equ 2667
start mov imp,imp+boot
s1 spl s2
spl s1a
jmp imp+boot
s1a jmp imp+boot+(1*impsize)
s2 spl s2a
jmp imp+boot+(2*impsize)
s2a jmp imp+boot+(3*impsize) ; <- or jmp to stone/vamp/???
imp mov 0,impsize
The binary launcher is fast, creating just the right number of
processes and jumping them into position in the necessary order.
However, this is a very short spiral that can be killed with
a single dat-bomb. A spiral with eight processes would require
twice the code to launch, making it more vulnerable to early detection.
And the binary launcher is most efficient when creating power-of-two
number of processes, though it can be tailored to kill or re-use
excess ones.
Here is a Nimbus-style launcher:
boot equ 1000
impsize equ 2667
start mov imp,imp+boot
spl 1 ; <- add more splits for longer spiral
spl 1
spl s2
s1 jmp @0,imp+boot
s2 add imp,s1
dat #0 ; die or jump to stone/vamp/???
imp mov 0,impsize
This launcher is short, can be adapted for any imp-size or spiral length,
but is not quite as fast as the binary launch, since every jmp is
accompanied by an add. The 'adding' processes also have to be disposed of,
either through letting them die, or by putting them to work. However,
Nimbus successfully launches a 64-point spiral this way, which is
remarkable.
Here is about the shortest 3-point launcher possible:
start spl imp+5334
spl -1
spl imp+2667
imp mov 0,2667
In fact, this launcher doesn't generate a true spiral, but a series of
rings instead. Each ring is slightly separated from the succeeding one
due to the imbedded spl-delay in the launcher. However it is fast
and continuously launches rings which become difficult to kill.
-------------------------------------------------------------------------------
VII. The End:
Paul Kline
pk6811s@acad.drake.edu