« first day (236 days earlier)      last day (501 days later) » 

8:48 AM
@trichoplax @Draco18s FWIW earlier this week I had one game (on Safari) freeze on me on step 27988, probably in an ant function - but re-running the same seed afterwards did not reproduce it. WTH... None of the players involved had been edited in the meantime, and I had been all set to collect a core dump for analysis... Weird.
 
 
2 hours later…
11:06 AM
@Draco18s I've just encountered that in a tournament (it was stuck at 15 games for the longest time ಠ_ಠ), and it seems to be reproducible. Debugging it
 
11:37 AM
huh, it seems to vary when it's gonna die - once at 24473 moves, once at 24474, and now at 24483 :|
 
12:18 PM
@Draco18s I arrived at Glider type 3
 
 
1 hour later…
1:25 PM
hmm, I added a log of view to glider and the last logged output is of the queen while my code tells that the faulty ant is type 3 glider..
and it couldn't be that the queen is the next, not showing up in my list as Glider has >100 workers but the history of stepped ants only contains <100 entries
and I can't for the life on me figure out how do I extract the color board from the mess that is Daves controller & the webworkers of it...
 
 
1 hour later…
2:37 PM
looks like the glider worker at fault is encased in workers. Getting somewhere :o
 
2:48 PM
[{food:0,color:5,ant:{food:1,type:3,friend:true}},
{food:0,color:1,ant:{food:0,type:3,friend:true}},
{food:0,color:6,ant:{food:1,type:2,friend:false}},
{food:0,color:3,ant:{food:0,type:3,friend:true}},
{food:0,color:4,ant:{food:1,type:3,friend:true}},
{food:0,color:0,ant:{food:1,type:3,friend:true}},
{food:0,color:1,ant:{food:0,type:3,friend:true}},
{food:0,color:4,ant:{food:0,type:4,friend:true}},
{food:0,color:4,ant:{food:1,type:3,friend:true}}]
#seems to be the (the unrotated) view of the last ant outputted by my code, but it doesn't seem to do anything bad
 
3:08 PM
this is what the place of the ant looked like in the previous step, as the current one wasn't finished and so didn't get drawn
 
3:47 PM
...I just noticed that there's a color 0 there.. oh, that probably uses 0-indexed colors
aand there glider goes into an infinite loop or something...
@Draco18s please fix, @trichoplax glider is dangerous
god, finding that took way too long. Debugging JS is hard, especially when the code is split up trough multiple workers that somehow are interconnected
@Draco18s false, you've got a while loop that's getting stuck in firebreak() ಠ_ಠ
you probably meant to increment loop every iteration
 
4:26 PM
Ooh, nice catch! By the way, I've had Dave's hang in one game (with the interface responding, but the game stuck (WebWorkers, yo!)), but I thought nothing of it at the time :P
 
@Alion it's happened to me a couple times before too, only now after talk here from @Draco18s I thought to look at it
btw that was on G15 of TeRJXιY0pο4ζGbQBξrηθC @ frame 24483
 
I've been extremely busy on non-ant work
Should I maybe release the saboteur lightspeed glider early and develop it concurrently with the marchers?
Two submissions for the price of 1.1!
In a sense, it should be easy: just have the routine body dispatch to a version of the decision functions that considers early-phase and saboteur routines only
 
4:49 PM
@dzaima good catch!
 
5:08 PM
@dzaima Good sleuthing!
@eaglgenes101 it's your call of course - anything you feel is ready for prime time, and which at least attempts to finish with a nonzero amount of food hoarded, will be welcome.
/me still working on bringing the Windmill back on line...
(Whenever I need to test something in controlled conditions, I seem to hit on a long slew of seeds that don't feature the NEW CHALLENGER... :p)
 
Sigh, I had something with Glider that worked. And in trying to address some deadlocks or perceived performance failings (namely, workers falling back to Firebreak when "lost" inside Highway) and performance has tanked
 
nod... most mutations turn out harmful, too....
 
This is why I keep a copy of the official version and do a cross compare. Move over only the changes I'm confident in
That said, I may have mutated something that I can't go back to the good version for. >..<
eg. I did something that was better than the online copy, then changed it
 
@Draco18s that's why you use git & make many commits
 
heh, probably
I didn't expect it to be so critical for this
 
5:24 PM
A lesson which I've learned the hard way, too :)
 
Heh :D
I think I can make my way back to "gold" but it's going to be dicy
 
6:08 PM
/me is running a backbuild of Glider in @dzaima's controller. Glider/Highway has murdered the simulation speed.
 
At least no ants were harmed...
 
They're immortal until garbage collected
 
@trichoplax (and all): Windmill v1.8 is now live and, I hope, kicking again.
 
New anti-vamp measures?
 
Does not getting disqualified (for spawning onto food) count?
 
6:12 PM
haha, I would say not :p
 
OK, then the answer is: No new anti-vamp measures. :)
 
Makes my job easier :D But I do wish to see an attempt made in that department, eventually
 
Does "sometimes attracting the Vampire's attention and preventing it from leeching a richer victim" count? ;)
 
Haha
 
I mean, currently I have to worry more about SlM and Highway...
 
6:14 PM
Windmill is actually a small target. Vampire is more likely to encounter SlM twice before seeing Windmill
 
(depending on who is playing in a given game, natch)
 
(And vampire has a tendency to cause SlM to lock up after the second or third encounter, although SlM gathers so much food so quickly, that that often means falling from 15 points....to 14)
also true
 
Windmill Queen is still puzzling how you ever arrived at calling her a cow. The 'mill is about as far from spherical as you could get...
 
I mean. At the time...
 
The way I remember some contests prevented hangs was by wrapping each submission in a timed promise. If the time limit was broken, the submission was terminated from outside, the submission error-handled (perhaps by disqualification)
 
6:17 PM
We should do something like that here, though the question is: should it be per ant or per player?
Per player might be too harsh, given Highway's use of five hundred ants
 
Per player, and give them a wide latitude. Garbage collector is a thing.
 
Its the 500 ant problem, though. How many ants is too many?
There's a reason one of the options in my controller is a ant-count-limiter.
though I use it rarely
 
That kind of thing requires a different controller architecture, though.
 
@Draco18s could you apply a quick fix to Glider so it doesn't kill my tournaments?
 
The authoritative controller is single-threaded, and interrupting a function call amounts to killing the tournament-in-progress as a whole.
 
6:20 PM
You mean the infinite loop problem?
 
@Draco18s mhm
 
(And even in a multi-threaded process, it is generally not safe to interrupt a thread...)
 
Sure, give me a few minutes
 
Other failures are handled by ejecting the problematic submission and then keeping the tournament running as if the contestant no longer exists
I don't see how ejecting the player on timeout would be different
 
@eaglgenes101 but other contests do use quite different architectures -- running entrants as separate processes, each step a command invocation at the OS level
 
6:37 PM
@dzaima Edit made.
 
7:02 PM
@GNiklasch Deadlocked!
 
@Alion are you running v1.8?
 
Refreshing the page, just to make sure. And by "deadlock" I mean "none of the ants move".
 
It looks precisely like what the fix for issue #29 is meant to deal with.
 
Oh, whoops. Did not.
Sorry :P
 
(Not only have I re-invented a wheel there, I had also re-invented all the possible mistakes one could make...)
 
7:09 PM
I should really make a LSPortable for all future endeavors (mine included...)
 
Heh
 
Based on my view[CCW[compass+i]] idiom? (-;
 
Sorry, didn't dig into your code too much - don't know what that means exactly...
 
That's how all my ants view their surroundings (once they've set the compass to fix their idea of orientation)...
 
Oh, I get it. Perhaps. Something lightweight (pun intended) and standalone. Ideally, ~15 lines of code stuffed in a function...
 
7:12 PM
...and thus I rewrote my own LS implementation from scratch without looking at yours, just knowing what it needed to achieve.
Failing to remember the old fable of the ass between two piles of hay.
 
hehe
yeah, I asked Alion how he solved that particular deadlock a few weeks ago
 
AFAIK even @dzaima had to reinvent the wheel. So the wheel's been reinvented three times already.
 
(OTOH, it's a modest amount of code among the reams that is Windmill.js before minifying.)
 
@GNiklasch If you hadn't seen LS working, the actual LS handles this situation without the use of colors, but yours looks robust anyway so I ain't complaining. shrug
 
@Alion I tried replicating what your code did unlike @GNiklasch :p
 
7:16 PM
@GNiklasch Then I guess I'll also attempt to provide a hand-golfed version... :P
 
@GNiklasch I'd suggest you to run a couple tournaments with only the LS code and only your bot on my controller and examine what this outputs, and look for low food amount games
to make sure you don't get often deadlocks
 
Nah, I think he's good. He brought the big guns, aka colors. Can't see how that would fail, exactly :P
 
@Alion cycling colors? :p
 
What do you mean?
 
@Alion if he's using colors, there's the chance that workers could fight over for colors (unless it's very well organised)
 
7:28 PM
To be honest, I am too old to have spent more time thinking about how to solve the potential deadlock than the minimum necessary to find something that would do the trick whilst still averaging 6 cells inspected per step. An ant stopping to tell her partner to turn has time to paint a cell, so...
 
@GNiklasch the thing that makes LS so successful is that no ant ever stops
 
And since I'm not planning to maintain that average over the whole course of a game with an increasingly colorful and crowded arena...
 
@dzaima False. It's a thing that cements its success. But really, all methods of preventing deadlock when multiple pieces of food are seen should be fine.
 
(And when you are completely surrounded, your options are stopping or being disqualified. ;) )
 
@Alion IMO always moving is the easiest method though
 
7:31 PM
I will agree that always moving is the cleanest method. Easiest, though...? Meh, depends.
 
There are many kinds of wheels that work. Wooden wheels, rubber wheels, titanium wheels, square wheels... :p
 
If I reverse-engineered GNik's method correctly, then the worker informs the queen to not wait for the worker to turn around to collect food via putting col 3 under himself instead of NOPing when it sees food. I think that's fairly simple as well.
 
The other thing is, the Windmill tandem cannot afford to have each other in diagonal view (since that is what makes the staff ant a gardener and triggers settling!). They must stay on laterally adjacent cells during this phase, or else part company.
 
Oh, good point. So the normal LS wouldn't even work :P
Argh, I'm procrastinating too much over my Highway... Need. To push. Update... but can't. 'Coz in-dev Highway is currently garbage, lol.
 
heh
 
7:37 PM
What the color actually does is it tells the queen that it would not be safe for her to wait - no more than that. And the one direction is sufficient, and since the queen moves after her navigator, no other ant can un-paint the cell in the meantime.
 
What if she moved onto a cell of that color the prior turn?
 
@GNiklasch One thing I'm sad about is that your approach doesn't go full pac-man on boxes of food (because your logic doesn't bother checking food "behind" the pair) :c
See, here's my procrastination. Why am I doing this to myself? I should be devving Highway right now!
 
. o 0 (mental image of the Procrastinators from Pratchett's Thief of Time...)
@Draco18s if the tandem is running straight with no obstacles nor food in view and the secretary/navigator steps onto a purple cell, both will just keep on running as if nothing had happened.
(The only impact is that some food off to the queen's left hand might not get picked up.)
 
@GNiklasch I had to google that to remember it
 
Right, because the magenta color effectively forces "normal behavior" from the queen.
 
7:47 PM
'xactly.
 
Pretty clever, actually. Congrats on reinventing the wheel in an interesting fashion.
 
I'm not checking food to the rear because most of the time that's where we just came from, and the cases where that isn't the case are so rare that's just as likely to find other food ahead.
(Knowing when it isn't worthwhile to try to be any smarter than one already is is one of the things that allows releases to happen on reasonable time frames...)
I do my procrastinating elsewhere. ;)
 
8:01 PM
@Draco18s Glider finishing with 514 food vs Highway 314, etc, in a seeded game that had apparently triggered an infinite loop before the latest edit - guess this is good news.
 
/me salutes~
Was Glider leeching Highway?
 
Must have been, given what the arena looked like at the end...
 
What was the end-result that caused Glider to cease collecting / stealing food?
(Final game state usually sufficient)
 
No idea - no idea where the two queens were. Glider had 122 type-3 workers and 2 of each of the other kinds, FWIW.
 
Its usually an arrangement problem:
a) glider queen ends up off-rail somehow (e.g. forming a wing and flying off)
b) glider workers get jammed up against an unrepaired section (unable to reach queen)
c) highway queen gets surrounded by jammed workers
d) highway queen gets off-rail
 
8:07 PM
All I can say is that everything was covered in green slime except for some small unrepaired Trail-erased holes and a few fiery red bits (with no Wildfire in sight).
And all I was trying to convey was that the same seed had resulted in an unresponsive Safari tab before your edit. :)
(I tried to capture a core, but Safari didn't let me.)
Romanesco Road was able to hold on to 24 food in the utter desolation. Maybe you should add some RR-leeching code. (Just kidding....)
 
@eaglgenes101 nothing is ever truly finished - release each new player as soon as you're comfortable. Seeing the gradual evolution afterwards is half the fun...
 
And once again it has gotten waaaay too late here. Have a nice one, and good luck @Alion with putting a good new Highway release out before I next reload my tabs!
 
@GNiklasch I remember the days when that wasn't a problem, with barely more than 16 players...
 
@GNiklasch Sure, and that's great! I was just curious about how Highway managed to retain a lot of food!
 
I've been part of the problem (eyes edit history). I would never have imagined having to make that many changes to my entry months after the initial answer.
@Draco18s possibly just by the 30000th step happening before it lost all :)
 
8:20 PM
Unlikely, with glider having 122 workers. It can generally drain food from Highway pretty quickly (less than 2000 moves in most cases). Though I'll grant its possible.
 
Ah there she is - found the HW queen in the final mess by sheer luck. The Glider queen is nowhere near her. Dozens of Glider workers are painting a few small regions red and black and evidently aren't close to either queen, if that helps.
This being the second-largest red and black region, the largest was rather bigger.
 
Yeah, that's the Firebreak code behaving badly. Every time I've tried to make Glider workers Not Do That has been a detrimental change
Even just making them NOP hasn't worked
 
And I'm really calling it a day now - before I (again) break something else that was working before. Later!
 
Later
 
8:35 PM
I'm getting a headache watching how many of Highway's workers SlM managed to lock up. I thought Highway was going to be the Arena Police, but it's struggling versus a single entry right now...
 
Reminds me of my old blackhole v. trail eraser problem.
It was hard to figure out that more than one ant was dealing with the intruder
 
No, over here I'm just having trouble making Highway stay alive when all of the workers are 1v1 :P
 
obviously if an ant saw at least one adjacent other ant, it was (usually) safe to disengage
@Alion Ooohhh.
 
I'm essentially saying that SlM is tryna steal the job of policeman from Highway... brutally.
 
ha
 
8:38 PM
And I can't just leave 'em be. They'll tear through my Highway in a heartbeat if left alone....
 
I saw one game where Wildfire started parallel to Highway, and very close. Long story short, they killed each other in a hurry
Wildfire's queen was ON the main rail
 
New Highway is gonna be borderline immune to Wildfire... but I can't for the life of me find a solution for SlM just dominating the early-game.
 
Mmmm
 
Like, I already have literally the fastest early-game possible. Highway's workers start like Wildfire (low travel distance), paint ~2+ cells per move... And the queen doesn't hoard any food at the start :c
And SlM is handily smashing all of that.
Well, of course, not always, but more often than not. And that's why it's bothering me.
 
mhm
I wonder if SlM actually sees more ground per step (with 1-5 workers) than Highway does (with the same number of workers) just due to the approach each take
And that results in a higher average food return which results in a faster worker count growth
 
8:45 PM
@Draco18s well, SlM paints 1/3 of cells on the map vs Highway painting every single one
 
Good point.
@dzaima Is SlMv4 going to be even scarier?
 
@Alion nope, still 1/3 painted, but it leaves every 4th collumn untouched
 
@Draco18s right, I should update that
 
@dzaima (That would be "sees more cells per step" yes)
 
8:47 PM
huh, I've changed that little since then? o.O
 
you posted that like two days ago
 
@Draco18s still, 2 days is a lot of time for change
 
True, enough for me to completley ruin Glider
 
Yes. Yes it is even scarier. Because it has LS start. Make it stop...
 
I'd really expect Highways start to be better than SlMs though
 
8:51 PM
Lower travel distance =/= faster food delivery. Yours searches way more per step.
1.5 vs ~0.9 (if I have my math right)
 
right, not traveling to the queen and back would be equal to painting 4/6ths of the cells opposed to your 100%
 
Besides, mine hits a sort of spawn-stop right after finishing stage 2 (because the queen just gets the hell outta there in the opposite direction of the workers')
 
that too
Which, I think, is its biggest killer
 
@Alion yeah, I'd suggest having the helper stay in place rather than halving the time taken until very inefficient mining
it'd lessen its damagability too
 
Started a new tournament with the corrected versions of Glider and Windmill. One in Firefox and one in Chromium to hedge my bets.
 
8:56 PM
@dzaima Wait, what are you suggesting, exactly?
 
@Alion that the helper doesn't move when it's spawned (aka stage 2 = NOP)
 
You mean, make the helper wait for the queen?
 
@Alion mhm
 
And then, in stage 3, resumes work?
 
mhm
 
8:57 PM
Impossible. He doesn't know when he's in stage 3.
Remember that the queen is constantly out of the helpers' view.
 
@Alion maybe put it not on the main rail, but on a side of the queen?
 
But if we went with that, then what would that fix, exactly?
 
what if you dispensed with worker 3 entirely?
 
Sure, you would double the time.
Oh.
 
@Alion the queen would start out with way more workers
 
8:59 PM
I just kinda paused mid-sentence right there and hit send :P
Interesting approach, I must say.
But I would have to have 2 helpers then, because muh symmetry :P
 
@Alion then you could safely lose one and respawn it by knowing of the others existance
 
@dzaima just calmly fixing all of my Highway's problems. No biggie.
 
Haha
 
the two could also be vampire protection
 
That's for later, if I decide I want to ditch not being paranoid.
Also, I could probably get away with moving the helper(s) forward sometimes (by chance), to delay the queen turning around, so she has some more supply before finishing half a round.
25% would do, probably.
In stage 2, that is.
Though I'm second-guessing if that's actually beneficial.
 
9:06 PM
heh, doing the opposite of what you're doing now :p
 
Would it help for one of the Highway colours to be white?
 
Originally, my plan with the helper was along the lines of "surely, finishing the main rail faster must be beneficial, right?"
 
@trichoplax already thought of
 
@trichoplax Doesn't work because starting is way harder.
 
@Alion couldn't you not spawn the workers on the starting part, and just let the queen spawn them while moving forwards like with any other gained food?
 
9:09 PM
So, right now, I'm thinking about how my system of determining whether I'm stage 1 or 2/3 works. And I don't think I'm doing it the sanest way possible...
I don't know. I'm having an idea overload. I'm going to note all of this and go to sleep, and hopefully I'll figure something out when I'm not tired.
 
Sleep on it ;)
 
@Draco18s whenever I've done that with SlM I've ended up not being able to fall asleep for at least an hour :p
 
Yeah, I always just start running ideas in my head. It's quite annoying, frankly.
This might as well be Highway v2 when I implement all of the ideas...
 
@dzaima Audio books! :D
 
What if the Highway had two different colour schemes, that both lead in the same direction interchangeably, but indicate whether the next stage of the strategy has been reached?
 
9:14 PM
@trichoplax Oh, that would be way too error-prone, I'm afraid.
 
The late game pattern could then include white for an extra speed up...
Sorry - not helping you sleep...
 
Haha, no problem. Still busy writing all of this up (and the consequences) in a tidy manner.
 
@trichoplax no way to detect that reliably for the workers
 
You'd have to carry that information through colors, and I couldn't dedicate enough colors to make that feasible.
 
What if the workers only paint the late game pattern if it's a majority, so accidental miscolourings early on won't trigger an early switch
 
9:16 PM
@trichoplax no way to reliably detect, as when it's a majority once it'll carry out forever
 
Oh, you're talking about an entirely different pattern. Well, there's a problem of being confined to the 5 colors I'm currently using, as utilizing black/red would be too attractive for some mass-destruction entries.
...and I guess white, in that case...
@dzaima Also true.
 
@dzaima Oh I see. Even a small probability of it happening is going to happen somewhere, and then spread
What if that switch just needs to not happen in the first few moves
 
There are countless times where I've seen my workers mis-IDing some random stuff as my pattern after getting lost, and then doing some crazy stuff with it to be able to fool myself that that could work :P
@trichoplax When the arena is empty in the early-game, you mean?
 
yes
 
It couldn't feasibly last shorter than the length of stage 2... And that stage is going to get elongated 2x.
 
9:19 PM
@trichoplax a big loss in reliability for a small gain
 
Fair enough
 
I'll also need to re-tune the hoarding behavior, since I'm going to be running with upwards of 300 workers after finishing stage two :P
Holy shit that's gonna be efficient.
Problem is - the gap between vertical and horizontal start is going to get larger still...
 
heh
 
Conceptually, for a challenge that runs on bare metal (or rather, under the management of an OS), the patterns of IO make it so that memory-mapping shared pages is an almost ideal system
 
@Alion oh right..
 
9:26 PM
Consider this in the next koth you run
 
still, it'd be better on the average of the two
 
Well, the gap's proportions aren't gonna change. It's still gonna be about 2.5:1. Though the values themselves will.
Wait, are they actually 2.5:1? I feel like the exponential growth should make that different...
 
the gap doesn't really matter, what matters is the average of the two results. Any increase is good if it's positive increase on both directions
 
Yeah, those proportions are more along the lines of 4.5:1...
@dzaima Well, yes, technically, but I would to have as much workers vertically as horizontally, ideally...
Though that turns us right back to the topic of determining official North.
...which I've deemed to be infeasible for a multitude of reasons.
 
@Alion what I'm saying is that it's impossible so don't think about it too much
 
9:32 PM
I want a square board :c
 
@Alion you're not getting it, deal with it :p
 
:C
Another thing that bothers me: type 1/2 distribution is very wrong in the early stages often (because the queen doesn't really have a way of balancing it out at the start, so it's just a 50/50). I've seen stuff like 21-65 recently :P
I wonder if I could somehow make it self-balance in stage 2. Hmm...
 
Just made an official update to Glider
 
@Alion does that really matter? also, do you still have the code that tries to make the opposite worker?
 
you already have a worker guide that runs backwards away from the queen during stage 2, right? Could you use the transition from stage 2 to stage 3 to make a guess at which direction is canonical north?
 
9:39 PM
@dzaima Oh, no, the self-balancing code is up and running, just not in stage 2. In stage 3 it balances out quite nicely indeed.
 
i.e. "Huh, I have X food at transition" vs. "Huh, I have (2X) food at transition"
 
@Draco18s I have zero food at transition. That's the entire point of stage 2 :P
 
curses
(try and save a non-zero amount randomly?)
 
@dzaima And yes, it can matter - an unbalanced Highway is more vulnerable from the thinner side.
@Draco18s Hmm... It might be possible, though I don't know how much it would help, really...
I would somehow have to encode
Oh.
 
expectant look
 
9:43 PM
I could technically encode up to 6 bits of information via spawning workers on the sides of the queen.
Thought I don't know how useful that would be, really.
 
how'd you even use the knowledge of whether it's a short or long rail?
 
I could also change the bits by spawning "new bits", and carry some sort of information with me that way...
@dzaima Probably to tune the hoarding mechanism.
But all of this is prone to all kinds of intervention. Losing information would be fairly common, and depending on how much food I want to store for determining verticality might either slow down the start too much or be too inaccurate.
The thing is - I don't really need the 6 bits of information... Highway (like all other entries) was designed with the no-information mentality. There aren't many things that I can use the 6 bits for...
Even more so if I have to be careful when changing the bits - costs me one food each time. This is essentially 1/4 of a byte of write-only memory. Useless. I could try to look into tuning the spawning mechanism via finding out verticality and storing it in a single bit, though.
By the way, I'm talking about using types 3/4 as on/off - type 3 is overloadable and type 4 is unused, if someone's not following what I'm babbling about.
 
barely
do remember that ants act from oldest to youngest
 
So that either cuts my almost-read-only memory by a third or makes it actually read-only. <sarcasm>Even better.</sarcasm>
 
9:59 PM
It'd be "write once" memory
 
Ooh, I know what I can do with that. Go ahead and leave planet earth once someone starts sucking tons of food. I could store food thresholds, and if the queen falls way below the latest threshold, she just nopes outta there.
Hmm, this sounds really good as long as I make my bits unable to get lost...
 
Interesting!
 
This was a pretty fruitful day. Cure for slow starts, losing knowledge of being in stage 3, even some initial memory ideas and how to use it to solve real problems. Good stuff! Thanks, guys! Now I can finally go sleep :P
 
10:14 PM
#TwoHoursLate
 

« first day (236 days earlier)      last day (501 days later) »