2011-03-27T00:00:02 or use McLeopold's viewer. that should also still work 2011-03-27T00:00:05 antimatroid: why is that? 2011-03-27T00:00:27 it happens when you have the edge with a wall longer than 1 square i tihnk 2011-03-27T00:00:31 @seen bss003 2011-03-27T00:00:31 Frontier: I have not seen bss003. 2011-03-27T00:00:33 i'm pretty sure that breaks it 2011-03-27T00:01:26 sigh: how do you plan to fix it now? :P 2011-03-27T00:01:29 @seen bss03 2011-03-27T00:01:29 Frontier: bss03 was last seen in #aichallenge 1 week, 2 days, 1 hour, 39 minutes, and 37 seconds ago: amstan: My email is everywhere; I don't depend on it being secret to keep me safe from SPAM. 2011-03-27T00:02:27 antimatroid: yeah, I just came across the same case in my testing 2011-03-27T00:03:43 *** smippy has joined #aichallenge 2011-03-27T00:03:44 *** smippy has joined #aichallenge 2011-03-27T00:04:29 *** smellyhippy has quit IRC (Ping timeout: 260 seconds) 2011-03-27T00:04:37 very cool 2011-03-27T00:05:32 is there a doc describing what the conflict resolution rules are? 2011-03-27T00:05:35 spacebat: do check the specifications page https://github.com/aichallenge/aichallenge/wiki/Ants-Game-Specification 2011-03-27T00:05:38 thanks 2011-03-27T00:05:44 there is a link the the proposed options on that page 2011-03-27T00:05:55 and please do give us your feedback :) 2011-03-27T00:06:04 will do 2011-03-27T00:06:41 I got into planet wars halfway through the competition 2011-03-27T00:06:47 still play galcon occasionally 2011-03-27T00:06:53 yeah same, it's a great game 2011-03-27T00:06:58 i got into pw right at the start though 2011-03-27T00:07:46 my coworkers were using the perl starter pack and some of them timed out with too many fleets in flight 2011-03-27T00:07:57 spacebat: what language do you use? 2011-03-27T00:08:08 but I used it as an excuse to learn CLOS better in common lisp 2011-03-27T00:08:21 :) 2011-03-27T00:08:50 there was no worry about timing out at least with my puny tactics 2011-03-27T00:09:09 hopefully there will be a more recent version of SBCL this time around 2011-03-27T00:09:40 i don't know much (anything) about that kind of stuff, but people have been discussing updating things like that 2011-03-27T00:09:46 *** Chris_0076 has quit IRC (Ping timeout: 246 seconds) 2011-03-27T00:09:56 spacebat: apparently last contests perl start pack was not very well written :P 2011-03-27T00:10:14 yeah I got that impression :) 2011-03-27T00:10:16 they could always write their own :P 2011-03-27T00:10:36 *** Stocha has joined #aichallenge 2011-03-27T00:11:50 is ai-contest.com down? 2011-03-27T00:13:41 no route to hose 2011-03-27T00:13:43 host 2011-03-27T00:13:44 :) 2011-03-27T00:14:31 it puts the ants on its body or it gets the hose again 2011-03-27T00:14:35 it seems 2011-03-27T00:15:22 bah, who read the forums anyway :p 2011-03-27T00:15:31 *** suicidolt has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.16/20110323145543]) 2011-03-27T00:16:17 @seen stocha 2011-03-27T00:16:17 Stocha: stocha was last seen in #aichallenge 54 seconds ago: bah, who read the forums anyway :p 2011-03-27T00:17:26 antimatroid: ok, you can fix it by doing the adjacent cells first, then diagonal cells :P 2011-03-27T00:18:01 it's slower, but it's only like 10% slower instead of 2000% slower :P 2011-03-27T00:18:25 were diagonal squares in the AIM squares? 2011-03-27T00:18:32 no 2011-03-27T00:19:49 antimatroid: http://pastebin.com/j52RzXfw 2011-03-27T00:20:07 I'm not proposing we use this, just trying to demonstrate that it can be fixed :P 2011-03-27T00:20:49 umm 2011-03-27T00:20:53 why is ai-contest.com down? 2011-03-27T00:21:30 janzert: ping! any ideas why ai-contest.com is down? 2011-03-27T00:22:30 who's is in charge of ai-contest.com ? 2011-03-27T00:22:33 no idea 2011-03-27T00:22:36 amstan :P 2011-03-27T00:22:42 Stocha: and j3camero 2011-03-27T00:22:42 not really 2011-03-27T00:22:51 sigh: http://pastebin.com/QCsFFiY4 2011-03-27T00:22:52 he is the one asking why it is down :p 2011-03-27T00:23:11 Stocha: i only have root on it... but i can't even ping it 2011-03-27T00:23:14 ssh down too? 2011-03-27T00:23:21 so.. it must be the hardware, i don't have access to that 2011-03-27T00:23:23 ahh 2011-03-27T00:23:32 contestbot: ping ai-contest.com 2011-03-27T00:23:32 pong 2011-03-27T00:23:38 How is the engine going. I saw a lot of talk about speed and optimization and so on. That i'm not sure i understood anything out of. 2011-03-27T00:23:51 or datacenter network 2011-03-27T00:23:53 our get_vision is broken 2011-03-27T00:23:54 Stocha: ask Mcleopold, he's in charge of that 2011-03-27T00:23:57 we're trying to work out how to fix it 2011-03-27T00:24:10 what does get_vision do ? 2011-03-27T00:24:18 janzert: he's hard rebooting it 2011-03-27T00:24:31 simultaneously paints out from a bots ants to find "visible" squares 2011-03-27T00:24:32 ok 2011-03-27T00:24:37 Dev.Opera suggests using "new String('text');" instead of "'text'" when you want to call methods on the string, as the raw type will have to be converted to an object for every single call otherwise. I really missed that when I wrote the parser. 2011-03-27T00:24:45 do you do that bitmap based ? 2011-03-27T00:24:51 or integer based ? 2011-03-27T00:24:57 ? 2011-03-27T00:25:07 I think i'm doing the same. But i'm not sure 2011-03-27T00:25:21 i didn't cared optimizing it, because it was already quite fast. 2011-03-27T00:25:36 so i'm not sure i understand what's doing on in there :p 2011-03-27T00:25:37 the naive way of doing that efficiently breaks with euclidean metric 2011-03-27T00:25:48 what do you mean ? 2011-03-27T00:25:54 what's the naive way ? 2011-03-27T00:25:58 http://pastebin.com/gscdvw3u 2011-03-27T00:26:01 you mean x2+y2=c ? 2011-03-27T00:26:38 Stocha: no, he means the algorithm that used to be in the engine, the breadth-first search one 2011-03-27T00:27:01 @later tell McLeopold here is a simple demonstration of vision breaking: http://pastebin.com/gscdvw3u 2011-03-27T00:27:01 sigh: I come to serve. 2011-03-27T00:27:41 antimatroid: I can't see how that example would fail? 2011-03-27T00:27:50 antimatroid: http://pastebin.com/QCsFFiY4 <--- this example 2011-03-27T00:28:37 i'm far from sure i understand what the problem is. 2011-03-27T00:28:53 I though a painting view would be aimed at known what an ant can see. 2011-03-27T00:29:01 Or what a team of ant can see. 2011-03-27T00:29:09 I see no way of getting wrong there. 2011-03-27T00:29:22 Or i totally missed a subtlety 2011-03-27T00:29:34 Or i missed what this is about entirely :p 2011-03-27T00:29:36 @later tell McLeopold the starter packs should have the simple by_ants method, we KNOW it works and it is not much slower. It is also much harder to patch starter packs that people have downloaded if there is a bug 2011-03-27T00:29:36 sigh: OK 2011-03-27T00:29:53 Stocha: both ants are on the same team 2011-03-27T00:29:56 in that example 2011-03-27T00:30:22 the numbers are just to differentiate how each square is reached by the algorithm 2011-03-27T00:30:42 do you mean that you have a function wich for a team_of_ant returns a set of seen squares; And that it doesn't work ? 2011-03-27T00:31:02 yes 2011-03-27T00:31:27 can you link me to the method, so i can have a look at the code ? :p 2011-03-27T00:31:43 we also have algorithms that do work :) 2011-03-27T00:31:51 sigh: looking at your latest now 2011-03-27T00:32:01 why is the one that doesn't work important then ? 2011-03-27T00:32:03 trying to wrap my head around what it's doing anyway :) 2011-03-27T00:32:06 janzert: don't bother, it doesn't work either 2011-03-27T00:32:09 oh 2011-03-27T00:32:27 I do have a straight algorithm that is working. 2011-03-27T00:32:34 there are some pathological cases where the current one that works is slow 2011-03-27T00:32:38 janzert: and interestingly it breaks in a way your tests don't catch 2011-03-27T00:32:39 Although i don't know if it would go well with python :p 2011-03-27T00:32:57 heh, really it takes more than two ants to break it? 2011-03-27T00:33:11 a.x 2011-03-27T00:33:13 .b. 2011-03-27T00:33:14 ..a 2011-03-27T00:33:27 vr2 = 2 2011-03-27T00:33:44 ahh, I wondered earlier about that case when I couldn't get the other one to break with vr2=6 2011-03-27T00:33:50 b can see x but is blocked because the a's reach the adjacent squares first 2011-03-27T00:33:56 *** fmeyer has quit IRC (Ping timeout: 264 seconds) 2011-03-27T00:34:42 what i use i think is : for(int x=0;x for(int y=0;y essentially my method sets up a priority queue ordered by euclidean distance (instead of manhattan distance)... and this example shows that still fails 2011-03-27T00:35:10 paint if x2+y2<=sqaure2 2011-03-27T00:35:25 Stocha: yes, that works, that's what is in the engine now 2011-03-27T00:35:38 what's wrong about it ? 2011-03-27T00:35:48 nothing, we thought we had a faster method 2011-03-27T00:35:50 you can optimize it a lot also 2011-03-27T00:35:59 although i had no reason to do so yet 2011-03-27T00:36:17 it's pretty much the fastest method i know. 2011-03-27T00:36:33 Stocha: it becomes slow when a lot of ants are packed together 2011-03-27T00:36:36 because you can go with clever tricks about incrementaly computing x2 and y2 2011-03-27T00:36:41 it takes O((viewradius*2)**2 * num_ants) time 2011-03-27T00:36:46 because you check the same square multiple times 2011-03-27T00:36:49 ah 2011-03-27T00:36:49 of course the constant is very low 2011-03-27T00:36:56 i see 2011-03-27T00:37:11 Of course i used 64 bits integer to get it go faster with many ants. 2011-03-27T00:37:46 Although i got slower the larger the map is. 2011-03-27T00:37:57 I still think it should be possible to do O(number_of_squares_in_view) but the question is if the constant overhead can be low enough 2011-03-27T00:38:05 How many ants can you support at the moment ? 2011-03-27T00:38:30 janzert: yes, I have a candidate, but it is more complicated 2011-03-27T00:38:49 great :) 2011-03-27T00:38:57 why are you doing optimization when the engine has not been finished yet ? 2011-03-27T00:39:19 the engine itself is basically finished 2011-03-27T00:39:23 although maybe it's just fun. 2011-03-27T00:39:28 all the supporting stuff isn't 2011-03-27T00:39:31 it's just interesting 2011-03-27T00:39:36 okay 2011-03-27T00:39:36 and yeah, it's an interesting thing to look at 2011-03-27T00:39:48 I thnk the current method in the engine is fine 2011-03-27T00:39:50 janzert: http://pastebin.com/j52RzXfw <-- forgive the duplicated code 2011-03-27T00:40:03 So want something linear into the number of seen squares ? 2011-03-27T00:40:04 antimatroid pasted a case, but I can't see how that breaks this 2011-03-27T00:40:14 sigh: sorry trying to catch up on the convo 2011-03-27T00:40:17 got caught on the phone 2011-03-27T00:40:24 antimatroid: no worries 2011-03-27T00:41:04 what did you try ? 2011-03-27T00:42:33 sigh: ignore my example, i think your new method works 2011-03-27T00:42:54 I think it works too, but I've been wrong a few times now :) 2011-03-27T00:43:07 yes, i think it works for everything that's broken stuff so far :) 2011-03-27T00:43:28 hehe 2011-03-27T00:43:39 man, should start making unit tests for this 2011-03-27T00:45:32 what testing strategy would you use ? 2011-03-27T00:45:44 and it takes half the time of by_ant for a 10x10 ant grid with a spacing of 1 2011-03-27T00:45:45 nice 2011-03-27T00:45:58 I'm not sure i underestood the idea behind the algo yet 2011-03-27T00:47:30 i guess i do not understand python wel :p 2011-03-27T00:47:34 Stocha: search squares outwards from all ants simultaneously using a priority queue where squares are weighted by Euclidean distance 2011-03-27T00:48:09 this is not the most pedagogical example to look at, it's the end result of me hacking on fixes till it worked :P 2011-03-27T00:48:14 sigh: you can just use a queue i'm pretty sure 2011-03-27T00:48:37 priority queue is more correct 2011-03-27T00:48:58 do they have much difference in speed? 2011-03-27T00:49:34 what is a square weighted by euclidiant distance ? means squares are given a value equal to distance from closest ant ? 2011-03-27T00:49:44 yeah 2011-03-27T00:49:56 oh I thought you were just taking issue with the name. priority queue is the name of an abstract data structure, it says nothing about implementation 2011-03-27T00:50:15 the actual code uses stacks at the core 2011-03-27T00:50:30 but overall it implements a priority queue 2011-03-27T00:50:32 What's the idea for weighting the squares then ? 2011-03-27T00:50:46 it doesn't sound easy to do, that weighting 2011-03-27T00:50:59 so you don't repeatedly check the same visibly square more than once 2011-03-27T00:51:17 how do you obtain the weight matrix ? 2011-03-27T00:51:27 or just the weight i mean. 2011-03-27T00:51:35 you build it as you search 2011-03-27T00:51:52 i don't get the linearity of it yet. 2011-03-27T00:51:58 Stocha: when you reach a square you are guaranteed that it was reached the fastest way 2011-03-27T00:52:14 sigh: the horizontal directions loop and diagonal directions loop are identical right? 2011-03-27T00:52:20 the problem with the naive way was it didn't guarantee you reached it the fastest way 2011-03-27T00:52:21 just double checking before I combine it 2011-03-27T00:52:26 janzert: yes, they are 2011-03-27T00:52:55 janzert: they can't be done at the same time though 2011-03-27T00:53:07 yeah, just found that out :P 2011-03-27T00:53:10 :D 2011-03-27T00:53:34 So you point outward from every-ant, and put a weight to each squared reach then. 2011-03-27T00:54:31 Stocha: what language are you most familiar with? 2011-03-27T00:54:41 java i guess 2011-03-27T00:55:05 or anything using int[] and while loops :p 2011-03-27T00:55:25 hmm... antimatroid you have a c++ impl of vision? 2011-03-27T00:55:52 i have always been bad at reading code also i guess :p 2011-03-27T00:55:53 not the new one 2011-03-27T00:55:58 i have an old one somewhere 2011-03-27T00:56:19 So we still might discuss the raw algorithms anyway 2011-03-27T00:56:39 actually, have a look at this: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/dist/starter_bots/python/ants.py#L198 2011-03-27T00:56:43 i don't see where there is a cutoff 2011-03-27T00:56:57 this is the old broken one, but it is well commented and the idea is the same 2011-03-27T00:57:19 Stocha: http://pastebin.com/VmzKyGhv 2011-03-27T00:57:41 and there's a c++ version :) 2011-03-27T00:59:22 i don't think there exists a screen wide enough for me :( 2011-03-27T00:59:47 :P 2011-03-27T01:00:47 imagine going back to <20" crts :\ 2011-03-27T01:01:29 so at likely common game ant spacing by_ant is still the fastest correct method :/ 2011-03-27T01:01:29 I'm working on my 15" laptop just fine :P 2011-03-27T01:01:36 janzert: yes 2011-03-27T01:02:11 we could always use a different metric 2011-03-27T01:02:49 i used to have MacPlus when i first learned turbopascal and c. 2011-03-27T01:02:50 janzert: if you want to get really hacky, you can update vision can be a count instead of a boolean, and you update it as a ant moves or dies/spawns 2011-03-27T01:02:55 the screen was not that big. 2011-03-27T01:03:23 I didn't grab the principle of the algorithm 2011-03-27T01:03:28 you're meaning incrementally update it? 2011-03-27T01:03:34 is there an article somewhere describing the principle ? 2011-03-27T01:03:34 janzert: when an ant moves you only need to update the difference of the previous and new vision 2011-03-27T01:03:37 yeah, that would be an option 2011-03-27T01:03:37 janzert: yes 2011-03-27T01:03:50 but then the vision code leaks out into the entire engine 2011-03-27T01:03:57 ah so it's based over ant movement ? 2011-03-27T01:04:11 between turns. 2011-03-27T01:04:13 and although it spreads the cost out I'm not sure it would actually be faster? 2011-03-27T01:04:17 Stocha: my tron bot was based around it 2011-03-27T01:04:22 janzert: why not? 2011-03-27T01:04:30 I'm assuming most all ants will move every turn 2011-03-27T01:04:42 there was an euclidian distance in tron ? 2011-03-27T01:04:45 you still have to do the same work per ant right? 2011-03-27T01:04:46 no 2011-03-27T01:04:46 kill/spawn ant is O(visionradius**2), moving an ant is O(visionradius) 2011-03-27T01:04:59 this works for movement as well, you just block your search with water 2011-03-27T01:05:42 the evauluation function for my tron bot for non wins/loses was basically to do the difference between the number of squares each player could reach first 2011-03-27T01:06:31 you don't want to see the code for that, i'm not even sure i still have it, but it was all in one file and just awful 2011-03-27T01:06:56 i'm more interested into grabbing the principle. 2011-03-27T01:07:30 hang on 2011-03-27T01:07:32 in any case incremental updating seems like it would get messy 2011-03-27T01:07:38 So it's like, for each ant you maintain a list of seen squares. 2011-03-27T01:07:55 then you try to update this list when the ant moves. 2011-03-27T01:08:30 Stocha: if you were to go with an incrementally update version it would be something like that yes 2011-03-27T01:08:39 but we're not really looking at that 2011-03-27T01:08:40 the obvious way being applying a translation to it 2011-03-27T01:08:49 but a simple translation wouldn't speed things 2011-03-27T01:09:01 that you have to build a clever way to do the translation ? 2011-03-27T01:09:25 so the question would be : what is the clever way of doint that translation then ? :p 2011-03-27T01:09:50 Stocha: http://pastebin.com/mRfSG8hi 2011-03-27T01:09:50 or maybe you don't update the points in the list 2011-03-27T01:09:55 janzert: yes, which is why I said that it was hacky :P 2011-03-27T01:09:59 maybe you update the list itself 2011-03-27T01:10:19 the numbers are squares that will go onto the queue before any number greater than it, but not necessarily in any order for the same number 2011-03-27T01:10:40 if you paint a grid like that with all ants, you can use the numbers from a "target square" to backtrack a shortest path as well 2011-03-27T01:11:13 I'm thinking it would be best to have a 2 dimensional array for the points, that in each dimension is like a circular buffer 2011-03-27T01:11:17 janzert: if vr2=96, then vision is 293 squares per ant, but symmetric difference between adjacent visions is only 38 2011-03-27T01:11:34 if you want concrete numbers :) 2011-03-27T01:11:36 so you want to build the distance to closest ant matrix really. 2011-03-27T01:11:37 instead of moving cells within the grid, you change the start/end coordinats 2011-03-27T01:11:57 and update the row and column that is old with new data 2011-03-27T01:13:11 i'm totally lost :p 2011-03-27T01:13:29 so are the ants 2011-03-27T01:13:34 :) 2011-03-27T01:14:08 don't worry half this conversation is just exploring what is possible, rather than what is practical :P 2011-03-27T01:14:11 But i least i understood that we are trying to incrementaly update the mindistance to ant matrix, as ants moves. 2011-03-27T01:14:38 wich is a good start i think. 2011-03-27T01:14:53 i even could use a matrix of this sort at some point, who knows. 2011-03-27T01:16:09 the easy way would be to recalculate the whole thing every turn of course. from scratch 2011-03-27T01:16:27 i don't even know how long that takes. 2011-03-27T01:16:51 spacebat: have you read the battle options and proposed scoring method yet? :P 2011-03-27T01:17:02 that's what i'm most interested in peoples opinion on 2011-03-27T01:17:03 not yet 2011-03-27T01:17:05 so maybe i should understand how to obtain the distance frome closest ant matrix, from scratch in the first place :p 2011-03-27T01:18:08 i could go with : for each ant X 2011-03-27T01:18:29 calculate the whole distance matrix for that ant 2011-03-27T01:18:41 apply the min of all matrix for each squares 2011-03-27T01:19:10 maybe i'll think about it. 2011-03-27T01:19:44 when will the forum be up ? 2011-03-27T01:19:56 who reads the forums? :P 2011-03-27T01:20:23 perhaps anyone who reads the forums should be disqualified from the competition 2011-03-27T01:21:33 i do. Although i read them incrementally. Wich is easy to do when noone is ever posting anything :p 2011-03-27T01:21:49 why would that be spacebat ? 2011-03-27T01:21:54 *** moongrass has quit IRC (Ping timeout: 250 seconds) 2011-03-27T01:22:01 *** moongrass has joined #aichallenge 2011-03-27T01:22:23 Stocha: for shits and giggles 2011-03-27T01:22:33 :) 2011-03-27T01:22:37 ? 2011-03-27T01:22:49 its a joke 2011-03-27T01:22:49 giggles is like laughing right ? 2011-03-27T01:22:56 it is 2011-03-27T01:22:57 but what does that expression stands for 2011-03-27T01:23:15 it means that disqualifying the forum readers was a joke ? 2011-03-27T01:23:25 giggling - little school girls in a group giggling 2011-03-27T01:23:34 yeah i though it was that 2011-03-27T01:23:45 so it's a kind of laughing. 2011-03-27T01:23:57 shits and giggles is a common english expression for taking the piss kind of 2011-03-27T01:24:12 taking the piss ?? 2011-03-27T01:24:13 antimatroid: I prefer the damage option 2011-03-27T01:24:16 what's that. 2011-03-27T01:24:21 just out of intuition 2011-03-27T01:24:21 spacebat: correct answer :) 2011-03-27T01:24:38 damage is nice. But there are parameters to choose. 2011-03-27T01:24:45 there aren't 2011-03-27T01:24:47 1 is fine 2011-03-27T01:25:10 it doesn't make sense to have say 2 ants kill 3 in a single battle 2011-03-27T01:25:19 i dont know what you are talking about, but i like dealing damage to ants in step 1 and checking which and is full off in step 2 2011-03-27T01:25:26 *ant 2011-03-27T01:25:40 Frontier: Stocha wants to vary the amount of damage each ant has to dish out 2011-03-27T01:25:45 geez, my spelling adopts to the internet Oo 2011-03-27T01:25:53 Frontier: also, your vision algo is going to be broken too, sorry :P 2011-03-27T01:26:03 if two ants kill 3 then you have a reason for being carefull about ant positionning. Especially if 3 can kill 2 too 2011-03-27T01:26:32 but the point of damage is that you get more ants in to get more kills 2011-03-27T01:26:33 antimatroid: my vision algorithm? it is brute force and simple, how can it be broken? 2011-03-27T01:26:51 adding a counter balance to that would really be complicating things 2011-03-27T01:26:54 i though the point was that you had to plan for ant position. 2011-03-27T01:27:05 Frontier: you didn't use my vision algorithm? then you're ok 2011-03-27T01:27:08 my one was broken 2011-03-27T01:27:38 should i include one in my starter bot? 2011-03-27T01:27:48 i'm referring to your visualiser? 2011-03-27T01:27:50 Stocha: all of the resolutions have implcations for ant placement 2011-03-27T01:27:52 one vision algorithm ? 2011-03-27T01:27:57 i think you should yes 2011-03-27T01:28:02 it's pretty usefull. 2011-03-27T01:28:14 antimatroid: ok, my visualizer is fine. 2011-03-27T01:28:22 otherwise you don't know wich squares are solid ground. 2011-03-27T01:28:30 i mean: I SEE the results, that is a benefit 2011-03-27T01:28:34 wich is kinda embarassing 2011-03-27T01:28:45 Frontier: http://pastebin.com/gscdvw3u 2011-03-27T01:28:55 that outlines a case where the function we had in the engine didn't work quite right 2011-03-27T01:28:58 sigh made that 2011-03-27T01:29:03 i wondered if the engine should not send first seen ground squares also. As it does for water 2011-03-27T01:29:52 why? 2011-03-27T01:30:03 people can work out what's unseen for themselves 2011-03-27T01:30:13 why don't you stick with straight forward code into the engine ? until you have it fully tested and used. Then you can make some optimization with an heavy regression test policy (cross checking the result of the well testing simple engine with that of the new) 2011-03-27T01:30:33 Maybe simple bots won't want to do that. 2011-03-27T01:30:58 ants shouldn't know the map, that seems wrong 2011-03-27T01:31:00 The starter bot probably have to provide a mean to at least know what are the solid ground squares :p 2011-03-27T01:31:04 use unit tests as my granny used to say 2011-03-27T01:31:35 Just program, motherfucker! is what my granny used to say 2011-03-27T01:31:41 i'm not a unit tests fanatic; They are usefull. But tricky to build. And trikier to maintain :p 2011-03-27T01:32:17 My granny used to say : You jumped on that biscuit like misery on the poor wolrd. 2011-03-27T01:32:37 nothing to do with programming. She wasn't what you would call a geek or hacker. 2011-03-27T01:32:51 she didn't have an iphone to say the truth. 2011-03-27T01:33:07 i don't think either of my grandmothers knew/know what the hell programming is let alone a unit test 2011-03-27T01:33:25 they could knit, couldn't they? 2011-03-27T01:33:32 ha :P 2011-03-27T01:33:36 what's knitting ? 2011-03-27T01:33:39 touche 2011-03-27T01:33:52 i search google for incremental ways of updating distance matrixes 2011-03-27T01:33:53 Stocha: programming 2011-03-27T01:34:02 and found nothing. I never find anything on google :'( 2011-03-27T01:34:06 well actually, it's running a program :P 2011-03-27T01:34:33 except when i query for britney spears. 2011-03-27T01:34:42 Stocha: it's more fun to solve problems yourself 2011-03-27T01:34:59 sometimes it is. But i 'm growing tired of that 2011-03-27T01:35:19 aichallenge: sigh epsilon * r62fee81 / ants/util/vision_compare.py : Added 2 more vision methods - http://bit.ly/fWw64M 2011-03-27T01:35:21 janzert: you there? 2011-03-27T01:35:31 janzert: check out vision_by_ants_faster ^^ :D 2011-03-27T01:35:38 although i always have to. Because most of the time i don't understand articles until i'm able to recreate the solution. 2011-03-27T01:36:11 Still you can find nice ideas in existing algorithms. Sometimes. 2011-03-27T01:37:16 when will the forum be up again ? 2011-03-27T01:38:39 antimatroid: you too, try running the vision_compare script :P 2011-03-27T01:38:45 My new bot is significantly stronger than the reference one on 90x90 maps. But weaker on 200x200 maps. how is that : / 2011-03-27T01:38:57 I dont get it. 2011-03-27T01:39:14 when i looked at the 200x200 games, the new bot really look stronger. 2011-03-27T01:39:39 but on 200x200 map i got Score inWin for P0 -> 304 Score inWin for P1 -> 464 2011-03-27T01:39:54 with P0 being the new bot (which i believe is the strongest one) 2011-03-27T01:40:34 At least it supports my advocating for a fixed map size for the contest :p 2011-03-27T01:41:14 People will not want to test their bot for every possible map size, not knowing what the setting will be. 2011-03-27T01:42:57 the squaredistance=6 is the standard for fight, with Damage(x=1) being the prefered candidate so far ? 2011-03-27T01:43:58 http://ns368394.ovh.net/stocha/Sz80_Fh02G_ExplorAggr_rad6_x1_00/ 2011-03-27T01:44:19 here is a game with those settings. 2011-03-27T01:47:41 I guess i should start diggin a bit into that X=1 thing. 2011-03-27T01:48:01 and that everybody has left the irc channel. 2011-03-27T01:49:38 The two bots are of same strength with those settings. 2011-03-27T01:50:01 *** Stocha has quit IRC (Quit: Page closed) 2011-03-27T01:53:55 *** closedbracket has joined #aichallenge 2011-03-27T02:00:03 *** fmeyer has joined #aichallenge 2011-03-27T02:23:05 everyone's gone :( 2011-03-27T02:28:49 janzert? antimatroid? 2011-03-27T02:29:06 sigh:? 2011-03-27T02:29:07 contestbot? 2011-03-27T02:29:30 antimatroid: I've been cleaning up the vision methods 2011-03-27T02:29:39 *** Stocha has joined #aichallenge 2011-03-27T02:29:55 turns out that most of the time is taken up by the function calls 2011-03-27T02:30:05 haha typical 2011-03-27T02:30:14 you can't inline that with python can you? 2011-03-27T02:30:23 would need to be compiled 2011-03-27T02:30:48 aichallenge: sigh epsilon * r9306fc5 / ants/util/vision_compare.py : Refactored some of the vision candidates - http://bit.ly/egSESb 2011-03-27T02:30:49 aichallenge: sigh epsilon * rab18586 / ants/util/vision_compare.py : Refactored vision_by_distance_2* methods - http://bit.ly/hOgoAC 2011-03-27T02:30:51 yeah, you can't 2011-03-27T02:30:59 don't call functions then :p 2011-03-27T02:31:45 antimatroid: can you double check the logic here: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/util/vision_compare.py#L155 2011-03-27T02:31:51 I might have understood what you do to update the closest distance to friendly ant matrix. 2011-03-27T02:31:59 I refactored it a bit 2011-03-27T02:32:30 I wrote an equivalent below with the functions inlined 2011-03-27T02:33:48 isnt squareDist=6 same as squareDist=5 ? 2011-03-27T02:33:51 assuming it works without breaking obviously the logic seems right 2011-03-27T02:34:09 Stocha: it is, but it's easier to get sqrt(5 ) wrong with rounding errors 2011-03-27T02:34:42 yup, sqrt(7) is the same too :) 2011-03-27T02:35:33 i was wondering because i made some experimentes with 5 and tryed to update them to 6 ... :p 2011-03-27T02:35:47 because in your specs it used to be 5 and became 6 2011-03-27T02:35:57 so i was a bit puzzled at the result :p 2011-03-27T02:36:06 these are the only possible distances up to 100: 2011-03-27T02:36:07 [0, 1, 2, 4, 5, 8, 9, 10, 13, 16, 17, 18, 20, 25, 26, 29, 32, 34, 36, 37, 40, 41, 45, 49, 50, 52, 53, 58, 61, 64, 65, 68, 72, 73, 74, 80, 81, 82, 85, 89, 90, 97, 98, 100] 2011-03-27T02:36:47 what's the general formulae then ? :pp 2011-03-27T02:36:57 Stocha: nice visualizer you have there. 2011-03-27T02:37:17 it's a straight forward int matrix visualizer 2011-03-27T02:37:40 with a litle bit of tweaking for making some value round rather than rect to say the truth (i made it later though) 2011-03-27T02:39:16 we still lack a 'game-in-progress' visualizer, and yours is written in Java which is a good start. so if you want to code something up that everyone will use to test their bot just go ahead. 2011-03-27T02:39:34 The problem at the moment is : it's a java to java engine 2011-03-27T02:39:38 there is no text interfaces. 2011-03-27T02:40:22 i simply convert the serverstate into int[][] 2011-03-27T02:40:30 and show every server state. 2011-03-27T02:40:44 it's far from a "game-in-progress" visualizer 2011-03-27T02:40:55 Stocha: there's no simple formula, although there are a lot of complicated ones :) 2011-03-27T02:40:59 you would have to build the funct for game-in-progress --> int matrix 2011-03-27T02:41:27 Then i would provide you with the vizualiser :p 2011-03-27T02:41:37 But i think the visualiser you have is good isn't it ? 2011-03-27T02:41:42 well, there is McLeopold visualizer for the streaming format in the 'viewer' directory. It is JavaScript and could set you up 2011-03-27T02:41:59 aarr; i don't javascript :p 2011-03-27T02:42:13 Stocha: My visualizer cannot display games in progress, only completed games. 2011-03-27T02:42:22 why is that ? 2011-03-27T02:42:40 i mean can't you put in partial games ? 2011-03-27T02:42:45 I volunteered to write the canvas visualizer 2011-03-27T02:43:16 For example : you load the game in progress, and only see it up to the point it was when you loaded it :p 2011-03-27T02:43:40 one would argue it isn't a game in progress visualizer 2011-03-27T02:43:41 and we came up with a format that is about the size of a planetwars replay instead of 1MB+ for the streaming format one would use for game-in-progress visualisation 2011-03-27T02:44:09 what you lack is the possibility to update , with the delta from the point you loaded to the now point. 2011-03-27T02:44:23 For example the whole life of an ant is a single line 2011-03-27T02:44:50 you mean you have to incrementally calc the server state right ? 2011-03-27T02:45:04 if i understand correctly 2011-03-27T02:45:20 so you came up with a compression factor compared to spooling every full server state. 2011-03-27T02:45:40 1:10 is the compression ratio :p 2011-03-27T02:45:46 (wich is what i do by the way, i just spool the full server state :p) 2011-03-27T02:46:25 but then once you have the incremental turn by turn representation you can decompress it to a full server state again 2011-03-27T02:46:58 I can... but the file format is written in a fashion that it is only output at the end of a game. 2011-03-27T02:47:03 so when you do real time, you need to append whatever you turn updates you haven't buffered yet 2011-03-27T02:47:10 aaahh 2011-03-27T02:47:15 there is no ouput format then ? 2011-03-27T02:47:35 you mean you can't decode anyserver state until you have the end of the game incrementals ? 2011-03-27T02:47:51 so that would where we should start with i guess :p 2011-03-27T02:47:59 There are two formats. I refer to the one i implemented as the 'storage' format. Then there is McLeopolds 'streaming' format that you or someone else could implement 2011-03-27T02:48:18 You need an incremental format that you can decode sever state out of, without knowing the upcoming deltas :p 2011-03-27T02:48:28 Take a look at the wiki: https://github.com/aichallenge/aichallenge/wiki/Ants-replay-format 2011-03-27T02:48:37 okay; i will 2011-03-27T02:48:56 i'm 'll just setup a litle experiment and then i'll dig into it a bit. 2011-03-27T02:49:26 the 'streaming' format has the data turn by turn and is prefect for live views :) 2011-03-27T02:49:55 i'll have a look at it and tells you my thought about it if i have any. 2011-03-27T02:50:32 but if you visualizer work, it should be used also for streaming, as most as possible. 2011-03-27T02:50:45 with simply a decoding phase in before 2011-03-27T02:51:19 or if we can't, at least reuse as most code the copy/past way :p 2011-03-27T02:51:34 @later tell McLeopold: Remember to add some information about the streaming format to https://github.com/aichallenge/aichallenge/wiki/Ants-replay-format when you find the time. 2011-03-27T02:51:34 Frontier: Yes master! 2011-03-27T02:51:40 well well, let me dig a bit first 2011-03-27T02:51:58 that's a nice bot you have here. 2011-03-27T02:52:19 @contestbot i feel a litle depressed. Can you help me anyhow ? 2011-03-27T02:52:20 Stocha: I have no idea what you mean. 2011-03-27T02:52:34 it never wants to talk to me :'( 2011-03-27T02:55:08 Stocha: Technically your decoder idea is feasible, but I could imagine that is no less work than to rewrite parts of my visualizer to allow streamed data and implement the 'streaming' format. 2011-03-27T02:55:29 @contestbot why is the sky green? 2011-03-27T02:55:30 Frontier: An error occured while trying to show the previous error. 2011-03-27T02:55:32 oh 2011-03-27T02:57:08 okay .. so i guess it's better not to use the error outputstream when you launch your java thing in the background on linux :p 2011-03-27T02:57:24 well i launched the experiment so let me have a look 2011-03-27T02:57:39 the biggest problem is speed. I managed to reuse my JavaScript for the html canvas, applet and standalone viewer which is cool, but parsing replays is horribly slow: a 60 turns game takes 3.5 seconds :/ 2011-03-27T02:58:54 (among the browsers only IE < 8 and Opera will be that slow, other browsers have a faster implementation) 2011-03-27T02:59:45 isn't java script universal ? 2011-03-27T02:59:58 which in turn makes me think that maybe I should do more parsing on the go, instead of precalculating everything ahead of time, which in turn would be a start for work on the 'streaming' format. 2011-03-27T03:00:03 the planetwar viewer was javascript right ? 2011-03-27T03:00:17 it was, but for IE there was an applet version 2011-03-27T03:00:30 (basically the same as the offline showgame.jar) 2011-03-27T03:00:46 i only saw the online viewer 2011-03-27T03:01:12 i guess i should try to see what the incremental format is about a litlle more 2011-03-27T03:01:56 You can look at the 0.stream files, the engine outputs and McLeopold's viewer in the repo. There is no more information atm I fear. 2011-03-27T03:01:59 # food spawns after 1 turn and survives a 0 1 1 201 # starting food disappears after 3 turns a 0 4 0 3 2011-03-27T03:02:02 what's that ? :p 2011-03-27T03:02:19 # food spawns after 1 turn and survives 2011-03-27T03:02:26 a 0 1 1 201 2011-03-27T03:02:33 # starting food disappears after 3 turns 2011-03-27T03:02:37 that is the storage format - it is cool 2011-03-27T03:02:43 a 0 4 0 3 2011-03-27T03:03:23 a 2011-03-27T03:03:34 ah here it is yes 2011-03-27T03:05:38 do you use full server state tracking in your implementation (i mean you decompress it to each frame of server state, and then let the user "choose" the one he sees) 2011-03-27T03:07:11 more or less, yes. I use keyframe animations, so there are no 'states' but smooth transitions from one keyframe to another. Keyframes can be 20 turns apart or just half a turn. 2011-03-27T03:08:36 so you decode the stream directly into graphical representation ? 2011-03-27T03:08:52 (i don't really understand what keyframe animations are ... :p) 2011-03-27T03:09:10 my only knowledge with computer science is about int[] 2011-03-27T03:09:22 when you go to far from those, i'm lost. 2011-03-27T03:09:33 lol, ok. 2011-03-27T03:09:53 so you just decode directly to drawing frames do you ? 2011-03-27T03:10:18 Yes, I take a line from the replay ("a .....") and make up an animation sequence for that. The ant can change its color, grow or shrink etc. 2011-03-27T03:10:24 then you stack them somehow, and the user can choose. Or your decode into an animation with compression of some sort or something 2011-03-27T03:10:36 ah okay. 2011-03-27T03:10:58 then the animation is buffered 2011-03-27T03:11:01 Each ant is still a separate drawing object. 2011-03-27T03:11:09 and you can jump to whatever animation frame you want. 2011-03-27T03:11:15 exactly :) 2011-03-27T03:11:21 but superposing every ant 2011-03-27T03:11:29 by superposing every ant. 2011-03-27T03:11:37 what does superposing mean? 2011-03-27T03:11:41 mm 2011-03-27T03:11:47 i don't know :p 2011-03-27T03:11:52 let me check wikipedia 2011-03-27T03:12:01 im german, help me ^^ 2011-03-27T03:12:30 mm the litle girl is waked up 2011-03-27T03:12:34 so i'll have trouble now 2011-03-27T03:12:44 i don't know if superposing is english also 2011-03-27T03:12:53 it certainly is french "Superposer" :p 2011-03-27T03:14:07 does it mean 'to add a new layer over something'? 2011-03-27T03:14:36 yeah that's it :) 2011-03-27T03:14:43 and don't forget the little girl over computer stuff ^^ 2011-03-27T03:14:58 she is 1 year and 6 month 2011-03-27T03:15:06 watching closely at the chat windows right now :p 2011-03-27T03:15:31 haha, I have the picture in front of my inner eye 2011-03-27T03:15:34 she grow jealous of the computer even faster than the mother. 2011-03-27T03:16:12 the the magic happens both in a line and s line. 2011-03-27T03:16:18 but mostly into a line. 2011-03-27T03:16:30 Tell the mother you do cool stuff with people from all over the world and that it is a competition. 2011-03-27T03:16:45 she knows that 2011-03-27T03:16:51 she saw my applets and such 2011-03-27T03:17:02 The a lines are the core of it, yes 2011-03-27T03:17:07 *** McLeopold has joined #aichallenge 2011-03-27T03:17:16 she also made a few argument of it taking too much time, and she encourages me also. 2011-03-27T03:17:22 Alors, tu es francais? 2011-03-27T03:17:29 ui :) 2011-03-27T03:17:46 sind sie deutch ? 2011-03-27T03:17:57 antimatroid: ping 2011-03-27T03:17:59 ich keine deutch sprechen 2011-03-27T03:18:00 ja 2011-03-27T03:18:05 :p 2011-03-27T03:18:56 how but and modular is the visualizer ? 2011-03-27T03:19:02 McLeopold: I just talked with Stocha about the streaming format 2011-03-27T03:19:16 would it be fun to convert it to a more flexible thing ? (like being able to do the streaming or something) 2011-03-27T03:19:21 sigh: I'll patch the python starter pack, give me some time to grieve my algo 2011-03-27T03:19:33 McLeopold: :) 2011-03-27T03:19:37 Frontier: what's up? 2011-03-27T03:19:38 Stocha: It is modular in a sense that you can parse a replay without the actual visualizer. 2011-03-27T03:19:49 sigh: Also, I have a great idea for food spawning 2011-03-27T03:20:10 you can add new frames easilly ? 2011-03-27T03:20:20 McLeopold: what is it? and is it symmetric or asymmetric? 2011-03-27T03:20:30 It's both :) 2011-03-27T03:20:44 like if we have the new frames from the last delta from another javascript function is it easy to concatenate 2011-03-27T03:21:17 McLeopold: I don't have the time to implement the live view of games. So I thought maybe Stocha wants to look at it. What do you think? We would need some specs on the wiki page for that. 2011-03-27T03:21:24 starter pack can be symmetric and asymmetric nowaday ? 2011-03-27T03:21:40 Frontier: okay, I think scrolling is more important anyway 2011-03-27T03:21:49 i think the incremental replay is good 2011-03-27T03:21:54 And IE support isn't that important 2011-03-27T03:22:15 we need a way to send it in continuing stream rather that a one shot only 2011-03-27T03:22:16 Stocha: We can append frames. 2011-03-27T03:22:31 so let's say you have your a sequences 2011-03-27T03:22:32 Stocha: we have the streaming format already 2011-03-27T03:22:37 up to say 148 chars 2011-03-27T03:22:49 McLeopold: I was thinking about a different application especially for local testing and live view. 2011-03-27T03:22:54 you can get the 200 new chars and update the animation with it 2011-03-27T03:23:39 my litle girl do have something to say on the matter also. She try hard to strike at the keyboard :p 2011-03-27T03:23:57 She tries to mime you ;) 2011-03-27T03:24:16 i might have to close the think soon :p 2011-03-27T03:24:39 thing 2011-03-27T03:24:53 frontier : what local application ? 2011-03-27T03:25:44 i mean what application will you use for local testing ? 2011-03-27T03:25:50 What people will need is an application on their computer (local) that can display games as they are played. for that purpose we have a streaming file format, but no application 2011-03-27T03:26:15 okay. But that streaming stuff will have to work over tcp also 2011-03-27T03:26:22 it would be a waste otherwise :p 2011-03-27T03:26:28 Frontier: I'm hoping to hook playergame.py into a local html viewer at some point 2011-03-27T03:26:37 people will want to look at ongoing games during the contest 2011-03-27T03:26:45 maybe launch a temp http server on a port or something 2011-03-27T03:27:04 Stocha: not for official, that's too much web traffic 2011-03-27T03:27:08 But on tcp 2011-03-27T03:27:22 you still have to design the stuff to be upddatable as the game is going on 2011-03-27T03:27:33 http do is tcp right ? 2011-03-27T03:27:56 Stocha: the 'streaming' format is well designed for that purpose 2011-03-27T03:28:08 yes, http extends tcp 2011-03-27T03:28:15 you said it's heavy :p 2011-03-27T03:28:42 and also you implyed that your visualiser was not easy to update for the streaming format :p 2011-03-27T03:28:46 it is a lot of data, true 2011-03-27T03:29:04 again you are right ^^ 2011-03-27T03:29:24 if you are in local a lot of data won't be a problem. i guess. 2011-03-27T03:29:36 but over tcp it might. 2011-03-27T03:29:40 *** boegel has joined #aichallenge 2011-03-27T03:29:51 McLeopold is the tcp dude, ask him ;) 2011-03-27T03:29:51 especially if a lot of people want to watch at the same game :p 2011-03-27T03:30:38 uh... match making on tcp with maps for 9 players may be difficult 2011-03-27T03:30:39 so i was wondering about updating you visualiser for a format that would send complements to the "a" lines. 2011-03-27T03:31:01 9 players WILL be difficult non matter what. 2011-03-27T03:31:07 if only for the map size. 2011-03-27T03:31:19 Stocha: noone wants a third replay format 2011-03-27T03:31:28 Most of what i tryed assumed for reasonable map sizes :p 2011-03-27T03:31:37 okay 2011-03-27T03:31:52 so you have to build a visualiser for heavy streaming server state then :p 2011-03-27T03:32:26 but i don't want to. 2011-03-27T03:32:31 let's start from there then 2011-03-27T03:32:36 yeah i understand that 2011-03-27T03:32:50 so someone else will do it. But with the heavy streaming format 2011-03-27T03:33:03 the advantage being that it should be easier to do 2011-03-27T03:33:11 i think so. 2011-03-27T03:33:14 if you don't put in fancy things 2011-03-27T03:33:21 like food animation when appearing :p 2011-03-27T03:33:28 or animated ant death 2011-03-27T03:33:40 Full integer matrix are easy enougth to do. 2011-03-27T03:34:05 So let's see : you go from the streaming format to integer matrix, and then just paint this matrix 2011-03-27T03:34:14 maybe you keep all the integer matrix in memory 2011-03-27T03:34:21 so you can go through them. 2011-03-27T03:34:26 correct 2011-03-27T03:34:37 is it reasonable now ? 2011-03-27T03:34:44 what about 500 turns games ? 2011-03-27T03:35:12 let's say we got 100x100 maps 2011-03-27T03:35:13 *** boegel has quit IRC (Quit: This computer has gone to sleep) 2011-03-27T03:35:16 what about them? ~ 3 mb streaming 2011-03-27T03:35:20 and we keep an int per square 2011-03-27T03:35:40 ah you mean the buffers 2011-03-27T03:36:24 it makes 20 MB 2011-03-27T03:36:35 mm i get 100kb 2011-03-27T03:36:43 100x100= 10 000 2011-03-27T03:36:50 then int =8 b 2011-03-27T03:36:54 that's 80 000 b ? 2011-03-27T03:36:58 =100 kb ? 2011-03-27T03:37:04 * 500 turns 2011-03-27T03:37:09 ah there it goes :) 2011-03-27T03:37:16 int in Java is 4 bytes 2011-03-27T03:37:18 100 kb per frame then :p 2011-03-27T03:37:53 okay around 50 megabytes at most then 2011-03-27T03:38:00 but you could use byte instead of int 2011-03-27T03:38:16 yeah sure, i' just wanted to have a clue of what size to expect :) 2011-03-27T03:39:42 i probably can hack something quick and dirty in java. But i don't like to do real things 2011-03-27T03:39:53 i mean i do debuger visualizer mostly :p 2011-03-27T03:40:01 so you can debug and see what's going on 2011-03-27T03:40:06 yours has neat stuff 2011-03-27T03:40:10 animation and such 2011-03-27T03:40:49 if i do something it will be like mapping ascii to colored squares. 2011-03-27T03:41:03 but then 2011-03-27T03:41:05 That is just for the looks. Noone really needs that. In the end a simple square will do just as well as long as people can watch their games while they run 2011-03-27T03:41:24 it's called a streaming format 2011-03-27T03:41:36 does that mean that your request the frame you want to paint back to the server ? 2011-03-27T03:41:49 like you ask for "turn 300" frame, and it sends it 2011-03-27T03:42:02 McLepold: pong 2011-03-27T03:42:22 no there is no communication to the server. you just receive turn 0, turn 1, ... 2011-03-27T03:42:42 so in the end, what one needs is the module for puting in a string (Ascii server state) and ouputing that in a square colored. With each char being mapped to a color 2011-03-27T03:43:06 what i you plug your visualizer once the game is already on its way ? 2011-03-27T03:43:57 I need the 'storage' format which is only output after the game, 2011-03-27T03:44:35 *** amstan_ has joined #aichallenge 2011-03-27T03:44:35 *** ChanServ sets mode: +o amstan_ 2011-03-27T03:44:43 *** amstan has quit IRC (Read error: Connection reset by peer) 2011-03-27T03:44:53 no i was wondering about the "streaming" format 2011-03-27T03:45:08 and that you should be ables to request frames from it 2011-03-27T03:45:21 Stocha: the viewer that I wrote parses the stream format, if you need an example 2011-03-27T03:45:40 You get 1 frame at a time, in order 2011-03-27T03:45:41 Stocha: you want to attach to a running game? nice idea 2011-03-27T03:47:00 anyway there is clearly two part for the streaming visualizer 2011-03-27T03:47:17 tranforming the ascii frame into a squaredcolor frame 2011-03-27T03:47:37 and then there is a part of making it so that the ascii frame is there 2011-03-27T03:48:14 wich can be from text file, or from tcp. Can be asked for the full list, or partial list (turn 567-600) for exemple. 2011-03-27T03:48:26 it desn't sound too expensive to make 2011-03-27T03:48:30 Stocha: i have to stop you quickly: only on the first turn you receive an ascii map, the next turns are lines with 'a...' and 'f...' similar to the 'storage' format 2011-03-27T03:48:47 with the streaming ? 2011-03-27T03:48:52 ah good then. 2011-03-27T03:49:02 still you can decode them into ascii frames :p 2011-03-27T03:49:04 yes, and the first turn contains additional data, like player count, map size etc. 2011-03-27T03:49:17 you can, but why take an extra step ;) 2011-03-27T03:49:34 so the module for Ascii frame --> squared color would come first i think 2011-03-27T03:49:41 it's like says two hours work ? 2011-03-27T03:50:09 yes probably 2011-03-27T03:50:13 then the XXX--> ascii frame will have a wider ranger of people willing to do it no ? 2011-03-27T03:50:48 i have seen plenty of ascii frames already 2011-03-27T03:50:52 hehe, you probably expect too much. 2011-03-27T03:52:04 but McLeopold has the code for that already, you can copy & paste :-) 2011-03-27T03:52:05 *** delt0r_ has joined #aichallenge 2011-03-27T03:52:06 what about i do a java application where you can paste an ascii frame and get back a squared colored image 2011-03-27T03:52:17 we will then be able to watch animatroid maps right ? :p 2011-03-27T03:52:32 ah he already have that module ? 2011-03-27T03:52:38 yes, you can look at the maps, but have no running games ^^ 2011-03-27T03:52:50 he has a good start then 2011-03-27T03:52:50 *** pyro- has joined #aichallenge 2011-03-27T03:53:06 McLeopold has a visualizer for the streaming format. It is just not really streaming and written in javascript 2011-03-27T03:53:07 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-03-27T03:53:44 it is here: https://github.com/aichallenge/aichallenge/tree/epsilon/ants/viewer 2011-03-27T03:54:48 Frontier: that visualiser uses the replay format, I think 2011-03-27T03:55:08 more specifically here: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/viewer/viewer.js#L68 2011-03-27T03:55:19 sigh: it uses the streaming format, no? 2011-03-27T03:55:26 oh, you are right 2011-03-27T03:55:31 yep 2011-03-27T03:56:22 sigh: I think you should stick vision_by_ant_faster into the engine 2011-03-27T03:56:31 I could change it to start playing before parsing the whole input, which would make streaming easier 2011-03-27T03:56:33 janzert: I agree 2011-03-27T03:56:59 I don't think anything is going to beat that for almost any actual game 2011-03-27T03:57:03 :) 2011-03-27T03:57:41 on the other hand, the vision_by_distance_2 code is a lot cleaner now :P 2011-03-27T03:57:56 yeah :) 2011-03-27T04:00:31 sigh: did you know I already had vision offsets precalculated? 2011-03-27T04:01:21 McLeopold: oh yeah... I had removed them a while back because they weren't being used anywhere 2011-03-27T04:01:42 anyway, I'm doing a more sophisticated pre-calc now, and only for the radius required 2011-03-27T04:01:42 we've come full circle now :) 2011-03-27T04:03:32 *** silenthunter has quit IRC () 2011-03-27T04:03:37 *** silenthunter has joined #aichallenge 2011-03-27T04:06:53 *** McLeopold has left #aichallenge 2011-03-27T04:07:07 *** Stocha has quit IRC (Quit: Page closed) 2011-03-27T04:08:44 aichallenge: sigh epsilon * rba2a305 / ants/ants.py : Faster get_vision (vision_by_ants_faster from util/vision_compare.py) - http://bit.ly/dUjI0U 2011-03-27T04:08:59 full circle in 2 dimensions but a spiral if you put speed on the third axis ;) 2011-03-27T04:09:48 ok, get_vision has been updated 2011-03-27T04:10:05 I'm happy that the fastest version is not too obscure 2011-03-27T04:10:13 that is nice 2011-03-27T04:18:50 *** closedbracket has quit IRC () 2011-03-27T04:19:07 *** closedbracket has joined #aichallenge 2011-03-27T04:32:13 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-27T04:34:29 *** fmeyer has quit IRC (Ping timeout: 240 seconds) 2011-03-27T04:42:01 *** fmeyer has joined #aichallenge 2011-03-27T04:45:53 *** Frontier has quit IRC (Read error: Connection reset by peer) 2011-03-27T04:46:37 *** Frontier has joined #aichallenge 2011-03-27T04:50:13 *** kaemo has quit IRC (Ping timeout: 240 seconds) 2011-03-27T05:06:43 *** closedbracket has joined #aichallenge 2011-03-27T05:21:43 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-27T06:00:14 *** boegel has joined #aichallenge 2011-03-27T06:07:32 *** phirenz has joined #aichallenge 2011-03-27T06:21:04 *** FireFly has joined #aichallenge 2011-03-27T06:27:30 *** mceier has joined #aichallenge 2011-03-27T06:31:46 *** kaemo has joined #aichallenge 2011-03-27T07:40:14 *** UncleVasya has joined #aichallenge 2011-03-27T07:58:31 *** UncleVasya has quit IRC () 2011-03-27T08:07:07 website is back up 2011-03-27T08:29:19 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-27T08:52:13 *** smippy has quit IRC (Remote host closed the connection) 2011-03-27T08:52:36 *** smellyhippy has joined #aichallenge 2011-03-27T08:52:37 *** smellyhippy has joined #aichallenge 2011-03-27T08:55:45 *** boegel has quit IRC (Quit: Leaving) 2011-03-27T09:02:49 *** sigh has quit IRC (Ping timeout: 264 seconds) 2011-03-27T09:03:01 *** sigh has joined #aichallenge 2011-03-27T09:23:58 *** sigh has quit IRC (Remote host closed the connection) 2011-03-27T09:30:50 *** kaemo has quit IRC (Ping timeout: 240 seconds) 2011-03-27T10:07:30 *** needsch has joined #aichallenge 2011-03-27T10:09:19 *** esahione has joined #aichallenge 2011-03-27T10:23:00 *** esahione has quit IRC (Quit: leaving) 2011-03-27T10:48:37 *** phirenz has quit IRC (Ping timeout: 246 seconds) 2011-03-27T10:49:56 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Read error: Connection reset by peer) 2011-03-27T10:53:49 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-27T11:13:15 *** amstan_ has quit IRC (Read error: Connection reset by peer) 2011-03-27T11:13:23 *** amstan_ has joined #aichallenge 2011-03-27T11:13:23 *** ChanServ sets mode: +o amstan_ 2011-03-27T11:17:26 *** p4p4p5 has joined #aichallenge 2011-03-27T11:25:48 *** mceier has quit IRC (Quit: leaving) 2011-03-27T11:36:36 *** amstan has joined #aichallenge 2011-03-27T11:36:36 *** ChanServ sets mode: +o amstan 2011-03-27T11:52:36 *** delt0r___ has joined #aichallenge 2011-03-27T11:54:38 *** delt0r_ has quit IRC (Ping timeout: 276 seconds) 2011-03-27T12:11:46 *** closedbracket has joined #aichallenge 2011-03-27T12:13:13 Here is a precompiled standalone visualizer if someone wants to test it: http://marco-leise.homedns.org/antgui/visualizer_ants.jar 2011-03-27T12:14:08 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at com.aicontest.visualizer.Main.main(Main.java:19) 2011-03-27T12:14:10 It takes a .replay file as the only command-line argument 2011-03-27T12:14:15 oh, that's my probelm 2011-03-27T12:14:27 I didn't catch errors yet 2011-03-27T12:14:58 where can i get a sample replay? 2011-03-27T12:15:09 play a game ^^ 2011-03-27T12:15:14 no wait a moment... 2011-03-27T12:15:45 try to give this link as the command-line argument: http://marco-leise.homedns.org/antgui/work/games/0/2.replay 2011-03-27T12:16:00 let's see if it can download stuff 2011-03-27T12:21:28 *** UncleVasya has joined #aichallenge 2011-03-27T12:28:02 *** Apophis_ is now known as Apophis 2011-03-27T12:28:41 *** |UncleVasya| <|UncleVasya|!kvirc@178-133-152-11.dialup.umc.net.ua> has joined #aichallenge 2011-03-27T12:30:05 *** UncleVasya has quit IRC (Ping timeout: 260 seconds) 2011-03-27T12:34:46 Frontier: it does well, good job 2011-03-27T12:45:15 *** FireFly has quit IRC (Read error: Connection reset by peer) 2011-03-27T12:47:55 *** FireFly has joined #aichallenge 2011-03-27T13:03:46 *** McLeopold has joined #aichallenge 2011-03-27T13:04:30 janzert: has anyone discovered why the painting algo was flawed? 2011-03-27T13:14:57 *** p4p4p5 has quit IRC (Read error: Connection timed out) 2011-03-27T13:16:14 *** p4p4p5 has joined #aichallenge 2011-03-27T13:17:13 *** choas has joined #aichallenge 2011-03-27T13:42:49 *** boegel has joined #aichallenge 2011-03-27T13:45:23 *** needsch has quit IRC (Quit: Leaving.) 2011-03-27T13:49:57 *** needsch has joined #aichallenge 2011-03-27T14:06:15 *** p4p4p5 has quit IRC (Read error: Connection timed out) 2011-03-27T14:07:12 *** p4p4p5 has joined #aichallenge 2011-03-27T14:15:42 *** amstan has quit IRC (Ping timeout: 276 seconds) 2011-03-27T14:25:56 *** McLeopold has left #aichallenge 2011-03-27T14:29:43 *** Accoun has quit IRC () 2011-03-27T14:41:36 *** amstan has joined #aichallenge 2011-03-27T14:41:37 *** ChanServ sets mode: +o amstan 2011-03-27T14:42:16 *** Accoun has joined #aichallenge 2011-03-27T14:59:06 *** p4p4p5 has quit IRC (Read error: Connection timed out) 2011-03-27T15:00:21 *** p4p4p5 has joined #aichallenge 2011-03-27T15:11:16 *** mceier has joined #aichallenge 2011-03-27T15:20:07 McLeopold: sigh gave an example 2011-03-27T15:22:27 *** jmcarthur has quit IRC (Quit: WeeChat 0.3.2) 2011-03-27T15:22:33 *** jmcarthur has joined #aichallenge 2011-03-27T15:31:26 *** Chris_0076 has joined #aichallenge 2011-03-27T15:32:55 *** Chris_0076 has quit IRC (Client Quit) 2011-03-27T15:33:16 *** Chris_0076 has joined #aichallenge 2011-03-27T15:40:51 *** andy_ has joined #aichallenge 2011-03-27T15:57:05 *** p4p4p5 has quit IRC (Read error: Connection timed out) 2011-03-27T15:58:19 *** p4p4p5 has joined #aichallenge 2011-03-27T16:04:27 *** silenthunter has quit IRC () 2011-03-27T16:04:32 *** silenthunter has joined #aichallenge 2011-03-27T16:16:08 *** boegel has quit IRC (Quit: Leaving) 2011-03-27T16:18:42 *** Accoun has quit IRC (Ping timeout: 246 seconds) 2011-03-27T16:18:59 *** Stocha has joined #aichallenge 2011-03-27T16:19:02 *** Accoun has joined #aichallenge 2011-03-27T16:24:20 Frontier : i should start producing some game in the text format then. Now that you have this standalone viewer. 2011-03-27T16:24:55 I'm not a big fan of text parsing/producing. It 'll be hard to find time for that. 2011-03-27T16:25:17 *** Stocha has quit IRC (Quit: Page closed) 2011-03-27T16:26:01 *** p4p4p5 has quit IRC (Read error: Connection timed out) 2011-03-27T16:27:15 *** p4p4p5 has joined #aichallenge 2011-03-27T16:39:34 *** Chris_0076 has quit IRC (Quit: Leaving) 2011-03-27T16:43:28 *** Chris_0076 has joined #aichallenge 2011-03-27T16:47:18 *** andy_ has quit IRC (Quit: Page closed) 2011-03-27T16:49:30 *** p4p4p5 has quit IRC (Quit: ChatZilla 0.9.84 [SeaMonkey 2.0a3/20090223135443]) 2011-03-27T16:49:50 *** Chris_0076 has quit IRC (Ping timeout: 248 seconds) 2011-03-27T16:51:55 *** sigh has joined #aichallenge 2011-03-27T17:02:16 *** Chris_0076 has joined #aichallenge 2011-03-27T17:02:42 *** sigh has quit IRC (Remote host closed the connection) 2011-03-27T17:13:34 *** ltriant has joined #aichallenge 2011-03-27T17:14:17 *** McLeopold has joined #aichallenge 2011-03-27T17:21:48 *** Chris_0076 has quit IRC (Ping timeout: 260 seconds) 2011-03-27T17:27:38 *** thagomizr has joined #aichallenge 2011-03-27T17:36:36 *** Whaeth has joined #aichallenge 2011-03-27T17:46:00 *** thagomizr has quit IRC (Quit: thagomizr) 2011-03-27T17:59:58 *** sigh has joined #aichallenge 2011-03-27T18:12:13 *** FireFly has quit IRC (Quit: swatted to death) 2011-03-27T18:26:56 *** choas has quit IRC (Quit: leaving) 2011-03-27T18:34:16 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-27T19:06:25 *** Chris_0076 has joined #aichallenge 2011-03-27T19:06:48 *** phirenz has joined #aichallenge 2011-03-27T19:52:42 *** delt0r_ has joined #aichallenge 2011-03-27T19:54:24 *** delt0r___ has quit IRC (Ping timeout: 248 seconds) 2011-03-27T20:28:51 amstan: In the long run, I guess there will be a Makefile in the root directory that descends into the subdirectories and assembles the website. I'd like to make a start and use DESTDIR as the output folder, defaulting to 'output' in the repository root. Any ideas? 2011-03-27T20:34:30 ya 2011-03-27T20:34:49 ya, i have ideas or ya, go ahead? :) 2011-03-27T20:36:26 are there other parts despite the website that need an output directory? because in that case I would put my stuff in /output/website/visualizer/ 2011-03-27T20:38:19 *** Mathnerd314 has quit IRC (Ping timeout: 264 seconds) 2011-03-27T20:47:47 wasn't the idea that all ants specific stuff would be under ants? 2011-03-27T20:47:50 * sigh is guessing 2011-03-27T20:47:58 sigh: yeah, still is 2011-03-27T20:53:57 *** Whaeth has quit IRC (Quit: Leaving) 2011-03-27T20:54:44 I want to be on the safe side and see that when I type make/ant, it actually produces stuff that just works. I am not a fan of release days where the parts don't fit together, like in the infameous role playing game Gothic 3. 2011-03-27T20:59:43 *** closedbracket has joined #aichallenge 2011-03-27T21:05:25 *** Mathnerd314 has joined #aichallenge 2011-03-27T21:08:44 *** dlila has joined #aichallenge 2011-03-27T21:30:16 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-03-27T21:34:26 *** mceier has quit IRC (Quit: leaving) 2011-03-27T21:34:48 *** Mathnerd314 has quit IRC (Ping timeout: 246 seconds) 2011-03-27T21:39:46 *** dlila has quit IRC (Quit: Leaving) 2011-03-27T21:41:09 *** chris__0076 has joined #aichallenge 2011-03-27T21:44:20 *** Chris_0076 has quit IRC (Ping timeout: 260 seconds) 2011-03-27T21:47:48 *** chris__0076 has quit IRC (Read error: Operation timed out) 2011-03-27T21:53:20 *** amstan has quit IRC (Remote host closed the connection) 2011-03-27T22:00:35 *** Mathnerd314 has joined #aichallenge 2011-03-27T22:03:52 *** Chris_0076 has joined #aichallenge 2011-03-27T23:10:45 *** Chris_0076 has quit IRC (Quit: Leaving) 2011-03-27T23:31:08 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Quit: Lost terminal) 2011-03-27T23:33:45 *** needsch has quit IRC (Quit: Leaving.) 2011-03-27T23:37:02 *** McLeopold has quit IRC (Quit: Leaving.)