2011-03-25T00:00:08 moongrass: yeah, mostly... but I found the docs a bit inconsistent for Python when I was playing around with it 2011-03-25T00:00:24 I haven't had a lot of experience with the library, just messing around with simple stuff 2011-03-25T00:00:40 oh well, i'll have the source at least 2011-03-25T00:03:34 btw, (and this gonna be a long shot) but would you consider it at all plausible to use features in cv as properties -building blocks- for creating a language/grammar that could be a superset of natural languages? 2011-03-25T00:04:10 they are completely different things? 2011-03-25T00:04:47 well, take simple nouns, verbs and adjectives in natural languages 2011-03-25T00:04:53 like? 2011-03-25T00:05:13 "pensil", "walk", "blue" 2011-03-25T00:05:31 blue is "easy" to detect 2011-03-25T00:05:35 they are inherently based on spatial phenomena, no? 2011-03-25T00:05:48 or physical phenomena 2011-03-25T00:06:00 pencil is hard, but you could make a program to do it using training, and opencv will help with that 2011-03-25T00:06:12 right 2011-03-25T00:06:19 walk it much harder... I don't know if that is possible currently 2011-03-25T00:06:47 it would require "video", i guess 2011-03-25T00:06:55 yeah 2011-03-25T00:07:17 anyway, if you could build a basic vocab in this way and... 2011-03-25T00:08:03 with pencil, the program will essentially be saying "the features in this image look the same as those in the pencils I've seen in the training set" 2011-03-25T00:08:03 use them as dictionary entry info, they might serve as building blocks to describe more complex vocab to? 2011-03-25T00:08:42 maybe, but the "definition" of pencil in the program would be pretty opaque 2011-03-25T00:08:46 but to look "the same", they have some data in common, no? 2011-03-25T00:08:59 some pattern, if you will 2011-03-25T00:09:25 you wont be far wrong if you think of it as saying that the relationship between edges and corners are similar 2011-03-25T00:09:41 right 2011-03-25T00:10:28 anyway, i have plenty of experimenting to do :) 2011-03-25T00:10:29 *** McLeopold has joined #aichallenge 2011-03-25T00:10:54 moongrass: for an example of more sophisticated features look at the pictures here: http://en.wikipedia.org/wiki/Scale-invariant_feature_transform#Keypoint_localization 2011-03-25T00:11:17 this algorithm uses specially selected key points in the picture as features 2011-03-25T00:12:13 my point is that "features" are always very simple things, just chosen well 2011-03-25T00:12:28 yeah, that could be an interesting angle too 2011-03-25T00:12:40 simple is good :) 2011-03-25T00:12:44 :) 2011-03-25T00:15:06 moongrass: btw, even then it is still a glorified corner detector... which is why I said you should look at edge and corner detectors first 2011-03-25T00:15:31 simple ones are surprisingly easy to understand and quick to code up :) 2011-03-25T00:16:09 music to my ears 2011-03-25T00:16:17 thanks for all the pointers 2011-03-25T00:16:22 no worries 2011-03-25T00:23:19 *** antimatroid has quit IRC (Ping timeout: 264 seconds) 2011-03-25T00:26:09 *** McLeopold has quit IRC (Quit: Leaving.) 2011-03-25T00:28:49 *** davidjliu has quit IRC (Quit: Page closed) 2011-03-25T00:37:20 *** antimatroid has joined #aichallenge 2011-03-25T00:41:30 *** antimatroid has quit IRC (Ping timeout: 240 seconds) 2011-03-25T01:02:29 *** antimatroid has joined #aichallenge 2011-03-25T01:08:28 *** znutar has joined #aichallenge 2011-03-25T01:12:05 *** phirenz has quit IRC (Ping timeout: 250 seconds) 2011-03-25T01:38:32 *** boegel has joined #aichallenge 2011-03-25T02:21:08 *** delt0r_ has joined #aichallenge 2011-03-25T02:22:55 *** delt0r___ has quit IRC (Ping timeout: 260 seconds) 2011-03-25T02:28:42 *** sigh has left #aichallenge ("Leaving") 2011-03-25T02:29:50 *** ltriant has quit IRC (Quit: Get MacIrssi - http://www.sysctl.co.uk/projects/macirssi/) 2011-03-25T02:32:49 *** boegel has quit IRC (Quit: This computer has gone to sleep) 2011-03-25T02:45:30 *** closedbracket has joined #aichallenge 2011-03-25T02:45:37 *** closedbracket has joined #aichallenge 2011-03-25T03:12:00 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-25T03:28:21 *** num1_ is now known as num1 2011-03-25T03:31:01 *** boegel has joined #aichallenge 2011-03-25T03:31:33 *** jmcarthur has quit IRC (Ping timeout: 276 seconds) 2011-03-25T03:35:56 *** jmcarthur has joined #aichallenge 2011-03-25T03:38:46 *** boegel has joined #aichallenge 2011-03-25T03:45:02 *** Accoun has quit IRC (Ping timeout: 248 seconds) 2011-03-25T03:46:01 *** iFire has quit IRC (Read error: Connection reset by peer) 2011-03-25T03:47:21 *** boegel has quit IRC (Ping timeout: 252 seconds) 2011-03-25T03:47:43 *** iFire has joined #aichallenge 2011-03-25T03:59:39 *** silenthunter has quit IRC () 2011-03-25T03:59:45 *** silenthunter has joined #aichallenge 2011-03-25T04:05:20 *** sigh has joined #aichallenge 2011-03-25T04:07:18 *** Anders____ has quit IRC (Ping timeout: 252 seconds) 2011-03-25T04:09:58 *** Eruonen has joined #aichallenge 2011-03-25T04:20:00 that was harder than it should have been :\ 2011-03-25T04:34:00 *** aerique has joined #aichallenge 2011-03-25T05:36:47 *** Stocha has joined #aichallenge 2011-03-25T05:44:59 opencv then. Interesting. I wish i had time to dig through it :p 2011-03-25T05:46:48 i'm too busy trying to understand ant game theory at the moment i guess. I don't know if i'm really getting anywhere. But still is fun. I'm frustrated at the gathering food methodology at the moment. To do it with a guaranted optimality in every cases using whatever information is available seems not so trivial now. 2011-03-25T05:47:58 I guess i have to build at least something satisfying before getting involved in trying to sorting out the fighting resolution methods. 2011-03-25T05:54:48 *** kaemo has joined #aichallenge 2011-03-25T05:57:45 Stocha: you might be able to treat it a bit like a knapsack problem? 2011-03-25T05:57:54 at least people seemed to with planet wars 2011-03-25T05:58:02 that's for choosing which ants to send to which food 2011-03-25T05:58:49 looks more like Travelling salesman problem to me at the momeent 2011-03-25T05:59:04 although i doubt that the optimal solution will really be usefull in practice. 2011-03-25T05:59:34 Still it's probably usefull to understand a bit what's going on in there :p 2011-03-25T05:59:35 hmm, my thought is more like this situation: b....*...a..* 2011-03-25T05:59:45 clearly you want to go for the middle * first if you are a 2011-03-25T05:59:51 A very interesting problem though is traffic-jam control 2011-03-25T05:59:55 that one is nasty i think also 2011-03-25T06:00:14 it's not as trivial as i made out 2011-03-25T06:00:23 but you have to admit it's quite easy to do fairly well? 2011-03-25T06:00:35 then you can add both. Food to get before opponent through one (ore severall) tiny corridor. 2011-03-25T06:00:58 With hard distance sorting. 2011-03-25T06:01:22 another option is to try and make a tree with "stringed" moves 2011-03-25T06:01:58 but i suspect people will want to squeeze anything they can out of a tree on battles 2011-03-25T06:02:01 I don't know. Think we have something as hard as salesman if we want optimality. But then what will we do with optimality, that's the question. In most cases the simplest solution is maybe enough. That's the question. 2011-03-25T06:02:19 nah, i'm after neat problems, not what works :P 2011-03-25T06:02:45 It will depends on the fighting rules, and how hard they are to solve right. Or reasonably right. I think a good food gathering will give a huge advantage. 2011-03-25T06:03:17 i agree with that, and that's the way it should be 2011-03-25T06:03:18 Arguably it will depends on map generation also 2011-03-25T06:03:38 i'm pretty tempted to carve maps with at least a 2x2 block 2011-03-25T06:03:43 with the map i'm using currently, having a good food/ territory policy is very decisive. 2011-03-25T06:04:20 I think traffic jam will be one really interesting problem. Although once everyone does the right things, it might have too strong an influence on the outcome. 2011-03-25T06:04:39 traffic jams aren't that bad? 2011-03-25T06:04:46 you can collide with enemies remember 2011-03-25T06:04:51 there is also the trouble of blocking. Wich also is an interesting problem to do right. Both are in interaction with each other anyway. 2011-03-25T06:04:53 so you guys can just charge 2011-03-25T06:05:34 Think we have to tests some quite good bots with very free looking maps first. And adjust some hard coded rules after that. We'll have to have the combat setting settled before sorting through maps also. 2011-03-25T06:06:02 nah, maps can be changed in the first part of the contest 2011-03-25T06:06:07 Trafic jams are bad, when you are trying to get through a hole from your main food source to the opponents. 2011-03-25T06:06:43 Or just when you want to do some massive exploration trhough a loop hole. 2011-03-25T06:07:20 that will be an interesting problem 2011-03-25T06:07:23 *** kaemo has quit IRC (Ping timeout: 255 seconds) 2011-03-25T06:07:29 Let's say you have a continent with too outgoing corridors east and north 2011-03-25T06:07:30 path finding when there is a region you don't want to go through 2011-03-25T06:07:45 and are having a ration of + 3 ants a turn 2011-03-25T06:08:17 then you can't hope to put in +3 ant at the north gate every turn. Unless you happen to be loosing ground. 2011-03-25T06:08:53 the simple thing of realising where are the gates is not that evident to me yet :p 2011-03-25T06:09:17 I have developped some concept around it. I have yet to test them in concrete settings. 2011-03-25T06:09:46 I think the "ant dies in same square" is enough for studying thoses problems. because my bot have it so wrong at the moment :p 2011-03-25T06:10:12 it's really too early to study early/ middle game fighting strategies for me yet. 2011-03-25T06:10:42 Then i have that hard choice to make between simple efficient algorithm and slower more powerfull solvers. 2011-03-25T06:11:36 I probably should go with some middle ground. To make a bot that have it a little bit less wrong, before getting into too much efficiency being optimal. 2011-03-25T06:12:15 Handling the ennemies is very important also You can't allow a single ennemy ant to harvest your food sources in place of your own ants :p 2011-03-25T06:12:34 So i guess i should test heavilly the ant die on same square at first; 2011-03-25T06:13:39 I hope i'll have some working prototype of a more credible food gatherer in a few days. We'll see :p 2011-03-25T06:14:56 In the bot games i have seens, there is always a sense of territory owner ship 2011-03-25T06:15:23 sometimes one bot just kinda own everything. But most of the time they have clear boundaries. At least clear to my eyes. 2011-03-25T06:15:47 Often they are naturally determined by the maps loopholes wich act as natural frontiers. 2011-03-25T06:16:15 Even the almost pure random bots exhibited that. (although they really took their time compared to more advanced bots) 2011-03-25T06:16:40 If the ground was fully open (no water) it would really be different. 2011-03-25T06:17:19 i use 40% ground i think as of now. It gives plenty of thoses gateways things. Though most of the time there is more that one gate from one region to another. 2011-03-25T06:19:08 The very early exploration is very decisive also. And it's probably tricky to get full right. Maybe we'll go with a special behavior for beginnings games; (provided that the map shares some common factors with the one i'm doing test on now) 2011-03-25T06:19:59 antimatroid : you can collide with the ennemy, but hardly can collide with yourself. 2011-03-25T07:00:54 *** Stocha has quit IRC (Quit: Page closed) 2011-03-25T07:09:31 *** needsch has joined #aichallenge 2011-03-25T07:14:29 *** iFire has quit IRC (Read error: Connection reset by peer) 2011-03-25T07:16:11 *** iFire has joined #aichallenge 2011-03-25T07:38:52 *** mceier has joined #aichallenge 2011-03-25T07:55:07 *** Stocha has joined #aichallenge 2011-03-25T07:55:34 *** Stocha has quit IRC (Client Quit) 2011-03-25T07:55:39 *** Accoun has joined #aichallenge 2011-03-25T08:05:21 *** boegel has joined #aichallenge 2011-03-25T08:12:18 *** p4p4p4 has joined #aichallenge 2011-03-25T08:17:47 *** robbs has joined #aichallenge 2011-03-25T08:39:38 *** kaemo has joined #aichallenge 2011-03-25T08:43:05 *** Stocha has joined #aichallenge 2011-03-25T08:45:07 On intersting little puzzle. The foodwall problem. 2011-03-25T08:45:21 Now let's say you have a corridor, and it is blocked by food. 2011-03-25T08:45:38 How should you make the planning of the ants through the corridor ? :p 2011-03-25T08:46:21 I guess you have to let the food be an ant. And then it can move to let some room for the later ants. 2011-03-25T08:46:28 that's a pain :p 2011-03-25T08:46:45 *** andy_ has quit IRC (Ping timeout: 252 seconds) 2011-03-25T09:03:14 aichallenge: sigh epsilon * r190eb25 / (ants/play_one_game.cmd ants/play_one_game.sh): Add verbose options to play_one_game.* files since it is now off by default (+6 more commits...) - http://bit.ly/ft5s7y 2011-03-25T09:07:49 *** Stocha has quit IRC (Quit: Page closed) 2011-03-25T09:33:27 *** dlila has joined #aichallenge 2011-03-25T09:42:32 *** sigh has quit IRC (Remote host closed the connection) 2011-03-25T10:05:58 *** closedbracket has joined #aichallenge 2011-03-25T10:16:12 *** amstan has quit IRC (Read error: Connection reset by peer) 2011-03-25T10:16:18 *** amstan has joined #aichallenge 2011-03-25T10:16:18 *** ChanServ sets mode: +o amstan 2011-03-25T10:18:08 *** Kingpin13 has joined #aichallenge 2011-03-25T10:21:44 *** delt0r___ has joined #aichallenge 2011-03-25T10:23:22 *** delt0r_ has quit IRC (Ping timeout: 252 seconds) 2011-03-25T10:23:47 *** needsch1 has joined #aichallenge 2011-03-25T10:24:57 *** needsch has quit IRC (Ping timeout: 252 seconds) 2011-03-25T10:30:51 *** SubmittedDenied has joined #aichallenge 2011-03-25T10:31:12 Hey all 2011-03-25T10:36:09 *** SubmittedDenied has quit IRC (Quit: Client Excited) 2011-03-25T10:55:00 *** robbs has left #aichallenge 2011-03-25T11:30:34 *** boegel has quit IRC (Read error: Operation timed out) 2011-03-25T11:32:28 *** Stocha has joined #aichallenge 2011-03-25T11:33:05 see ? here is a guy complaining tha the game is too (arbitrarily) complex :p I'm not the sole complainer any more :p 2011-03-25T11:39:42 *** UncleVasya has joined #aichallenge 2011-03-25T11:45:32 *** |UncleVasya| <|UncleVasya|!kvirc@178-133-158-150.dialup.umc.net.ua> has joined #aichallenge 2011-03-25T11:48:14 *** UncleVasya has quit IRC (Ping timeout: 260 seconds) 2011-03-25T11:48:58 *** javagamer has quit IRC (Ping timeout: 252 seconds) 2011-03-25T11:49:53 *** aerique has quit IRC (Quit: ...) 2011-03-25T12:09:06 *** Eruonen has quit IRC () 2011-03-25T12:24:29 *** Stocha has quit IRC (Quit: Page closed) 2011-03-25T12:33:10 *** needsch1 has quit IRC (Ping timeout: 260 seconds) 2011-03-25T12:35:06 *** needsch has joined #aichallenge 2011-03-25T12:47:22 *** McLeopold has joined #aichallenge 2011-03-25T12:47:33 antimatroid: ping 2011-03-25T12:49:10 @later tell antimatroid http://ai-contest.com/forum/viewtopic.php?f=21&t=1312&p=8890#p8890 my thoughts concerning the usefulness of asymmetric maps 2011-03-25T12:49:10 McLeopold: I think that worked... 2011-03-25T12:53:44 *** FireFly has joined #aichallenge 2011-03-25T12:55:38 *** closedbracket has joined #aichallenge 2011-03-25T13:03:34 *** Eruonen has joined #aichallenge 2011-03-25T13:03:59 McLeopold: was that meant to be in favour or against asymmetric maps? 2011-03-25T13:15:01 I think it was against very unbalanced or easily solvable maps, which certainly some subset of unsymmetric maps fall into :) 2011-03-25T13:19:53 i'm still not really sure how to make "fair" asymmetric maps 2011-03-25T13:20:16 i've got one halfway done that tries to place 1 water square in each players "base" set at a time 2011-03-25T13:20:45 right now I agree, until we have games going on so we can figure out what features make a map bad we can't 2011-03-25T13:21:08 but to do random walks is a bit harder, i can start x random walks in each players starting positions, but i can't easilly contrain them to those squares 2011-03-25T13:21:15 easily constrain* 2011-03-25T13:24:05 *** boegel has joined #aichallenge 2011-03-25T13:25:28 antimatroid: what do you mean? 2011-03-25T13:25:43 about what? 2011-03-25T13:25:56 antimatroid: oh.. nvm, missed the a 2011-03-25T13:26:07 you're right.. it's kinda hard to make asymmetric maps 2011-03-25T13:26:18 amstan: i'm still going to make them 2011-03-25T13:26:29 but i really don't think asymmetric maps will work well in an ai contest 2011-03-25T13:26:35 there's already enough noise in the rankings 2011-03-25T13:27:35 yes, pretty much what mcleopold said 2011-03-25T13:27:38 i agree 100% with him 2011-03-25T13:28:19 can normal commiters label the issues? 2011-03-25T13:29:22 antimatroid: can you do me a favour? 2011-03-25T13:30:34 shoot 2011-03-25T13:31:02 antimatroid: try labeling issues https://github.com/aichallenge/aichallenge/issues 2011-03-25T13:31:15 i'm not ceratain that people can edit them 2011-03-25T13:31:23 people that are not admins for the org 2011-03-25T13:31:28 so far it's only been me doing them 2011-03-25T13:32:58 i think i can 2011-03-25T13:33:03 do you want me to make one to test? 2011-03-25T13:33:16 nah, just try editing an existing issue 2011-03-25T13:33:31 (its labels) 2011-03-25T13:33:39 it's* 2011-03-25T13:34:54 yeah i can 2011-03-25T13:35:01 ok 2011-03-25T13:35:01 i added visualiser to the site one 2011-03-25T13:35:30 .. and then deleted it 2011-03-25T13:35:39 ok 2011-03-25T13:35:41 cool 2011-03-25T13:36:51 antimatroid: is there a fast function to determine if a square is visible? 2011-03-25T13:39:01 And for the record, I'm for mostly balanced asymmetric maps, if we can figure out how. Just against naive methods of attempting to make every map balanced. 2011-03-25T13:39:39 as long as the draw margin is low enough to gain some information from the game 2011-03-25T13:40:59 I think a good starting spot is ensure everyone has an equal distance map to other players, and everyone has equal territory to start 2011-03-25T13:45:37 antimatroid: I'm thinking nearest neighbor, then check the distance, with some short circuits 2011-03-25T13:46:35 McLeopold: the best method I know is my painting one 2011-03-25T13:46:46 where you paint from all ants simultaneously 2011-03-25T13:46:50 but I'm trying to go *faster* :) 2011-03-25T13:47:04 I don't need the whole vision, just if 1 square is visible 2011-03-25T13:47:19 check distances to ants? 2011-03-25T13:47:19 I don't know how to make a kdtree on a torus :( 2011-03-25T13:47:53 brb, my internet is failing 2011-03-25T13:48:00 I guess the painting algo would do best, if I do multiple queries 2011-03-25T13:53:02 *** antimatroid has quit IRC (Ping timeout: 276 seconds) 2011-03-25T13:54:39 *** moongrass has quit IRC (Ping timeout: 240 seconds) 2011-03-25T13:54:46 *** moongrass has joined #aichallenge 2011-03-25T14:06:28 *** antimatroid has joined #aichallenge 2011-03-25T14:10:04 okay, i have plain noise asymmetric maps 2011-03-25T14:10:37 antimatroid: I just thought of how to build a kdtree on a torus 2011-03-25T14:11:44 http://pastebin.com/2U1wXxJy 2011-03-25T14:11:50 there's some noisy asymmetric maps 2011-03-25T14:11:54 McLeopold: :) 2011-03-25T14:12:12 and a nearest neighbor query would help for other stuff like efficient food gathering 2011-03-25T14:12:42 is the map checking for islands? 2011-03-25T14:13:10 i don't think so, you end up with maps like that from noise 2011-03-25T14:13:20 it's better once you do random walks 2011-03-25T14:13:45 can you add funk? 2011-03-25T14:14:06 funk? 2011-03-25T14:14:10 i want to do random walk ones 2011-03-25T14:14:14 noise was just easier to do first 2011-03-25T14:14:38 i don't know how do do walks as fairly though 2011-03-25T14:14:56 i might need to work out how to wrap a walk to a basis 2011-03-25T14:16:16 http://en.wikipedia.org/wiki/Bring_in_'da_Noise,_Bring_in_'da_Funk 2011-03-25T14:16:42 antimatroid: can you record a walk and repeat it? 2011-03-25T14:17:02 one could pretty easily but why? 2011-03-25T14:17:11 i just do them simultaneously for symmetric 2011-03-25T14:17:15 to make a random walk map symmetric 2011-03-25T14:17:21 oh, same thing 2011-03-25T14:17:53 i have like 30*n walks for the symmetric map gen on the site 2011-03-25T14:18:04 you can set the number of walks to run simultaneously in the parameters at the top 2011-03-25T14:18:24 i've tried playing around with the distribution random uses, but haven't really noticed any difference 2011-03-25T14:19:18 those maps above would be quite cool to play with those 2011-03-25T14:19:31 you have locks of 1 width bits, bot not that could really block anything 2011-03-25T14:19:43 you could super impose the noise symmetrically? 2011-03-25T14:19:43 so good battle would win i think, but not cause stalemates 2011-03-25T14:19:53 what do you mean? 2011-03-25T14:20:02 for symmetric noise maps 2011-03-25T14:20:05 noise can just be done symmetrically simultaneously :P 2011-03-25T14:20:18 I guess I'm no help... 2011-03-25T14:20:40 with the tiling the way it is, i don't think you can check "accessibility" by traversing the base set 2011-03-25T14:20:47 because the wrapping is different 2011-03-25T14:21:07 (your ideas are always welcome, i'm just pointing out how i've done things :)) 2011-03-25T14:21:12 are you doing walks with 3x3 sized ants? 2011-03-25T14:21:22 no, all walks are just a single cell atm 2011-03-25T14:22:17 if you actually make a Block object, you can make movement faster by making the "move block" function a bit smarter (copy old locations that blocks are moving into) 2011-03-25T14:23:08 i would go with a 2x2 block at first 2011-03-25T14:23:35 you need a very zoned off corridor to block a 2 width passsage, and if you manage that in one game, meh 2011-03-25T14:26:45 aichallenge: McLeopold epsilon * rf74798a / (2 files): cleaned up and commented python starter bot - http://bit.ly/ewCiYn 2011-03-25T14:31:19 http://pastebin.com/PKqusi0P 2011-03-25T14:31:26 some of them don't look very fair 2011-03-25T14:32:04 oh, it might help if i actually start walks symmetrically in the basis sets 2011-03-25T14:34:16 *** kaemo has quit IRC (Ping timeout: 240 seconds) 2011-03-25T14:35:01 we need an ants map pastebin 2011-03-25T14:35:15 that didn't make them much better 2011-03-25T14:35:56 and an ants game pastebin 2011-03-25T14:35:58 hmm, i could perturb the starting walks asymmetrically? 2011-03-25T14:36:02 then walk everything symmetrically 2011-03-25T14:36:14 I'm going to perturb lunch now... 2011-03-25T14:42:10 *** Accoun has quit IRC () 2011-03-25T14:43:28 actually, i think these asymmetric maps are semi decent now that i've made it start more walks 2011-03-25T14:44:02 generate it alongside the map analyzer and you can throw out maps where there's a "significant" difference in the number of squares players have "first access" to 2011-03-25T14:45:30 http://pastebin.com/kaD94ihP 2011-03-25T14:45:35 amstan: ^^ what do you think of those? 2011-03-25T14:46:04 antimatroid: they seem more fair 2011-03-25T14:46:33 yep, then once we start to work out what makes maps extremely unfair, the map analyzer can be made to try and reject them 2011-03-25T14:46:54 antimatroid: maybe assymetric maps with 50% fair +-5% will be ok 2011-03-25T14:47:18 people are really content for this it seems like 2011-03-25T14:48:54 i don't really like it, but it does seem to be something people want so i'm willing to try 2011-03-25T14:49:33 antimatroid: is food symmetric yet? 2011-03-25T14:49:40 amstan: if you want it to be yes 2011-03-25T14:49:49 i'm quite happy with the way it's done too 2011-03-25T14:49:50 how is that implemented? 2011-03-25T14:51:26 it's a little involved... each non-water square has a counter for the number of water squares waiting to spawn, each turn it picks a square and gets the symmetrically equivalent squares and increments those counters, then goes through and spawns food at a location with a positive "tospawn" counter while decrementing it if it doesn't contain an ant or food already 2011-03-25T14:51:49 what if i have a line symmetric map? 2011-03-25T14:52:03 wont work, you'll need to use a different method 2011-03-25T14:52:11 where is this implemented? 2011-03-25T14:52:15 this method is strictly for my symmetric map gen 2011-03-25T14:52:19 in ants.py 2011-03-25T14:52:29 you should move this to the mapgen 2011-03-25T14:52:34 since it's technically related 2011-03-25T14:52:36 it's part of the engine 2011-03-25T14:52:46 yes, but food spawning is part of the mapgen 2011-03-25T14:52:50 since it depends on the type of map 2011-03-25T14:52:50 no it's not 2011-03-25T14:52:55 food spawning is the engine 2011-03-25T14:52:55 i was told to leave it separate 2011-03-25T14:53:10 it's done during the game not at map creation time 2011-03-25T14:53:16 we may need to mark the maps later with a parameter so the engine knows what spawn method to use 2011-03-25T14:53:31 in fact we should do that now 2011-03-25T14:53:35 McLeopold: ^^ 2011-03-25T14:53:49 antimatroid: you should still separate the food spawning method from the engine 2011-03-25T14:54:02 amstan: food spawning is done through the game, you can't 2011-03-25T14:54:09 antimatroid: since there's multiple methods, and it highly depends on the mapgen 2011-03-25T14:54:18 antimatroid: import antimatroidfoodspawn 2011-03-25T14:54:25 it's not my area, talk to mcleopold and sigh 2011-03-25T14:54:31 ok 2011-03-25T14:54:56 i just don't want to have another of those cases where we can't change our map gen 2011-03-25T14:55:06 janzert: i think you're about as skeptical about asymmetric maps as me, what do you think of the last link i gave? 2011-03-25T14:55:26 *** Accoun has joined #aichallenge 2011-03-25T14:55:28 amstan: the plan is to log the maps in a lot sooner, but not necessarily right away 2011-03-25T14:55:33 lock* 2011-03-25T14:55:35 antimatroid: for those asymmetric maps you should also look at the food spawn, random food spawns won't be fair either 2011-03-25T14:55:52 amstan: random food spawn with be a lot like above 2011-03-25T14:56:12 but find the "first reachable squares" for each player, then spawn a food square in each set each turn 2011-03-25T14:56:18 that isn't done yet 2011-03-25T14:56:31 yes, but in one case you get a food 1 block from a red ant and then 10 blocks from a blue ant 2011-03-25T14:56:35 won't really be fair for the blue 2011-03-25T14:56:43 no it wont, but that's the best i've got 2011-03-25T14:56:53 the other method is to further split them up on distance from the ant? 2011-03-25T14:57:04 then pick a distance and loc from that distance 2011-03-25T14:57:09 ok 2011-03-25T14:57:21 the other method being the one i just made up for you :P 2011-03-25T14:58:32 that's probably the best way to do it i think 2011-03-25T14:58:36 i'll get sigh onto implementing that 2011-03-25T15:11:34 antimatroid: I'm pretty sure at this point I can't tell by looking at an asymmetric map whether it will be fair or horribly lopsided and until I start seeing fairly decent bots playing them I don't think there's a way that I will learn 2011-03-25T15:11:59 janzert: they still look a lot more fair than any other asymmetric maps i've seen yet 2011-03-25T15:12:30 i'm working on cleaning it up now so i can generate maps and put stuff up on git, so there's both symmetric and asymmetric stuff there 2011-03-25T15:13:19 one issue with my maps is the number of players divides the number of rows and columns 2011-03-25T15:13:35 hmm, just had a thought don't know if it's any good but... 2011-03-25T15:13:35 what if you carved out an asymmetric map with a random walk, then placed the start positions to try and balance the first reachable territory of each player? 2011-03-25T15:13:44 *** delt0r_ has joined #aichallenge 2011-03-25T15:14:06 just an idea to think about 2011-03-25T15:14:24 it's been mentioned before, i don't really know how to get that finishing bit though 2011-03-25T15:14:43 i guess you just start walking the ants on the extreme? 2011-03-25T15:14:49 until you get close to equal? 2011-03-25T15:15:10 or walk the neighbors of the largest area in 2011-03-25T15:15:19 yep 2011-03-25T15:15:19 something like that anyway yea 2011-03-25T15:15:21 *** delt0r___ has quit IRC (Ping timeout: 260 seconds) 2011-03-25T15:16:02 i think it'd be best to start from these maps anyway 2011-03-25T15:16:08 because it'd be somewhat close already 2011-03-25T15:18:44 if we don't use no_players == 7 or 9, then for players 2-10 if the dimensions are 120x120 (or 240etc.) then people can't deduce information about the number of players (and narrow down row_t, col_t) from the dimensions of the map 2011-03-25T15:19:46 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-25T15:28:11 *** |UncleVasya| <|UncleVasya|!kvirc@178-133-158-150.dialup.umc.net.ua> has quit IRC (Ping timeout: 260 seconds) 2011-03-25T15:39:23 *** choas has joined #aichallenge 2011-03-25T15:45:48 aichallenge: Nick Ham epsilon * rbcb8da3 / (21 files in 2 dirs): added asymmetric maps - http://bit.ly/hY21my 2011-03-25T15:57:30 *** Stocha has joined #aichallenge 2011-03-25T16:00:15 aichallenge: McLeopold epsilon * r983031c / ants/dist/starter_bots/python/ants.py : Fixed time remaining calculation error. - http://bit.ly/fSfT2i 2011-03-25T16:00:35 *** silenthunter has quit IRC () 2011-03-25T16:00:40 *** silenthunter has joined #aichallenge 2011-03-25T16:00:57 McLeopold: there's now asymmetric and symmetric maps on there 2011-03-25T16:04:15 *** kaemo has joined #aichallenge 2011-03-25T16:09:06 weeeeee 2011-03-25T16:09:10 <_flag> I've been away for a bit, have we decided on a fighting method? 2011-03-25T16:09:35 _flag: first rule of ant wars is don't talk about battle resolution 2011-03-25T16:09:46 <_flag> McLeopold: haha 2011-03-25T16:10:03 *** EruooNenningly has joined #aichallenge 2011-03-25T16:10:12 <_flag> I thought things were going pretty smoothly for sigh's 1 hit point method with damage distribution with all enemies 2011-03-25T16:12:09 *** Eruonen has quit IRC (Ping timeout: 276 seconds) 2011-03-25T16:14:43 Lol, I compiled my JavaScript with Rhino and at one point there is a function returning false, but the caller receives true :p 2011-03-25T16:15:15 *** javagamer has joined #aichallenge 2011-03-25T16:18:32 _flag: i expect that to be the winning option 2011-03-25T16:18:36 but it's yet to be decided 2011-03-25T16:21:43 *doh* it the compiler makes the function return an Object of type Boolean. And since it is an object and not null, it is always true in an "if(obj) ..." 2011-03-25T16:21:55 *-it 2011-03-25T16:22:23 yay java 2011-03-25T16:24:24 wow 2011-03-25T16:24:34 ? 2011-03-25T16:24:43 @java 2011-03-25T16:24:44 jmcarthur: You have no gotten any error messages recently, so here's a random one just to let you know that we care. 2011-03-25T16:24:58 sounds about right for java, yes 2011-03-25T16:25:03 Well, it is the JavaScript compiler that acts stupidly. If they cannot return the raw data type and have to wrap it, the semantics still have to work as expected. 2011-03-25T16:25:14 oh it's javascript 2011-03-25T16:25:29 amazing 2011-03-25T16:26:29 Rhino from Mozilla is a JavaScript runtime they developed for Jagator, their Java browser. The browser project doesn't exist any more, but Rhino had some success none the less. 2011-03-25T16:27:47 I'll try a more reduced test with a simple "function x() { return false } if (x()) { alert('*doh*') }" 2011-03-25T16:28:49 lol @ jmcarthur and contestbot's description of java 2011-03-25T16:31:23 as I expected, a simple test case passes. 2011-03-25T16:41:23 *** iFire has quit IRC (Ping timeout: 246 seconds) 2011-03-25T16:44:11 food spawning is a perfect example of where virtual functions or functors are good :) 2011-03-25T16:45:05 It should be out of the game engine. Or at least easy to modify and plug a new one. You'll need that for testing purpose. In java you would like to put it in an independant .jar. And then you can switch the .jar with a new one at testing time :p 2011-03-25T16:46:31 @java 2011-03-25T16:46:32 Stocha: I have no idea what you mean. 2011-03-25T16:46:59 i though you were the local specialist 2011-03-25T16:47:12 *** Stocha has quit IRC (Quit: Page closed) 2011-03-25T16:54:55 i was about to ask what the heck food spawning has to do with functors, but then i realized Stocha was talking about C++'s completely arbitrary use of the word 2011-03-25T16:59:31 nah, he's a java person 2011-03-25T16:59:45 does that have the same arbitrary use? 2011-03-25T17:00:52 antimatroid: he also mentioned virtual functions 2011-03-25T17:01:00 which i don't think is a java thing 2011-03-25T17:01:11 nor have i ever heard of java having anything called functors 2011-03-25T17:02:09 sigh: if bots can see each other at the start, it looks like the perspective switch is broken 2011-03-25T17:02:30 @later tell sigh if bots can see each other at the start, it looks like the perspective switch is broken 2011-03-25T17:02:30 McLeopold: I come to serve. 2011-03-25T17:18:51 "if (new Boolean(false))" is supposed to yield true according to ECMAScript. Then again the browsers don't respect this rule and handle it like the primitive type boolean. But the browsers also always return the primitive type on a "return false". So I guess I'll file a bug report. 2011-03-25T17:20:02 Rhino should not wrap a simple return false into an Object, or if that is not possible add a flag for the interpreter to know which semantic to apply 2011-03-25T17:27:20 *** iFire has joined #aichallenge 2011-03-25T17:36:11 *** kaemo has quit IRC (Remote host closed the connection) 2011-03-25T17:40:11 *** boegel has quit IRC (Quit: Leaving) 2011-03-25T17:49:52 *** McLeopold has quit IRC (Read error: Connection reset by peer) 2011-03-25T18:03:07 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-25T18:04:01 *** sigh has joined #aichallenge 2011-03-25T18:05:44 *** amstan_ has joined #aichallenge 2011-03-25T18:05:44 *** ChanServ sets mode: +o amstan_ 2011-03-25T18:06:37 *** amstan_ has quit IRC (Remote host closed the connection) 2011-03-25T18:19:24 looks like the 'bug' is provoked by me using the functionality to wrap a JS object into a Java-object implementing an interface. While this is great to get around the extremly cryptical way to call functions in JS from Java it obviously changes return values of functions from their raw types into wrapper objects. 2011-03-25T18:19:39 *** closedbracket has joined #aichallenge 2011-03-25T18:21:46 *** delt0r___ has joined #aichallenge 2011-03-25T18:22:54 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-03-25T18:52:07 *** p4p4p4 has quit IRC (Quit: ChatZilla 0.9.84 [SeaMonkey 2.0a3/20090223135443]) 2011-03-25T19:13:21 *** choas has quit IRC (Quit: leaving) 2011-03-25T19:48:41 does anyone know what McLeopold meant when he said perspective switch was broken? 2011-03-25T19:48:51 *** delt0r_ has joined #aichallenge 2011-03-25T19:50:14 *** delt0r___ has quit IRC (Ping timeout: 250 seconds) 2011-03-25T19:51:54 @later tell McLeopold can you give me more details regarding perspective switch at the start (in what way is it broken)? 2011-03-25T19:51:54 sigh: Aye, aye, sir 2011-03-25T19:54:55 *** FireFly has quit IRC (Quit: swatted to death) 2011-03-25T20:02:07 *** Sunhay has quit IRC (Quit: leaving) 2011-03-25T20:02:25 *** Sunhay has joined #aichallenge 2011-03-25T20:08:16 so I have Rhino parse and run the replay. now I need a window to display it... 2011-03-25T20:11:15 *** Sunhay has quit IRC (Quit: leaving) 2011-03-25T20:12:04 *** Sunhay has joined #aichallenge 2011-03-25T20:12:34 the console talks about promising "47 fps @ 50% cpu". I don't know if it renders anything at all, but if this holds true it is a total success. 2011-03-25T20:14:29 (it uses only one cpu, so it is more like 25% system load) 2011-03-25T20:20:23 *** Sunhay has quit IRC (Quit: leaving) 2011-03-25T20:20:34 *** Sunhay has joined #aichallenge 2011-03-25T20:26:28 *** smippy has joined #aichallenge 2011-03-25T20:26:28 *** smippy has joined #aichallenge 2011-03-25T20:26:44 *** smellyhippy has quit IRC (Disconnected by services) 2011-03-25T20:26:48 *** smippy is now known as smellyhippy 2011-03-25T20:26:58 *** Sunhay has quit IRC (Quit: leaving) 2011-03-25T20:27:10 *** Sunhay has joined #aichallenge 2011-03-25T20:29:15 *** smellyhippy has quit IRC (Client Quit) 2011-03-25T20:31:25 *** smellyhippy has joined #aichallenge 2011-03-25T20:35:31 *** mceier has quit IRC (Quit: leaving) 2011-03-25T20:42:10 *** smellyhippy has quit IRC (Quit: Take your stinking clause off me you damn dirty predicate!) 2011-03-25T20:43:42 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-03-25T20:45:26 *** smellyhippy has joined #aichallenge 2011-03-25T20:49:52 *** closedbracket has joined #aichallenge 2011-03-25T21:00:56 aichallenge: sigh epsilon * rcc413c2 / ants/dist/starter_bots/python/ants.py : Fixed bugs which caused MyBot to crash when using ants.visible() - http://bit.ly/h4Va0b 2011-03-25T21:07:32 sigh: What was the bug? 2011-03-25T21:08:01 click the link to see the diff 2011-03-25T21:08:52 its nothing terribly deep :P 2011-03-25T21:08:55 Frontier: hey 2011-03-25T21:09:09 Frontier: in what case could there be memory corruption in java? 2011-03-25T21:09:33 Frontier: i feel like this is c right now, i have this one line that's changes variable A, totally unrelated to variable B 2011-03-25T21:09:36 if i comment it works 2011-03-25T21:09:45 if i uncomment variable B changes wildly 2011-03-25T21:10:01 o_O 2011-03-25T21:11:01 it's for another contest, trying to make a maze solver 2011-03-25T21:11:10 the engine is within the same thread as the bot 2011-03-25T21:11:19 and i seem to be able to change the engine variables from this, lol 2011-03-25T21:11:20 http://pastebin.com/WhbE36ve 2011-03-25T21:11:27 like 2 and 3, the translate statments 2011-03-25T21:11:44 if i leave them uncommented, my bot gets teleported 10 blocks away 2011-03-25T21:12:05 *** needsch has quit IRC (Quit: Leaving.) 2011-03-25T21:12:08 maybe i'm not cleaning something properly 2011-03-25T21:12:11 what is pos? 2011-03-25T21:12:17 it's a Point 2011-03-25T21:12:30 i mean, where does it come from? 2011-03-25T21:12:33 declared before this function inside the class 2011-03-25T21:12:52 it's a class member, same class as this function 2011-03-25T21:14:37 does dir1.getVector() return a new Point or just it return what it is storing internally? 2011-03-25T21:15:16 i think it's a new point 2011-03-25T21:15:22 though.. 2011-03-25T21:15:25 hmm you might be right 2011-03-25T21:15:28 :) 2011-03-25T21:16:22 oh man.. 2011-03-25T21:16:27 these are built in instances too 2011-03-25T21:16:29 lol 2011-03-25T21:16:42 i'm actually changing Compass.NORTH 2011-03-25T21:16:48 so the whole engine is getting messed up 2011-03-25T21:16:50 haha 2011-03-25T21:18:36 the Compass class sounds like it should be immutable 2011-03-25T21:19:10 maybe it's not 2011-03-25T21:19:11 lol 2011-03-25T21:19:34 *** espes has quit IRC (Read error: Connection reset by peer) 2011-03-25T21:19:49 *** espes has joined #aichallenge 2011-03-25T21:20:15 amstan: what contest? :P 2011-03-25T21:20:39 sigh: i added an asymmetric mapgen this morning 2011-03-25T21:20:59 at some point we need some semi fair spawning for it, and i think we worked out a way to do it.. 2011-03-25T21:22:01 what do you propose? 2011-03-25T21:22:40 basically, partition the squares, but for each players "first reachable squares" also partition those into how many turns they can be reached in, then randomly pick a distance to place a food square from each players starting position each turn and one of the squares at that distance to place it 2011-03-25T21:22:47 with a similar "to spawn counter" as with symmetric 2011-03-25T21:23:39 janzert also suggested tweaking the starting positions to try and get the "first reachable" sets more even 2011-03-25T21:24:04 i see 2011-03-25T21:24:28 there's some sample asymmetric maps on the wiki 2011-03-25T21:26:30 can you write up your proposal on the food-spawing wiki? 2011-03-25T21:26:38 yep in a bit 2011-03-25T21:27:29 antimatroid: btw, earlier McLeopold said there was an issue with player perspectives in the engine, do you know what he was talking about? 2011-03-25T21:31:00 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Quit: Lost terminal) 2011-03-25T21:39:52 antimatroid: http://www2.mohawkcollege.ca/events/amazebot/ 2011-03-25T21:42:41 sigh: maybe it's not giving the first person you see as player 1 if you can see them at the start? 2011-03-25T21:42:50 but instead their actual player number? 2011-03-25T21:43:49 amstan: poo to them for it being a closed contest 2011-03-25T21:44:06 antimatroid: go to the forums and check my post 2011-03-25T21:44:14 antimatroid: that they ignored, for 1 week 2011-03-25T21:44:16 lol 2011-03-25T21:44:32 antimatroid: nah, it's doing that 2011-03-25T21:45:02 although when you can see multiple players at the start, they are all equal, there is no "first" 2011-03-25T21:46:25 errr? 2011-03-25T21:46:27 isn't that bad? 2011-03-25T21:46:34 maybe it should be randomised, when a single turn reveals multiple players 2011-03-25T21:46:57 it doesn't really matter what you assign them, just make sure a player doesn't see two enemies as the same 2011-03-25T21:46:59 that is a bug 2011-03-25T21:47:19 oh, the player number are all different 2011-03-25T21:48:14 antimatroid: my point is that the only possible bug is that the order *does* matter 2011-03-25T21:49:24 for example if you can see all other players at the start, then each player gets shown the same order 2011-03-25T21:49:56 yeah okay, i don't think that should really matter, but we'll have to wait for mcleopold 2011-03-25T21:50:27 that's the only issue I can think of in the code *shrug* 2011-03-25T21:50:41 I'll stop thinking about vague bug reports now :) 2011-03-25T21:51:32 right now I want to fix the engine so that it can play deterministic games again 2011-03-25T21:54:36 it can't? 2011-03-25T21:54:47 sigh: i think people want to separate the engine and food spawning 2011-03-25T21:54:49 i have no idea how 2011-03-25T21:55:04 i was thinking.. what if the map generators chose the food spawning for a map? 2011-03-25T21:55:21 like the whole map, so you got the same food spawning for each map always 2011-03-25T21:55:55 that might be an idea 2011-03-25T21:56:13 the only problem there is how much extra data that is 2011-03-25T21:57:00 you have an extra key value pair in the map file? 2011-03-25T21:57:32 key value? 2011-03-25T21:58:05 like start the file with: rows 5\ncols 6\nfood sections\n 2011-03-25T22:02:48 antimatroid: well, at the moment the engine itself is functionally deterministic, but the order that it outputs data in is not 2011-03-25T22:03:17 ah okay 2011-03-25T22:03:19 which causes some of the sample_ants to behave differently, causing different games for the same random seed 2011-03-25T22:03:36 yep 2011-03-25T22:04:17 *** EruooNenningly has quit IRC () 2011-03-25T22:21:58 amstan: Most Java projects use http://packages.ubuntu.com/hardy/ant instead of make. Could I use that? 2011-03-25T22:22:21 after all it is an ant! :) 2011-03-25T22:33:08 *** Tempest has joined #aichallenge 2011-03-25T22:43:19 *** Tempest has quit IRC (Remote host closed the connection) 2011-03-25T23:00:52 Frontier: sure.. if you can make it work 2011-03-25T23:01:58 Is it available on everyone's computers? 2011-03-25T23:02:07 idk 2011-03-25T23:02:11 what do you mean? 2011-03-25T23:02:24 Is ant installed on a typical Ubuntu dev machine 2011-03-25T23:02:27 i can apt-get it if that's what you mean 2011-03-25T23:02:29 no, it's not 2011-03-25T23:02:31 but it's in the repo 2011-03-25T23:02:39 feel free to use it, this is java 2011-03-25T23:02:54 and it'll probably fix your plugin.jar thing 2011-03-25T23:04:18 ok. I literally have every build tool on my computer, because Gentoo is a source distribution. :p 2011-03-25T23:05:34 *** chris_0076 has quit IRC (Ping timeout: 252 seconds) 2011-03-25T23:06:04 i even have sbcl installed for the math app maxima 2011-03-25T23:19:07 *** Chris_0076 has joined #aichallenge 2011-03-25T23:29:22 *** dlila has quit IRC (Quit: Leaving) 2011-03-25T23:36:38 i am dissapoint at my bot 2011-03-25T23:36:49 the sad part is that it's only doing what i told it to 2011-03-25T23:37:01 what are you doing? 2011-03-25T23:37:13 the maze bot thingy 2011-03-25T23:37:20 yeah, what are you doing? 2011-03-25T23:37:29 just implemented trimeaux 2011-03-25T23:37:33 but it still gets lonst 2011-03-25T23:42:24 yeeha! http://img13.imageshack.us/img13/416/visualizerjava.png 2011-03-25T23:42:32 *** McLeopold has joined #aichallenge 2011-03-25T23:42:40 *** McLeopold has left #aichallenge 2011-03-25T23:42:42 :D 2011-03-25T23:42:51 *** McLeopold has joined #aichallenge 2011-03-25T23:42:53 sigh: almost got him 2011-03-25T23:43:00 a wild mcleopold appeared 2011-03-25T23:43:02 it ran away 2011-03-25T23:44:29 sigh: if you use test_bot.cmd, it sends the same state to both players 2011-03-25T23:44:33 brb 2011-03-25T23:45:12 *** moongrass has quit IRC (Read error: Operation timed out) 2011-03-25T23:45:17 *** moongrass has joined #aichallenge 2011-03-25T23:46:14 McLeopold: yeah, I though that was your issue... you want them to be randomised? because they are all seen at the same time 2011-03-25T23:46:24 Frontier: you had to put me as the shit bot :( 2011-03-25T23:46:35 McLeopold: I suppose we can also do it by distance 2011-03-25T23:46:39 lol 2011-03-25T23:46:59 well, you at least need to be given your ants, test_bot is a 2 player game 2011-03-25T23:47:00 I wasn't even good enough to make the game :P 2011-03-25T23:47:01 I thought I would be an honor for you to be named 2011-03-25T23:47:20 :P i'm kidding 2011-03-25T23:47:39 McLeopold: oh, right... your own ants are supposed to be 0 2011-03-25T23:47:43 yeah? 2011-03-25T23:48:04 I feel like I need a break. Pushing Rhino is exausting. 2011-03-25T23:48:36 sigh: yes, that's the issue 2011-03-25T23:48:49 ok, cool... I overlooked that, will fix 2011-03-25T23:49:24 McLeopold: also, I re-wrote parse_orders so that ALL the validation is done in there, since that what the interface you designed seems to to want 2011-03-25T23:49:27 what do you think 2011-03-25T23:49:28 ? 2011-03-25T23:50:01 I also moved ALL the logic for moving ants into do_orders (renamed from resolve_orders) 2011-03-25T23:50:20 got rid of Ant.move as well :) 2011-03-25T23:50:22 McLeopold: people want to move food spawning out of the engine 2011-03-25T23:56:42 antimatroid: who are people? 2011-03-25T23:57:37 not me, I think it fits in the engine perfectly well :) 2011-03-25T23:59:01 aichallenge: sigh epsilon * rb79fc4a / ants/ants.py : Ensure that each player thinks they are player 0 - http://bit.ly/holNh5 2011-03-25T23:59:02 janzert is not a people! 2011-03-25T23:59:10 McLeopold: done ^^ 2011-03-25T23:59:22 antimatroid: by people you mean amstan, and no 2011-03-25T23:59:39 although a map could flag a preference for a generation type, but that's it 2011-03-25T23:59:53 McLeopold: hmm?