« first day (2 days earlier)      last day (25 days later) » 

00:15
Hm I wonder what GUT’s problem is...
00:32
I'll follow with flinging GIFs around, and show off a game with an event log (though the recording lags at a couple of places):
Safety coin accidentally ate someone :P
Perhaps Damacy has a little bit self-destructive tendencies at times.
Safety coin can only eat someone if they run in the same direction or during random walk
same direction meaning for the same coin
I'm modifying the random walk to be weighted towards the center of the arena
Maybe Safety Coin is rebelling against its master
[email protected]. has inspired me to create the newest KoTH challenge, which I will release on Thursday. It's like this one, but with floating point locations and a few slight combat differences...Gold Hunters
00:47
I think you might want to post that to the sandbox for some feedback first
I will
And then based on its feedback when created, I'll make another one (Gold Miners), and so on.
I have a lot of ideas
Wait, no. This one'll be gold miners
So now safety coin tries to move towards the center area of the arena if it can't get coins
Intersting strategy
Still keeps itself safe but it likes the central area
00:59
It only dies if it encounters a dangerous bot with a stand still option
or if it is dumb enough to get cornered by 3 people
 
3 hours later…
04:26
@RedwolfPrograms I'm trying to get the CanvasViewer working but the version on the gist doesn't have any of the other bots in it and when I try to add them from a previous revision they are bug-riddled. Any chance you could upload your current version?
 
4 hours later…
08:46
@MikeNichols, if it helps, you can have my version: gist.github.com/ramillies/c2ca193f0d98039a5b2800fb39f5d62b .
Though it doesn't have all the bots included.
 
4 hours later…
12:25
Since GUT is absolutely useless:
0
A: Gold Collector KoTH

Beta DecayICE Agent | Javascript function iceagent(me, others, coins) { me.arenaLength = me.arenaLength - 1; // Calculate the average coin value of bots var avg = 0; for (var i = 0; i < others.length; i++) { avg += others[i][2]; } avg /= others.length; if (me.coins <...

> What's the point of a border if isn't being patrolled? ICE moves anticlockwise around the border, picking up any bots which stray into its path.
:O
@MikeNichols Mine has an event logger, just copy/paste the code into the console, hit enter, and type activateCanvas(10,1000) (10 is FPS, and 1,000 is turns to run). Omce it finishes, reload and copy/paste again
//Controller for Gold Collector KoTH by RedwolfPrograms, tested and (mostly) functional
//
//Use botSetup() to prepare, and runBots() to run one move.

var botData =
[
{
name: "Livin' on the Edge",
run: function(myself, others, coins) {
x = myself.locationX;
y = myself.locationY;
xymax = myself.arenaLength - 1;
if (x < xymax && y == 0) {
return 'east';
} else if (y < xymax && x == xymax) {
return 'south';
} else if (x > 0 && y == xymax) {
return 'west';
} else {
return 'north';
}
}
}, {
name: "Not So Blindly",
I'm also building an aquarium that spawns dead bots back in
ICE doesn't do too badly:
 
1 hour later…
13:41
Hi guys, where can I get latest version of controller now?
@Night2 didn't redwolf just post it 2 comments above
I didn't know it was the latest version, I thought it just has event logs :P
Thanks
I created a new bot
I mean if he posted it about 1 hour ago it is probably a very recent version
13:57
No, I posted it an hour ago and used the oldest, most broken controller
[sarcasm]
I love watching the bots
I feel like a proud father watching my kid go off to school
Most of my bots fail pretty spectacularly. Safety coin does rather well
By the way, y'all can use arrayIndex, arrayEqual, and randInt in your bots
I'm counting them as inbuilt functions
Even though they're not
Instead of randInt im just using Math.random()*n|0
14:04
which is floor of random double from 0 to n
@fəˈnɛtɪk Why the |0?
|0 casts to integer
Oh neat
it is just a shorter way of writing Math.floor()
14:13
@BetaDecay: a proud father? I feel more like an upset father of an incompetent child... :—).
By the way, if any of you want to do some more extensive testing: I've added a "tournament" capability to my controller (you can play multiple games in a row and it tallies the wins).
"Big King Little Hill" and "Safety coin" are now putting up a good fight
Huh
I'm working on Hunter.Armageddon, now that Seeker.Armageddon is done
Most non-serious bots either die on start or finally die when they are stuck between two powerful bots, is there any point to keep adding more non-serious bots?
Definitely. For instance, if Potentially Victorious is lagging behind very much, it tries to make up by eating weaker bots :—).
(But, seriously, probably not. They will be just food for the others.)
More weaker bots makes it fun
14:18
Well, non-serious bots don't make much of points
For example I'm testing "Seeker.Armageddon"
Well, non-serious bots can be used for bits of code to make other non-serious bots serious
So far it is dead with 2 or 0 points
I got 12 in both my tests
14:20
I have updated version of all JS bots now
Testing with 25 bots
Just updated ICE, sorry
Also, I think something's up with Beeline. ICE keeps eating it
Same with Goldilocks
Hunter.Armageddon is going to be awesome. I think.
Goldilocks & Beeline seem to get stuck quite often.
@N.P. "Quantum Gnat Bot" is so annoying to watch =D
By the way, That Bot ... Can Be Aggressive is pretty aggressive in all my games:
[36] TBTsefoijawwhatever has eaten Big King Little Hill for 4 coins.
[47] TBTsefoijawwhatever has eaten BEELINE for 8 coins.
[49] TBTsefoijawwhatever has eaten Goldilocks for 2 coins.
[88] TBTsefoijawwhatever has eaten Drunkard for 6 coins.
[99] Damacy has eaten 3rd Gen Algorithm for 2 coins.
[108] TBTsefoijawwhatever has eaten Damacy for 15 coins.
(...)
14:36
The latest version which I updated a few minutes ago isn't that aggressive anymore
I see. I will need to do a massive update of the bots.
These are from the yesterday's afternoon (CEST).
15:02
Uhoh
Hunter.Armageddon causes an infinite loop
What would've been cool would be an option to drop coins. i.e. say you were being hunted, you could drop a gold coin to get the hunter off your back. Sure, your score decreases but you survive
Hmm, cool idea
Maybe you could use it to trap other bots: lay a trail of coins to you then, when a bot follows the trail, eat it
Could be an idea for another KoTH
Yeah...I was going to make another KoTH like this one, but with floating ooint positions
And movement would be controlled by speed and direction
16 directions: N E S W NE NW SE SW NNE NNW NWW NEE SSW SSE SWW SEE
4 speeds: 0, 0.5, 1, 1.5
15:13
I have created a "Feudal Noble" bot which tries to control the center of field
I got these funny oscillations in my game...
(too bad the recording lags...)
@Ramillies the version of bot which you have from me most be broken
It should never get eaten (better to stay it most get eaten in very very rare conditions)!
I updated it with whatever was in the thread...
Well, it has been eaten 8× in 18 games, so there is probably a bug...
It never gets eaten on my games
But I have more bots (26 now)
@Ramillies Cool, it's like a still life in Game of Life
15:20
Aargh, infinite loops!
"Big King Little Hill" has a good power in taking the lead, when it isn't in lead early game. Its late game algorithm is powerful.
I think Safety Coin does much better.
While Potentially Victorious is very good in the early game (it often ends up 1st after ~100 rounds), but then it sinks right to the last place.
In my tests it some times does good, but not always
I'm finding it hard to call who would be the overall winner
It changes every game
@Ramillies "Potentially Victorious" usually is in top 4
My new bot "Feudal Noble" is also doing good, usually in top 5 or 6 but doesn't have chance of winning as it only collects coins at middle of field
15:27
Yes. He is always the 4th one :—).
Potentially Victorious just won
Then Safety Coin then ICE
I will have to test the "Feudal Noble" out, that sounds interesting.
I would suggest you to test with all 26 JS bots
Your test env looks small now
Yes, I definitely don't have all of them.
I'm the only one it seems without a fully updated controller, and I'm the person who created the challenge!
15:30
Updated with bots?
lol
I had to sort out some of them due to bugs.
Yes
I have 19
I have only ~15 too.
All of the bots are now bug free
15:30
And they are out-of-date
@Night2, are they?
How do you choose colours for all of them?
What about the python/haskell ones?
Only some of @fəˈnɛtɪk bots have a missing } at the end
Quantum Gnat, for instance, brought the controller down quite a few times here, so I had to remove it.
15:31
I didn't test any non-JS bots though
I had no problem with Gnat
I'm going to completely rewrite Hunter.Armageddon, since it keeps causing every sort of problem imaginable
I updated all my bots ~30 minutes ago
And, it's very long
@BetaDecay, I just choose something by hand. Which is why I'm so lazy to add more. If you have 15 colors, thinking up a 16th discernible color is not so easy.
It is
15:32
Should I add a list of 30 discernible colors?
That would be great.
To create distinct colors
Great. (How could I think that there isn't such a tool?)
Just play with settings and when you are good with them you can copy them from "Result" tab
#660000, #330d0d, #a65e53, #4d3c39, #f24100, #ffa280, #b2622d, #ffd9bf, #735839, #ffaa00, #997a00, #fff2bf, #b2bf00, #8a8c69, #62731d, #304010, #364030, #3ad900, #b6f2be, #238c4d, #40ffbf, #004d3d, #00d6e6, #ace2e6, #003340, #268299, #0077b3, #80d5ff, #007ae6, #203980, #1600a6, #070033, #968fbf, #a280ff, #aa00ff, #3d3040, #770080, #47004d, #e673de, #a6296c, #592d39, #e53950, #d9a3aa
Everybody pick one
for each bot
I choose #004d3d for Hunter.Armageddon
15:35
I pick "#f24100" for "TBTPTGCBCBA"
Which is the closest to #0000ff?
And I pick "#268299" for "Feudal Noble"
Potentially Victorious takes #1600a6.
@Ramillies the funny thing is, in my tests I had given #0000FF to your bot xD
I guess that was because I wrote I would like that color :—).
So presumably people are nice and give it to my bot.
15:41
No I never knew what color you like, I just gave blue to yours so I always knew which one it is
I gave red to "Polite Near-Sighted Drunk Bot" and yellow to mine
Not sure if that was asked already, but doesn't the sample controller give 35% of the consumed bot's coins to the victor, instead of 85%? gist.github.com/RedwolfPrograms/…
Wait, when did it change from 35 to 85? :D
Some time yesterday :—).
Potentially Victorious is still using 0.35!
15:48
@BojidarMarinov I think the controller isn't updated yet
There are so many hand made versions circling around in the chat, I doubt if anyone knows which one is the most correct/complete :D
@Ramillies I've been running both your Canvas script and Redwolf's and even after ensuring that the code for Big King Little Hill is the same between both I'm seeing strange behavior in your script that doesn't replicate in Redwolf's.
Hm, that's weird.
I think I found the problem though. I think you pass all bots to the enemies or others list
Including the bot itself.
Hm, I know what you're talking about.
So it causes some bots to spook themselves.
And move back and forth.
15:50
I forgot to apply the bugfix that was going around here :—).
Maybe that's the reason why my bot occasionally gets stuck, too.
Yeah, you need the JSON.parse(JSON.stringify(...)) thingies
I'm now in the process of adding all the bots, so I'll apply the bugfix while at that.
So that is why my marvelous bot was getting eaten in your tests xD
:—D
That "Gnat" bot is so annoying to watch, it keeps following other bots like a real gnat. You just want to slap it through the monitor :D
15:56
Is the BaitBot bug-free? It looks like it isn't.
@Ramillies The fix for its bug is written in the comments of that post
"Potentially Victorious" has a tendency of unsuccessfully chasing "Feudal Noble"
Applied the fix. // That's perfectly possible.
(I even don't know which version is currently up.)
@Ramillies you have an extra }, on last line of your code
16:15
Fixed, thanks.
@Ramillies This is an example of random chases that your bot does: imgur.com/a/RJvVzWe chases like this repeat a lot :D
In same GIF you can see how disturbing the Gnat looks xD
Well, the current version of my bot is something totally else :—).
I'm just trying to figure out what would be best to put up as a next update.
So the code in my controller is something quite different from the code in the thread.
16:55
I love the community that has grown around this challenge
It really illustrates the true purpose of the site
 
1 hour later…
18:09
You know you're a failure when Third Gen Learning Algorithm eats you
Note: I changed a line in the display system to:
drawBot(botPos[i][0], botPos[i][1], botData[i].botColor)
Inside the function updateCanvas()
Now, every bot needs an official color.
18:23
I am trying to design a true learning algorithm for this now.
I'm making a strategic genius bot
Called Hunter.Armageddon
Hunter had a tiny error in it's distance checker
Yes! Hunter.Armageddon successfully got a gold coin while thwarting TBTPTGCBCBA!!!
Good news!
0
A: Gold Collector KoTH

Redwolf ProgramsHunter.Armageddon One last bot for now //Hunter.Armageddon: Designed to move carefully around, and hunt bots and coins. Made to win function(me, others, coins) { var x = me.locationX; var y = me.locationY; var enemies = []; var threats = []; var targets = []; var di...

It's awesome!
KatamariWithValues beats him often
Let me fix that
He's also indecisive
Partially because he was told to eat the furthest coins
18:50
This is how my bot's name is pronounced: naturalreaders.com/…
Uh-oh, Hunter is moving back and forth
Hunter.Armageddon died after 7 coins
Yeah, he's a bit buggy
I updated him
Try again
He's still notgreat
Dies close to 0-10 coins
Yeah, it's because of his indecisiveness
18:55
Actually Seeker.Armageddon seems to stay alive more
Yeah, he's programmed better
Hunter is still indev
Your hunter is a prey in this harsh world xD
Indeed
He tends to get trapped among other bots
His last run got over 30
I have to improve TBTPTGCBCBA's end game strategy tomorrow
It should still be able to do better
If we could have a standing table when the real game happens it could be nice
We have 4 bots now which are very close in leading games
So we could at the end see which one was 1st, 2nd, 3rd and so on ...
19:12
I might have improved Hunter's decision making
I did, but now I need to remove his excellent imitation of a vibrating massager
Quantum gnat at me
19:34
I'm an idiot
Such an idiot
So idiotic
I must spam my idiocy
I made an idiot mistake
I TYPED THE WRONG DIRECTION!
Hunter is better than ever!
 
1 hour later…
20:42
Here's an updated version of my controller, if anybody wants it: https://gist.github.com/ramillies/c2ca193f0d98039a5b2800fb39f5d62b .
Put the both files into the same directory, then load up the `bots.html` into your browser. Contains all JavaScript bots, an event logger, loads of stats about eating and fleeing, repeated game mode, pausing & stepping functionality, ability to change FPS on the fly and maybe something more.
(hm, all bots except Redwolf's hunter.)
Also Potentially Victorious got an update, so it perhaps will be at least a moderate contender for the first place again.
(The controller should be now bug-free: the deep copy bug is fixed and the eating percentage is 85% coins.)
21:02
@Ramillies Thanks, that’s perfect!
21:26
Ooh, somebody likes my controller! You're welcome.
I'm going to get started on the final testing (Non-graphic) controller, designed for maximum speed
I don't think that it's worth the hassle. Most of the bottlenecks will be surely in the bot functions.
Yes, but even 1ms of a difference makes 10s of difference
And that's important
21:41
... I thought that you said that we have a lot of time when I told you that running the matches according to the original rules would take 1,5 days? :—P
@Ramillies Does the controller use jQuery?
Absolutely not, since I don't even know what is it.
(I just know it's some kind of a JS library.)
It's fine, I don't need it anymore
JQuery = The library used by people who are new to JS
Darn, then I should've used it :—).
21:49
I estimate each bot will take at most 2.5ms to run
50 bots makes that 125ms
So, probably 8 turns per second
125 ms, × 1e5 rounds × 1e4 games = 125 Ms.
Which is a lot of time.
No, wait. 0.25ms/bot
80 runs per second
1.25Ms
no, 12.5
That sounds like 145 days...
But we have 30ish, so 30*0.25 = 7.5ms/run
turn, i mean
1 Ms ~ 13 days. (Hint: I think 1e5 rounds is way too many, after 1e4, the differences will be probably in the order of hundreds, if not thousands coins, and the result will be clear. Usually the bots that do worse won't start doing better just out of nothing.)
21:53
10,000 is 1e4
Oh, I'm now doing 1e4 rounds
tunrs
turns
1e5 will take 10× longer, obviously. ("Rounds" is actually a better term, if you ask the board game geek inside me.)
But wait...
0.25ms/bot
30 bots (7.5ms each turn)
Good so far.
21:55
125 turns/second
7500 turns/minute
1:20/round
10k rounds
Over 4 computers
2.5k per computer
3,333 minutes
55 hours
Uh oh
1.333... minutes.
Oh sorry.
Yes, 3333 minutes.
Wait, maybe a better computer can do it faster.
2 days, 7 hours and 33 minutes.
21:58
So I'm going to try testing it again, but with nothing else open and hope for a faster time
[how did @Night2 get 20k in a second?]
(I have no idea.)
(But perhaps the computation can be distributed over some of the participants of the challenge.)
True
If Night2 used his UberMegaLaserBlastingHighSpeedPiCalculating computer, we'd finish it in an hour
Maybe .25ms is unrelaistic, since I'm on a pretty weak little computer
It's practically a handheld calculator with a screen
Woohoo, .1ms/bot
1 day!
Honestly, after 4e3, the bots are running around doing nothing
Yeah. When testing, I'm going only with 2e3 rounds.
(by the way, 10 of those games took 2 min 2 sec, i. e. 12.2 sec per game)
(with graphical output and leaderboard update each 5th round)
22:09
Hmm
5th place - hunter
Mhm, he's doing well then. I'll have to include him in my controller.
My event log now only logs deaths
Mine can log coin picks too. (And you can choose with checkboxes what you want to see!) Though in the repeated games, I log only eating too.
I ate 3 bots in the last try, and one was Quantum Gnat!
The Gnat is especially annoying :—).
22:14
And tasty...he gave me 2 coins!
Four bots entered one space
[38] Bots Seeker.Armageddon and Livin' on the Edge both had 0 coins, so Third Gen Learning Algorithm, First Gen Learning Algorithm, Seeker.Armageddon and Livin' on the Edge died.
A bar fight over a gold coin:
[34] Bot Polite Near-Sighted Drunk Bot ate The GUT and gained 2 coins
VM91:1668 [34] Bot Polite Near-Sighted Drunk Bot ate a gold coin after engaging in combat and winning
I always get a lot of pairwise mutual eatings:
[2] Mutual eating of bots: Damacy, 1st Gen Algorithm.
[4] Mutual eating of bots: Coin Magnet, Bait Bot.
[7] Mutual eating of bots: Not so Blindly, Firebird.
[12] Mutual eating of bots: Goldilocks, Weighted Motion.
[360] Bot Hunter.Armageddon ate Wild Goose Chase and gained 4 coins
How did you ate it?
22:17
And they said it was a wild goose chase (:
(hm, I guess it isn't so hard)
A minor change to @Ramillies controller: gist.github.com/beta-decay/5ccb090f4d5ec7174ba4659726ab2c45
Allows you to track your favourite bot
Eaten by a goose:
(from 82 games in the tournament I'm currently running, it's been eaten 38 times)
[25] Bot Goose.Armageddon ate AntiCapitalist and gained 0 coins
A preview of my newest bot
In memory of the triple suicide:
[2] Bot Firebird tired of this world, and jumped off its edge
VM100:1668 [9] Bot Bait Bot tired of this world, and jumped off its edge
VM100:1668 [15] Bot First Gen Learning Algorithm tired of this world, and jumped off its edge
[2069] Bot TBTPTGCBCBA ate Potentially Victorius and gained 374 coins
22:20
What? Uhm.
Must've been bad luck :—).
Nahh
>:-)
Feudal Noble is better thanI thought
@BetaDecay, what does the tracking do?
Highlight the bot on the map?
Dang it, goose and hunter ran into each other
Wow...1e3 rounds is enough to get an estimate of the winners
Well, I go with 2e3 and the games are often quite tight.
22:39
@Ramillies Yep, puts a red ring around it. It resets after each game starts, so it’s not much use in tournament mode
I set high FPS in tournament mode anyway.
I'll post a new version shortly.
I needed to fit the things better on the screen vertically.
(With your tracking mode, of course.)
22:56
@RedwolfPrograms How can a bot eat another and gain 0 coins? Shouldn’t that be a mutual eating?
That would be caused by an error
It should be Math.ceil, maybe it's Math.floor?
Why an error?
The eaten bot simply had no coins.
Oh
I am stupid
Thanks, Ramillies, for making me realize that (:
You're welcome :—).
The UI starts to look quite cool.
23:07
New bot, CloseCoin, survived to 550
Hey, why are you adding so many new bots? I will have to extend the table into 2 columns if you don't stop that!
Plan on 50
(Not all mine, of course)
Dang it, CloseCoin went all GUT and doesn't move at all
I will have to add a bot too, then. I have a devilish plan.
Dagnabbit, another stupid error. Anyone willing to swap brains with me?
I'd rather keep mine.
I've already grown to put up with it, let's say :—).
@BetaDecay: Final version of the controller for today: gist.github.com/ramillies/c2ca193f0d98039a5b2800fb39f5d62b .
Warning: the bot data have been split off into a separate file. I moved the UI around a bit to have it fit vertically on my screen. The ranking system now recognizes shared ranks (e. g. "7th-11th place").
23:19
Err, my bots keep getting caught in back-and-forth motions
Call me king bug, because I made 3 bugs in one debug session
Once again, hunt down the farthest coin!
23:40
CloseCoin is once again 6th place
Once I teach him the noble Art of Hunting, he'll be a warrior indeed.
I'm going to go read some Sun Tzu, be back later
@Ramillies Splitting off the bot data is a great idea. Really cleans things up
It started to be quite clumsy to handle.
@RedwolfPrograms: An interesting thought from Sun Tzu:
29. Military tactics are like unto water; for water in its natural course runs away from high places and hastens
downwards.
Since water in this metaphor is obviously moving right against the direction of the gradient of the gravitational potential, I think that Sun Tzu must have had my potential-based bot on mind :—).
23:57
>:-)
Flow like water, crash like water
- Chinese term
I don't crash, I just lose :—).
(sometimes)
Crash as in "strike"
or crush
Yeah.
But I couldn't resist taking up this pun.

« first day (2 days earlier)      last day (25 days later) »