« first day (239 days earlier)      last day (498 days later) » 

10:42 AM
Ooh, I just came up with something fun to make and potentially usable on the arena. Sorry, Highway, tired of looking at the same codebase for 2 weeks straight :P
Meh... This idea quickly devolved into Firefly... Why do all of my ideas eventually devolve into reinterpretations of existing entries? :c
Am I that creatively bankrupt? Or is it just hard to come up with something interesting...?
 
 
2 hours later…
1:09 PM
Just figured out a clever, potentially universal (and if not, highly extensible) pattern system... Guess I'll waste some time reworking my framework for the 5th time (and rewriting my entries while I'm at it).
 
 
3 hours later…
3:47 PM
I worked out 10 patterns, but now I have to figure out how to disambiguate in ambiguous positions
Some patterns have different things I need to do depending whether the formation is marching or recovering
 
3:59 PM
And one particularly difficult pattern requires different things depending on recovery phase in relation to the marcher phase
 
@eaglgenes101 that's the biggest problem in this challenge - figuring out how to not be ambiguous without losing efficiency. For SlM5 I was lucky enough to be able to just use randomness, but I'm guessing it's harder for you
 
Yeah, if I don't decode a possibly ambiguous state correctly, then the resulting march becomes inconsistent. I have a panic signal to break off a portion of the marching formation if that happens, but that's still workers going down the drain
 
4:15 PM
@eaglgenes101 Well, they could possibly be reused for some arena destruction after they're gone (as long as it won't introduce more ambiguous cases, that is). Your entry won't use many colors, right?
Though, yes, ideally you don't want to break them off in the first place, of course...
Have you figured out what to do if there's an ant on the way that doesn't want to move? Or at least do you think you can figure it out?
 
4:45 PM
My initial plan is to just send an upstream panic if it's a worker, or stop and loot if it's a queen
Later iterations might have logic to try to navigate around enemy workers, but first things first
 
 
2 hours later…
6:15 PM
Think I'm gonna work on Formic 3D as my next pet project... Spent some time thinking about the possibilities in there, and it looks pretty fun. I'm probably not gonna post it anywhere unless there's popular demand, though - it would sit on the thin line between dupe and sequel (even though most 2D strategies don't translate into 3D directly)...
Looking at the board is gonna be a pain in the bum, though. I would have to be a 4-dimensional being to be able to take a look properly...
 
Visualising the arena is what kept me set on a 2d game. I'd love to see a 3d version but it might be hard to get many competitors if they can't see what they're coding...
For what it's worth, I would vote to not treat it as a duplicate. By the time you've thought about what rules and parameters would work well, I'd expect it to be sufficiently novel
Lots of extra decisions to make. Like do you want 7, 19, or 27 visible cells?
 
6:39 PM
@trichoplax 27 cells, 2 axes of rotation is what I'm thinking. An interesting side-effect of this is that you can't determine your absolute rotation without using 2+ painted cells. This comes from the fact that you have 16 states of rotation and only 12 "edge cells"/8 "corner cells"/6 "side cells"...
You can, of course, determine basic rotation (for example when wanting to travel straight via corner cells).
I might've explained that poorly, because talking about 3D rotations is hard in and of itself... It's just not intuitive :P
 
I see what you mean though. You can go in a straight line only marking one cell each step, but you'd need to be able to see 2 (in different colours) to send off mine shafts in a consistent direction
 
Yep, that's what I meant. Since we're on the same page, I'll also add that 2D strats don't translate directly because a 2D plane can be reflected when rotated on 2 axes...
Though the accessibility of such a challenge would be really low, not only because of inability to view your creation properly, but also because thinking about 3D rotations and patterns in general is hard. Though the total pool of possibilities is way larger than in 2D.
 
7:30 PM
With 27 visible cells it might be interesting to restrict to far fewer colours. And by interesting I mean mean
 
@trichoplax "Mean mean"? Whatever you meant, restricting it to RGB+white might be a good idea... Though we do have the added difficulty of 2 axes of rotation...
 
Also, I just found that one of the colors I reserved is not necessary for normal marching and recovery
Whether it should remain as a realign color to increase robustness or be repurposed is a question I'll hold off on later
A possibility to help make 3d formic easier is to have ants have a sense of relative direction
Rotate all views to an orientation where there is a clearly defined "forward" direction
Or perhaps let ants know which way is down, but not which direction perpendicular to gravity is forwards
 
@eaglgenes101 Oh, so I was thinking about just ants floating in space. I have a feeling you might be thinking about something else, if you're talking about gravity.
 
I was thinking about ants underground, which is a 3d space with a clearly defined "down".
 
gravity would be very interesting however
the higher up you go the more likely food gets
though enemies could be evil and remove ground below you, making interesting traps possible
 
7:43 PM
@eaglgenes101 Ah, I see, that makes sense. Nah, I just thought about changing the board to 3D, keeping all mechanics exactly the same (just extended)... Though I must agree that this is an interesting, separate concept.
Oh and @dzaima, I've been inspired by your elaborate class Pattern to rework my framework in the spirit of full OOP. Thanks for making me make myself waste my time :P
 
@Alion I don't know what, if not the class, is responsible for the 1-2ms thinking time though :p
 
@dzaima Well I'm gonna have multiple elaborate classes :P
 
@Alion By "mean mean" I meant "intend cruel"
I say "interesting" but what I really mean by that is "mean"
 
@trichoplax Ah, clever. Did not catch that.
Still, if one has 1-2 ms thinking time, then there's still 13-14 ms left to gobble up, am I right? :P
 
I golfed my English too much...
Is that 1-2ms on your local machine? That might possibly leave you even more time on the tournament machine...
 
7:58 PM
@trichoplax Yeah, though I meant that sorta sarcastically. If every entry decided to gobble up 100% of their allocated time, no tournament would ever finish...
Even with the caching, it would still take forever and a half.
 
At least with caching it won't make as much difference (as long as people don't try to take that into account too, and take even longer...)
 
Collisions with others happen, often massive ones. Also keep in mind the food counter of queens, making almost all caching null and void when nearby queens. Also, some entries tend to explode when something goes wrong (Highway is the worst offender, AFAIK), and more often than not, when something goes wrong, caching is also practically useless...
 
I wasn't being too serious either. I really don't want to go back to running a single tournament for months...
 
@Alion only 8 ants can be near a queen though
though doing the calculations, that alone equals over 2 seconds of run time per frame :p
 
Include the queen too, so 9 ants, times 16 players gives a maximum of 144 ants that can be blocked from caching by queens per move...
Ouch. You're right. 18 hours per game...
 
8:07 PM
I have a ant view packing function somewhere within my git history
 
When I was designing this I had no idea there would be so many players, or that there would be so many workers per player. It's great to see :)
@eaglgenes101 To convert the view into a more convenient format?
 
It was for feeding it into a hash function that expected input as an array buffer
Before I moved to xorshift
 
Ah for randomness derived from the input
 
The viewpacking manually walks the view array, and its internal objects, no stringifying required
 
Would that have a benefit for caching? Do you know if it's quicker than stringifying?
 
8:22 PM
@trichoplax I believe @eaglgenes101 suggested this used for caching a while back...
 
I'd say that since the viewpacker knows exactly where to find what it's looking for, it's more efficient than the stringifier that has to perform object reflection and then stick a bunch of partial results together into json
Which then gets fed into a hash function that takes input serially anyway
 
@Alion I vaguely remember some discussion of alternatives, but my priority then was to get some kind of caching working. Then I forgot about considering alternatives later...
@eaglgenes101 I'm open to testing different methods to measure which is faster in practice.
 
 
1 hour later…
9:58 PM
@dzaima I think I figured it out. From MDN‌​: "An important difference between function declarations and class declarations is that function declarations are hoisted and class declarations are not."
Or I might be misunderstanding how hoisting works...
 
Hoisting only affects standard function declarations, but not anonymous functions
I don't know which is being compared here
 
@trichoplax Standard. Well, at least that's what I use in my framework.
My thoughts are along the lines of "is V8 not smart enough to optimize this?", though...
 
I have no idea. My best advice is "profile"
 
10:45 PM
HNNG YES. I have vampire working against (<sub>one arm</sub>) of Windmill again
GARLIC IS DELICIOUS
 
11:10 PM
I read that as "HNNG YES, GARLIC IS DELICIOUS" in a vampire's voice, followed by a mental image of said vampire consuming an entire pile of garlic loudly and couldn't stop laughing for 5 minutes
 

« first day (239 days earlier)      last day (498 days later) »