2011-03-20T02:00:30 what's a zombie process? 2011-03-20T02:02:48 http://www.brighthub.com/computing/linux/articles/79186.aspx 2011-03-20T02:02:59 seems to be a pretty good description 2011-03-20T02:04:49 okay cool 2011-03-20T02:05:04 my process thing is creating them 2011-03-20T02:05:31 they die when the parent program exits, but i want to be able to kill them off before that 2011-03-20T02:06:01 *** ravic has quit IRC (Remote host closed the connection) 2011-03-20T02:08:18 http://www.makelinux.net/alp/026.htm might help you with that 2011-03-20T02:08:56 assuming whatever your process thing is, is in c/c++ 2011-03-20T02:12:27 it sort of is 2011-03-20T02:12:33 i need to do the whole wait thing 2011-03-20T02:13:04 but their example just declares an int then says wait(that int) but doesn't do anything with the int before? wtf? 2011-03-20T02:13:28 the 3.4.2 section 2011-03-20T02:13:42 is there a "alt tab" for switching desktops? 2011-03-20T02:13:55 no, it says wait(address of that in) 2011-03-20T02:14:01 it's an output value 2011-03-20T02:14:25 the int is filled with the child status 2011-03-20T02:14:34 see http://linux.die.net/man/2/wait 2011-03-20T02:26:44 hmmm i don't know how to get the process ID :P 2011-03-20T02:26:55 each process has FILE in,out; 2011-03-20T02:27:31 pid of processes that you are creating, or pid of processes you are waiting on? 2011-03-20T02:27:58 I have a process struct 2011-03-20T02:28:24 i didn't write the start function, it's that same one i've been fixing up for a while 2011-03-20T02:28:25 how did you create the process? 2011-03-20T02:29:25 either way, you don't need the pid to wait 2011-03-20T02:29:37 what do i need? 2011-03-20T02:29:59 i don't get how just the address of some random int tells you the status of some other running process :\ 2011-03-20T02:30:18 surely that int needs to be linked to the process in some way? 2011-03-20T02:30:33 the return value of wait is the pid 2011-03-20T02:30:44 and it won't be running anymore by that point 2011-03-20T02:31:14 err what, but i might have a bunch of these processes running 2011-03-20T02:31:21 how does it know which one i'm calling wait on? 2011-03-20T02:31:57 wait() waits until any child process finishes up 2011-03-20T02:32:21 if you want to wait for a specific process then there is a version of wait which takes more arguments 2011-03-20T02:32:46 let me see where i get with just wait 2011-03-20T02:32:48 cheers 2011-03-20T02:32:53 janzert: thanks too 2011-03-20T02:33:07 wait() basically says "I can't continue until my children have finished processing", so tell me when one finishes 2011-03-20T02:34:28 if you just want to wait until all children have finished then put wait in a while loop 2011-03-20T02:36:29 the children still seem to become zombies until my parent process exits 2011-03-20T02:40:19 what are you doing? 2011-03-20T02:42:55 I mean, the absolute bare-bones thing to do is while(wait() != -1); but that doesn't do any error checking or anything 2011-03-20T02:44:44 no error checking is fine 2011-03-20T02:45:47 that doesn't compile :P 2011-03-20T02:46:30 oh, well wait needs to take that int *status argument 2011-03-20T02:47:23 still wont compile :P 2011-03-20T02:47:38 http://pastebin.com/XDApjjwB 2011-03-20T02:47:52 that's my function, the for loop is where i'm trying to get a process to end properly 2011-03-20T02:50:35 i've tried the wait in any (un)obvious place 2011-03-20T02:51:03 what's the error? 2011-03-20T02:52:19 well, you don't want to wait until after you have finished talking to the proccess 2011-03-20T02:53:17 remember, the wait is for when you are waiting for the child to finish, if the child is trying to write to you then waiting will just result in a deadlock 2011-03-20T02:55:20 it doesn't result in a deadlock 2011-03-20T02:55:24 it runs fine :\ 2011-03-20T02:55:42 i don't think wait is waiting for anything 2011-03-20T02:55:50 http://pastebin.com/NCDazQr8 2011-03-20T02:56:04 that's the error i get for "while(wait(*test) != -1);" 2011-03-20T02:57:21 my bad, http://pastebin.com/PufT2NJb for &test 2011-03-20T02:57:28 i had tried both, both hated me 2011-03-20T02:59:19 did you #include 2011-03-20T03:00:24 either way, this seems like something the process class should be taking care of 2011-03-20T03:00:45 *shrug* 2011-03-20T03:02:48 it would be, i want to work out how to first :P 2011-03-20T03:02:52 i'll play some more 2011-03-20T03:04:27 also, why do you have a vector of processes when you only have one child process at a time? 2011-03-20T03:05:03 well, i currently don't have a way to cleanly close and reopen the same process object 2011-03-20T03:05:07 but i'm working on that now 2011-03-20T03:05:19 and i seem to have got somewhere by including sys/wait.h :D, cheers 2011-03-20T03:05:28 i'll keep playing now till it's clean 2011-03-20T03:05:56 is sys/wait.h on windows too? 2011-03-20T03:06:42 not that it matters too much to me now, but i might as well try and keep it working on everything now 2011-03-20T03:08:04 no, unless you something that enumlates a unix environment like cygwin or minggw 2011-03-20T03:08:31 I don't know anything about windows programming though 2011-03-20T03:08:54 i use mingw usually 2011-03-20T03:09:09 mingw is nice 2011-03-20T03:22:29 okay i can now reuse it :) 2011-03-20T03:22:31 cheers again 2011-03-20T03:26:36 *** Stocha has joined #aichallenge 2011-03-20T03:39:36 The problem with using both friendy and ennemy ant, is that it is even slower :/ 2011-03-20T03:40:23 If you go with counting nearby ants, give a quick efficient algorithm with every starter kit :p 2011-03-20T03:40:37 though that really is intuitive 2011-03-20T03:41:30 but that would allow blocking unless it is either statistical. Or it always allow to reach contact point some way or others 2011-03-20T03:41:49 at distance 1, you can maximum be 3 vs 3 i think 2011-03-20T03:42:19 so worst blocking scenario would be a 1 corridor like in my gif 2011-03-20T03:42:27 .b. 2011-03-20T03:42:35 bbb 2011-03-20T03:42:39 .a. 2011-03-20T03:42:47 ah no 2011-03-20T03:42:50 %b% 2011-03-20T03:42:52 bbb 2011-03-20T03:42:56 %a% 2011-03-20T03:42:59 %.% 2011-03-20T03:43:01 %.% 2011-03-20T03:43:14 so it is 2 vs 3 here 2011-03-20T03:43:36 if two vs three always die that a is blocked there. 2011-03-20T03:44:41 Life point or statistical will solve that. 2011-03-20T03:45:14 But then we have double slow counting ennemy and friendly units. And have complex state (life point) or tricky testing (statistical) 2011-03-20T03:46:08 I understand that everyone wants complex fighting. I really think we have to something straight forward and fast to calculate for it to be good. 2011-03-20T03:48:32 Stocha: how is it slower? 2011-03-20T03:58:48 iterators are really just structs inside structs yeah? 2011-03-20T03:59:17 why not template the iterator with the type it is point to, then you can use a template to create an iterator for your template type 2011-03-20T04:03:07 it, taking a template Game, 2011-03-20T04:03:07 Game::NStrategy doesn't work, but 2011-03-20T04:03:08 NStrategy would 2011-03-20T04:06:38 oh, but then you'd need to name them all differently 2011-03-20T04:06:40 that doesn't help me 2011-03-20T04:09:47 *** amstan has quit IRC (Ping timeout: 250 seconds) 2011-03-20T04:12:23 fast is : logic bit operation and simple addition. Anything else is slow. Then there is the consideration of Complexity against the total number of ants in the worst case. 2011-03-20T04:12:52 fast is O(n) (with low multiplicator) where n is total number of ant present on the map. 2011-03-20T04:13:12 Ant dies in sames square falls into that categorie. 2011-03-20T04:13:27 Stocha: it doesn't really matter provided it's fair 2011-03-20T04:13:32 the simple rules are boring 2011-03-20T04:13:43 you're one of the few people i know of who think they aren't 2011-03-20T04:16:11 i don't think they aren't. I just think it might be too soon 2011-03-20T04:16:23 and that they have to be lighting fast to compute and testcase. 2011-03-20T04:16:38 then i will be happy to have whatever complexity. 2011-03-20T04:16:42 *** delt0r___ has joined #aichallenge 2011-03-20T04:16:43 and big tree solvers and such. 2011-03-20T04:17:33 but if it's hard to compute, to undestand the spec, and to implement an unoptimized version, then i'm really worrying. 2011-03-20T04:17:51 because that will not be fun for most casual people willing to participate. 2011-03-20T04:18:21 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-03-20T04:18:43 People will want to solve interesting games. Not to debug / optimize their code for month, before starting to really work on the ai challenge itself. 2011-03-20T04:19:32 So if you think complexity is good, make it linear in the number of ant, and easy to understand/ check for rightness if implementation. 2011-03-20T04:22:43 it is linear in the number of ants, because you only need to check a constant number of map positions per ant 2011-03-20T04:27:07 constant time would be even better :p 2011-03-20T04:28:32 well, that would be doing no attacks what so every 2011-03-20T04:28:43 *ever 2011-03-20T04:29:03 In my case it was not linear : i would find the ennemy ant by checking the shape around. Then iterate over the enemies to count them :p 2011-03-20T04:29:30 I made a post about a rock/scisor/paper combat for ants. 2011-03-20T04:29:42 but the post got lost when it asked me to login again. 2011-03-20T04:30:09 I think the success of tron and planet wars as AI challenge, came from the simplicity of thoses games. 2011-03-20T04:30:20 You had straight forward rules, very easy to understand. 2011-03-20T04:30:22 all the methods are constant time per ant, if that's what you mean 2011-03-20T04:30:48 Then you could put all your mind into solving them. Not debugging for years, or trying to understand what the heck those specs means. 2011-03-20T04:31:08 no constant time doesn't depends on ant numbers. 2011-03-20T04:31:12 people manage to make sort O(n**2) instead of O(n log n) all the time too, it's not the fault of sorting ;) 2011-03-20T04:31:37 You can sort in linear time also. 2011-03-20T04:31:42 Stocha: the current methods are constant time per ant 2011-03-20T04:31:47 Think how child sort out cards on the table. 2011-03-20T04:32:06 with a vision radius of 6, a constant number (21) of map positions need to be checked 2011-03-20T04:32:22 You take cards one by one, you put them "at their right place on the table", 1 place for each 52 cards, then you stack them one by one, sorted. 2011-03-20T04:32:36 yes, see radix sort 2011-03-20T04:32:45 or bucket sorting 2011-03-20T04:33:14 of course they come with other limitations though 2011-03-20T04:33:32 As i use bit maps, i have time linear in the number of long it take to bitmap the map, for solving collisions. 2011-03-20T04:33:43 doesn't work on things which you can't compare with the bit representation 2011-03-20T04:33:50 yeah that O(***) is meaningless i guess :p 2011-03-20T04:33:54 (re limitations) 2011-03-20T04:34:10 what are the sort of thing you can't compare with bit representations ? 2011-03-20T04:34:14 i don't get it :p 2011-03-20T04:34:33 How do you compare them then ? With quantical representation ? :p 2011-03-20T04:34:48 say a simple implementation of rational numbers 2011-03-20T04:34:57 what ?? 2011-03-20T04:35:40 You mean complex bit comparison then :p 2011-03-20T04:35:40 if you store a rational number as a pair (numerator, denominator) sorting their bit representation wont sort by value 2011-03-20T04:35:55 then radix sorts wont work 2011-03-20T04:36:03 Stocha: see http://en.wikipedia.org/wiki/Radix_sort if you're not familiar with radix sort 2011-03-20T04:36:15 what if you keep them by pair of reduced numbers ? 2011-03-20T04:36:16 you are into general comparision sorts which have a optimal bound of O(n log(n)) 2011-03-20T04:36:19 I'm pretty sure it explains the limitations sigh is refering to 2011-03-20T04:36:32 Stocha: how will reduced numbers help? 2011-03-20T04:37:17 for example, the following is in sorted order in reduced repr: (1,3), (1,2), (2,3), (1,1), (2,1) 2011-03-20T04:37:23 you have only one representation for any number then ? 2011-03-20T04:37:24 anyway have fun, 4:30am so I really should go to bed ;) 2011-03-20T04:37:46 Stocha: yes, but that representation doesn't work for radix sort 2011-03-20T04:38:13 you can make a representation for rationals that work for radix sort, but that isn't good for adding and multiplying them 2011-03-20T04:38:15 let's be discussing about the game then, as it appears i'm somewhat lacking in algorithmic culture :p 2011-03-20T04:38:47 I hate numbers since i heard of uncountable sets anyway. 2011-03-20T04:39:16 well I was only talking about rationals, which are countable 2011-03-20T04:39:19 especially when you try to trick me into "infinit set of whatever" 2011-03-20T04:39:56 that's still bigger than a 64 bits operand. 2011-03-20T04:40:23 one number being an infinite string with ununderstable rules for comparison :p 2011-03-20T04:40:52 so let's be on about the need for simplicity. 2011-03-20T04:41:10 Anywhere i look i see people asking for "complex interesting ant game" :'( 2011-03-20T04:41:16 what can i do about that ? 2011-03-20T04:41:19 why do you want basic? 2011-03-20T04:41:37 Stocha: by complex they mean they want the emergent strategies to be complex, not the rules 2011-03-20T04:41:44 Why do i beleave it has to be easy to implement and test for ? like less than 4 days to have an engine work fast. 2011-03-20T04:41:57 without a good battle resolution i am worried the game would just be fastest to find food and not be stupid 2011-03-20T04:42:12 you don't need to make your own engine 2011-03-20T04:42:28 You have to, if you want to build a solver 2011-03-20T04:42:37 lol, no you don't 2011-03-20T04:42:47 you won't be able to make a tree of anything, if you don't have rules for calculating the next nodes. 2011-03-20T04:42:50 you need to emulate some things, but you don't need your own working engine 2011-03-20T04:42:57 yes, but that isn't an engine 2011-03-20T04:42:57 same goes with montecarlo trees. 2011-03-20T04:43:12 Yeah, thoses things need to be easy to emulate then. 2011-03-20T04:43:20 they are 2011-03-20T04:43:24 less than a full day work for unoptimized. 2011-03-20T04:43:28 you don't just go with the most trivial option 2011-03-20T04:43:31 you go with the most interesting 2011-03-20T04:43:35 and with few risk of getting wrong. 2011-03-20T04:43:43 that's stupid 2011-03-20T04:43:57 planet wars is such a game. 2011-03-20T04:43:59 so is tron. 2011-03-20T04:44:05 (they are even simpler i guess but well) 2011-03-20T04:44:06 planet wars wasn't so simple 2011-03-20T04:44:14 and there were lots of little fiddly bits here and there 2011-03-20T04:44:15 what rues are hard to test ? 2011-03-20T04:44:23 rules 2011-03-20T04:44:30 there was a huge fuss over battle resolution for that 2011-03-20T04:44:35 planet wars has annoying battle resolution, and a few bugs sprang up during the comp 2011-03-20T04:44:44 and the tiniest change in things caused a huge change in optimal strategies 2011-03-20T04:44:46 You have planet regeneration, and then ships, and then ships order 2011-03-20T04:44:55 it was very hard to make any visible progress after a while as well 2011-03-20T04:45:09 progress at what ? bot strength ? 2011-03-20T04:45:14 yes 2011-03-20T04:45:20 why is it that a bot totally overclassed the others then ? 2011-03-20T04:45:25 most people seemed to hit a brick wall after a while 2011-03-20T04:45:31 because mega1 is mega 2011-03-20T04:45:36 that would go for any challenge. 2011-03-20T04:45:40 he pantsed everybody 2011-03-20T04:45:51 not like that, tron had no such wall 2011-03-20T04:46:01 and i expect people to find a lot more to write stuff for with this than pw 2011-03-20T04:46:01 He solved it better than the other. He won the challenge. 2011-03-20T04:46:18 ah, tron didn't have the wall, okay. you have a point then. 2011-03-20T04:46:28 didn't people had fun with planet war ? 2011-03-20T04:46:30 that's another reason for now just having the most basic game mechanics with a straight forward strategy for micro and macro, it gives people obvious things to improve, and they can see clear results 2011-03-20T04:46:45 they went and said : let me regret to have applyed ? :p 2011-03-20T04:46:47 planet wars was an awesome little problem 2011-03-20T04:46:56 but i personally don't think it made for a great ai game 2011-03-20T04:47:05 it was awesome to watch as well etc. 2011-03-20T04:47:13 i just feel it was lacking in the way of decent strategies 2011-03-20T04:47:27 Still it fast to compute state for. 2011-03-20T04:47:30 that's good. 2011-03-20T04:47:40 and you can build a working state transition in a day. 2011-03-20T04:47:45 that's good too. 2011-03-20T04:47:49 you can do that with the current options 2011-03-20T04:47:54 i don't see that as necessary 2011-03-20T04:48:08 and you can read the spec on time, and go : mm i think i understand what the game is, and how to implement it :p 2011-03-20T04:48:11 if you're not willing to spend a bit of time making your bot good, you shouldn't expect to win 2011-03-20T04:48:18 i want to play around with cooperation in n-player games 2011-03-20T04:48:30 I want to make the bot, not debug the spec of the game :p 2011-03-20T04:48:38 i want them to be crystal clear. 2011-03-20T04:48:48 they are clear 2011-03-20T04:48:56 that they are not at this point. 2011-03-20T04:49:08 it's still in development 2011-03-20T04:49:14 the actual rules are clear, the specs may not be 2011-03-20T04:49:47 but for the fact that ant receive a dir order and cant walk on water. and one food spawn one ant if only one color is nearby and disapear if more than one is nearby 2011-03-20T04:49:52 that is what crystal clear is :) 2011-03-20T04:50:29 <_flag> There's small subtle rules, but the basic rules are fairly clear 2011-03-20T04:50:29 and that if more than one ant occupy a square, all ant in that square disapears; That's clear too. 2011-03-20T04:51:03 there's small unatural hard to compute/ test/ implement ... hard to understand rules. 2011-03-20T04:51:39 the idea is we want attacks 2011-03-20T04:51:43 but all them are unfinalized also. 2011-03-20T04:51:51 and your "favourite rule" isn't attacks, it's removing collided ants 2011-03-20T04:51:52 well, the only thing in regard to the bots that matters here is battle resolution 2011-03-20T04:52:05 which is why it is being discussed now 2011-03-20T04:52:05 you other proposed method is random 2011-03-20T04:52:10 which is laughably less clear 2011-03-20T04:52:17 The only thing that matters so far, is exploration, and food gathering 2011-03-20T04:52:27 no, attacks matter 2011-03-20T04:52:31 that is how you get points 2011-03-20T04:52:41 <_flag> You have a set of ants, you move them around to find food for more ants, and your ants die if they have more or equal enemies around them than friends. There was some odd aspects of planet wars battle resolution dealing with neutral planets, but that didn't stop anyone from saying "I'll just pick the planet with the smallest number of ships and send 50% of my ships there". 2011-03-20T04:52:41 i doubt that your fighting rules make it that the one that get the exploration and food gathering better won't win. 2011-03-20T04:53:25 that will be an important component, but not the only one 2011-03-20T04:53:29 nor do i want it to be 2011-03-20T04:53:31 <_flag> Similarly, if you want to be the best, you have to understand all the intricacies of the game. Otherwise, there's nothing stoping you from making a bot that moves around randomly 2011-03-20T04:54:03 that's what i did so far :p 2011-03-20T04:54:04 there will be a range of levels of bots for people to compete against 2011-03-20T04:54:08 a bot that moves randomly. 2011-03-20T04:54:24 but why make the game so simple that anyone willing to put a tiny bit of effort is going to be fairly noisely fighting it out near the top? 2011-03-20T04:54:35 Well i guess, that if i'm right it won't be a real problem after all. 2011-03-20T04:54:44 ? 2011-03-20T04:54:45 top players will be solving the food gathering thing. 2011-03-20T04:54:58 and stockpiling at borders. 2011-03-20T04:55:00 i've already got my food gathering algorithm worked out 2011-03-20T04:55:07 that's how every rules end anyway :p 2011-03-20T04:55:12 that's how boring i think it is 2011-03-20T04:55:14 <_flag> Food gatherthing isn't a problem that takes months to solve on its own 2011-03-20T04:55:35 i have trouble believing it could be optimal in such a few effort :p 2011-03-20T04:55:52 The game is about that, ant life is about that :) 2011-03-20T04:56:12 find the border of each food square, then paint outwards and find "closest ants" repeatedly moving ties until a player will win 2011-03-20T04:56:26 They have been studied for years, for that. How they find food and bring it back. 2011-03-20T04:56:31 the only difficult is possibly switching up the order of moving ants to food in order to make sure you gaurantee getting more 2011-03-20T04:56:41 but that's a little bit of play work, not a whole contests worth 2011-03-20T04:56:43 They have a nice solving of that game too. ants. 2011-03-20T04:57:11 So you have the go to the border problem then. 2011-03-20T04:57:18 that's easy 2011-03-20T04:57:22 even with simple dieonsamesquare you have that. 2011-03-20T04:57:23 i paint to find that too 2011-03-20T04:57:33 or i can store the translate amounts for a border 2011-03-20T04:57:40 you always says you solved it. but i have no evidences of that. 2011-03-20T04:57:57 it's not completely worked out, but pretty much 2011-03-20T04:58:10 If you solved it in a day then you 'll win or the game is too simple. 2011-03-20T04:58:16 i need to go through and implement and iron through a few things, but it's certainly not a contest making problem 2011-03-20T04:58:37 you maybe right 2011-03-20T04:58:51 i have to admit that. 2011-03-20T04:59:17 though i doubt it at this point, it may be that you will be right in the end. but what is the probability of your being right about it i wonder. 2011-03-20T04:59:40 if you have the enemies>=friends then the best strategy isn't necessarily to fight something as fast as possible, you will want to dance around each other and try to improve your death ratio 2011-03-20T04:59:46 can you imagine how cool that will look? 2011-03-20T05:00:43 The rule i proposed wall all about enemies>friends ratio. 2011-03-20T05:00:52 although it was statisticall 2011-03-20T05:00:59 it could also be life based. 2011-03-20T05:01:31 Stocha: are you aware that we've pretty much got a new favourite battle option? 2011-03-20T05:01:32 I still stated that i had this feeling that it was too soon. 2011-03-20T05:01:46 the one where your ant dies if it has at least as many ants in its battle radius than friends? 2011-03-20T05:01:53 rather than the power option 2011-03-20T05:02:03 Let's first go with a challenge about solving the simple ant wars game. Then next challenge you had interesting fighting based on the feed back of 5000 users ? 2011-03-20T05:02:06 enemies > friends is implemented as "--attack support" in the engine 2011-03-20T05:02:12 sigh: with McLeopold's aggreance, i think you could almost make that the new default 2011-03-20T05:02:33 meh, I'll make it the new default now 2011-03-20T05:02:40 easy 2011-03-20T05:02:40 <_flag> sigh: enemies > friends or enemies >= friends? 2011-03-20T05:02:48 current > 2011-03-20T05:02:54 what is your opinion, _flag 2011-03-20T05:03:02 sigh: 1vs1 doesn't die then? 2011-03-20T05:03:12 1vs1 does die, 1 vs has no friends 2011-03-20T05:03:16 1v1 2011-03-20T05:03:19 <_flag> Oh 2011-03-20T05:03:22 <_flag> Okay nevermind then 2011-03-20T05:03:27 okay sure 2011-03-20T05:03:30 leave it at that 2011-03-20T05:03:40 maybe even make a comment note of that 2011-03-20T05:03:41 is the ant is own friend or not ? 2011-03-20T05:03:48 that should be stated once and for all :p 2011-03-20T05:03:49 it's not counted 2011-03-20T05:03:57 he just did 2011-03-20T05:04:04 i used it as own friend in my formulae 2011-03-20T05:04:15 <_flag> sigh: That's better than what we have now because it just leads to people sending in 1 ant at a time 2011-03-20T05:04:21 so one ant always have a friend. 2011-03-20T05:04:41 Stocha: an ant is not its own friend for calculations 2011-03-20T05:04:44 it allows blocking. But let's say that blocking is not a problem. 2011-03-20T05:04:45 <_flag> If that's what you wanted my opinion on 2011-03-20T05:05:09 _flag: i don't think it does 2011-03-20T05:05:38 Only way i see with solving blocking is life or statisticall. 2011-03-20T05:05:45 it gives them a better chance at killing off your one when you have nothing to really lose from going all in, and the scoring makes you want more ants inside the range of the dying ant than enemies 2011-03-20T05:06:00 i originally thought that too :P 2011-03-20T05:06:14 well, all in or no in 2011-03-20T05:06:16 and you don't now ? 2011-03-20T05:06:34 blocking 1 width corridors is fine 2011-03-20T05:06:43 how is it fine ? 2011-03-20T05:06:46 if it's too much of a problem we'll make the map gens not make them 2011-03-20T05:06:50 and how do you prove it's the only case ? 2011-03-20T05:07:04 you didn't find this case in the first place. So you need some proof don't you ? 2011-03-20T05:07:15 <_flag> antimatroid: are you referring to optionn 1 or 2? 2011-03-20T05:07:16 Even i you did find it, you still need a simple proof. 2011-03-20T05:07:18 we did find the 1 corridor case 2011-03-20T05:07:27 _flag: the new option 2011-03-20T05:07:27 and i don't think that such proof will exists :) 2011-03-20T05:07:39 Stocha: challenge accepted 2011-03-20T05:07:46 okay then :) 2011-03-20T05:07:47 but i'm busy atm, sometime in the next week or two 2011-03-20T05:07:52 spit there, and shake hand ! 2011-03-20T05:08:09 <_flag> antimatroid: I was referring to the current one (which I still have as option 2, I don't know if it's been updated) 2011-03-20T05:08:24 _flag: it's about to change 2011-03-20T05:08:40 if you make a mathematically acceptable proof that blocking can only happen in one width corridor, i won't give any more arguments about fighting rules ! 2011-03-20T05:08:50 we'll need a mathematician though 2011-03-20T05:08:54 new method is: your ant dies if it has more enemies in range than friends, not counting itself as a friend 2011-03-20T05:09:07 <_flag> Wait, so what's the difference between the new one and option 1? 2011-03-20T05:09:08 do i count as a mathematician? 2011-03-20T05:09:14 i'm only an honours student 2011-03-20T05:09:21 otherwise i'll pass it on to jmcarthur 2011-03-20T05:09:50 jmcarthur: you're now our resident mathematician :) 2011-03-20T05:09:59 aichallenge: sigh epsilon * r6f19970 / ants/ants.py : Cleanup code a bit - http://bit.ly/gBoywP 2011-03-20T05:10:00 aichallenge: sigh epsilon * r7a961b7 / (ants/ants.py ants/playgame.py): Make support default attack method. Comment do_attack_support. - http://bit.ly/dRU4GE 2011-03-20T05:10:01 you certainly not count as your own proof validator :p 2011-03-20T05:10:19 my friend is a little too keen on actually writing one of those 2011-03-20T05:10:22 you build the proof, and a mathematician check for compleetness 2011-03-20T05:10:25 ok, it's now the default attack method 2011-03-20T05:10:27 from the very bottom up 2011-03-20T05:10:31 well, almost 2011-03-20T05:10:37 we'd extend it to set theory later 2011-03-20T05:10:45 sigh: :) 2011-03-20T05:10:58 now i have to actually work out how to run this on ubuntu 2011-03-20T05:11:17 There is only limited number of case to study. So it might be possible to build up a program for solving the blocking problem also. 2011-03-20T05:11:46 *** kaemo has joined #aichallenge 2011-03-20T05:11:54 when we have come across rules that allowed blocking 2011-03-20T05:12:00 they always happened in a fairly obvious way 2011-03-20T05:12:10 wich challenger no doubt will do once the rule is gold. 2011-03-20T05:12:17 and even then i don't think they would have been easy to do very well 2011-03-20T05:12:27 that i don't argue with. 2011-03-20T05:12:45 only with the fact that there exists some case with blocking. 2011-03-20T05:13:04 antimatroid: McLeopold was in support of it earlier, so I don't think he would have a problem with it being default 2011-03-20T05:13:09 and really, does it matter if people can "make their own walls" 2011-03-20T05:13:21 people just need to not be stupid enough to walk into such a trap 2011-03-20T05:13:44 which is really a nice starting point for writing your own emulate state iteration function 2011-03-20T05:13:50 sigh: neither 2011-03-20T05:13:53 they might have no choice although 2011-03-20T05:13:57 if all ways are blocked 2011-03-20T05:14:02 then they lost i guess 2011-03-20T05:14:09 it's a single game 2011-03-20T05:14:18 but same goes with any rules. Although blocking might be dynamicall 2011-03-20T05:14:19 provided it doesn't end up being the same thing happening every game, i think it's all good 2011-03-20T05:14:41 it's also not trivial to check that you're blocking something 2011-03-20T05:14:50 we might know for quite sure, once the challenge is well under way. 2011-03-20T05:15:10 if blocking is the deciding factor, games may not be fun to watch after a few weeks :p 2011-03-20T05:15:11 (i'm quite good at saying something is trivial when i want it to be and not otherwise, :P) 2011-03-20T05:15:25 when everyone go straight at blocking point, and the randomness does the rest. 2011-03-20T05:15:36 yeah, everyone agrees on that being bad i think 2011-03-20T05:15:52 i agree on it being not fun to watch. 2011-03-20T05:15:59 if that happened we'd almost have to consider changing attack rules, but i really don't think it's possible to block passsages greater than 1 2011-03-20T05:16:04 especially if it happens in the few first days of the challenge 2011-03-20T05:16:06 and we can eliminate those fairly easily if neede 2011-03-20T05:16:09 and then the game is solved :p 2011-03-20T05:16:21 you can't change the rules once the realy thing start. 2011-03-20T05:16:25 that's the problem. 2011-03-20T05:16:28 actually, no it's not 2011-03-20T05:16:32 but it makes for an interesting game 2011-03-20T05:16:38 if you all block off, then no one gets points 2011-03-20T05:16:48 two of you unblocking and fighting will get you above everyone else to win 2011-03-20T05:16:55 aichallenge: sigh epsilon * r452dc87 / ants/ants.py : Stop hard-coding maxx dist in do_attack_closest - http://bit.ly/eNFIWW 2011-03-20T05:16:56 by interesting i mean weird 2011-03-20T05:17:30 well if blocking is paramount, there is bound to be one or two ant dies in the early stages. 2011-03-20T05:17:32 the scoring makes it so that you have to be involved in the game 2011-03-20T05:17:35 not just grow your army 2011-03-20T05:17:37 so that will be the noise. 2011-03-20T05:18:00 you have to be involved in order to grow your army. 2011-03-20T05:18:11 two players could cooperate and just fight in their zoned up blocked region 2011-03-20T05:18:12 and win 2011-03-20T05:18:23 but i really don't expect blocking to be a major component to the game 2011-03-20T05:18:30 and am willing to design the maps around that 2011-03-20T05:18:49 i don't like the sound of it 2011-03-20T05:18:54 sound of what? 2011-03-20T05:19:30 next you'll have full ground map in order to have an interesting ai challenge with good combat rules and no blocking :p 2011-03-20T05:19:55 and then blocking might be dynamic 2011-03-20T05:20:02 and easy to achieves 2011-03-20T05:20:09 dynamic blocking is guess work 2011-03-20T05:20:14 with my bot, (random moving) blocking happens spontaneously 2011-03-20T05:20:14 which is all part of the game 2011-03-20T05:20:25 well, it's still blocking 2011-03-20T05:20:31 dynamic blocking is an interesting ai problem 2011-03-20T05:20:31 if it happens fast, and efficient 2011-03-20T05:20:33 so is 2vs1 if you look at it like that 2011-03-20T05:20:45 there will be no game other than blocking quick, and having luck at the begining. 2011-03-20T05:20:56 but such is the way of all easy to solved game :p 2011-03-20T05:20:58 sigh: a..b..a 2011-03-20T05:21:02 both a's die with the new rule 2011-03-20T05:21:12 it becomes a matter of randomness, because everyone is already optimal. 2011-03-20T05:21:22 same as with a..b..c 2011-03-20T05:21:24 antimatroid: and the b 2011-03-20T05:21:34 we don't get as much cool cooperation features from this rule 2011-03-20T05:21:57 i will alas compromise, just realising these defficiencies :) 2011-03-20T05:22:51 in fact, cooperation is out :( 2011-03-20T05:22:57 just go with life point if you want some combat magic. 2011-03-20T05:23:06 i don't like it, but it seems less weird still. 2011-03-20T05:23:14 option 1 is the only rule that offers true cooperation 2011-03-20T05:23:16 in battle 2011-03-20T05:23:31 so far anyway 2011-03-20T05:23:32 option 1 is a bit non-intutive in the results too 2011-03-20T05:23:37 where is the mathematical proof of that ? 2011-03-20T05:23:47 wtf? 2011-03-20T05:23:49 what? a..b..a would intuitively git b dead yeah? 2011-03-20T05:24:14 the proof of it be the only combat rule to make cooperation important 2011-03-20T05:24:33 cooperation important for battles 2011-03-20T05:24:47 it's because it's the only rule where an ants death depends on the enemies enemies 2011-03-20T05:24:52 yeah how do you proof that your rules is just that ? 2011-03-20T05:25:04 because it depends on your enemies enemies :P 2011-03-20T05:25:14 why would that solve it, and be the only way to solves it ? 2011-03-20T05:25:36 antimatroid: yes, that case is intuitive... but if the 'a's are more surrounded then it will fail again 2011-03-20T05:25:41 which is a bit confusing 2011-03-20T05:26:23 sigh: yeah it might be a bit, it's certainly less cooperative than 1 was 2011-03-20T05:26:38 i'm still happy to go for it, as i don't think cooperation would have been that big 2011-03-20T05:27:02 and i've already got some cool little ideas for cooperation to try generally just from playing around with this 2011-03-20T05:27:02 *** Stocha has quit IRC (Quit: Page closed) 2011-03-20T05:27:57 hmm... how about (just throwing out there, not advocating), each ant deals 1/#enemies damage to each enemy, any ant with over 1 damage dies, damage does not accumulate over turns 2011-03-20T05:28:16 so if you have more support on either side, the damage is distributed 2011-03-20T05:28:57 i think that's just the new rule 2011-03-20T05:29:02 no, it isn't 2011-03-20T05:29:18 oh maybe not 2011-03-20T05:29:19 a..b..a now kills 'b' but keeps both 'a' alive 2011-03-20T05:29:21 hmmm, i like it 2011-03-20T05:29:36 now, can we generalise it to work with integers? :P 2011-03-20T05:29:49 i think you could, lcm (possible ants in range) 2011-03-20T05:29:59 or just use rationals 2011-03-20T05:30:04 yes, use rationals 2011-03-20T05:30:32 I think it is intuitive 2011-03-20T05:30:46 yeah, i like that 2011-03-20T05:31:05 you damage surrounding enemies equally, and your total attack power is always the same 2011-03-20T05:31:25 I'm going to implement it 2011-03-20T05:31:27 and ants heal after battles 2011-03-20T05:31:30 :) 2011-03-20T05:31:32 yes 2011-03-20T05:32:22 sigh: it's not option 1 in simple form is it? Oo 2011-03-20T05:32:44 oh no, it's not 2011-03-20T05:32:50 i don't think so 2011-03-20T05:32:52 it's a lot like it 2011-03-20T05:33:12 but it is smoother 2011-03-20T05:33:38 option 1 has sharp cut-offs and it is more difficult to understand the rational 2011-03-20T05:33:47 yep 2011-03-20T05:33:59 damage is intuitive, I think 2011-03-20T05:34:10 I think anyone can understand it 2011-03-20T05:34:44 we'll get mcleopold to test with his friend 2011-03-20T05:36:52 the implementation is a lot like 1 yeah? 2011-03-20T05:36:59 if i'm thinking it through right 2011-03-20T05:37:19 hmm... a bit, yeah 2011-03-20T05:42:04 what usually causes segmentation faults? 2011-03-20T05:44:14 trying to read memory you shouldn't 2011-03-20T05:44:28 bad pointers usually 2011-03-20T05:53:40 sigh: waiting for the process to actually stop doubles my running time :| 2011-03-20T05:53:42 aichallenge: sigh epsilon * rc2b0594 / (ants/ants.py ants/playgame.py): Implement do_attack_damage - http://bit.ly/ibPibe 2011-03-20T05:53:55 sigh: did you set that as main? :P 2011-03-20T05:54:03 no, it is not default 2011-03-20T05:54:12 aww, okay 2011-03-20T05:54:51 antimatroid: can't really say anything about run time if I don't know what your program actually does 2011-03-20T05:55:23 the chilren processes are reading a game then exiting 2011-03-20T05:56:56 antimatroid: try this, put this at the start of your program: signal(SIGCHLD,SIG_IGN); 2011-03-20T05:57:03 and take out the wait stuff 2011-03-20T05:57:20 also: #include 2011-03-20T05:59:35 okay so that was as fast as normal without 2011-03-20T05:59:45 yes 2011-03-20T05:59:47 is that going to have killed my zombie processes? 2011-03-20T06:00:17 i'll test, but it's a bit of effort to change, if it's a straight no, what did it do? :P 2011-03-20T06:00:38 well yes, SIGCHLD is the signal that tells you when children terminate, you've told the os that you don't care about it 2011-03-20T06:00:48 ah cool 2011-03-20T06:00:55 :) 2011-03-20T06:01:22 if you want to be fast AND care about it, then instead of SIG_IGN you have a function pointer which is run whenever a child dies 2011-03-20T06:01:47 i don't need it to be too fast, just not horribly slow 2011-03-20T06:01:53 and actually work without crashing 2011-03-20T06:02:04 :) 2011-03-20T06:16:04 i can play 6000 3x3x3 games in about 30 seconds 2011-03-20T06:16:26 when the player is just returning 1 as their strategy 2011-03-20T07:20:55 *** antimatroid has quit IRC (Quit: Leaving.) 2011-03-20T07:21:12 *** antimatroid has joined #aichallenge 2011-03-20T07:21:45 i think my network just hates git :\ 2011-03-20T07:22:08 or vice versa 2011-03-20T07:26:27 *** antimatroid has quit IRC (Ping timeout: 240 seconds) 2011-03-20T07:37:16 *** Stocha has joined #aichallenge 2011-03-20T07:37:39 i just tested a food path finding algorithm. Okay it is easy to write. It is also very efficient. 2011-03-20T07:38:19 There is some room for improvement at the moment. But it may well hit a wall pretty soon. 2011-03-20T07:38:51 With food gathering. 2011-03-20T07:39:11 (i posted some picture also, as you might expect now :p ) 2011-03-20T07:39:37 I guess i should simply go with more advanced bot, and see where it leads. 2011-03-20T07:39:49 Stocha: out of curiosity, what language are you using? 2011-03-20T07:39:53 At wich point exactly combat rules kick in 2011-03-20T07:39:57 i'm doing that in java. 2011-03-20T07:40:12 i se 2011-03-20T07:40:15 *i see 2011-03-20T07:40:17 i have been around java for years. I'm started to be confortable with it. 2011-03-20T07:40:37 and i'm started to be uncomfortable with anything else also ... :'( 2011-03-20T07:40:53 i guess i'm growing old or something. 2011-03-20T07:41:21 I use C style and a bit of fonctionnal style when i do java. 2011-03-20T07:41:38 only relying to standard java way of writing when it really has no importance. 2011-03-20T07:41:45 *** antimatroid has joined #aichallenge 2011-03-20T07:42:11 (which means i use int[] heavilly, and functor through anonymous function quite a lot too) 2011-03-20T07:42:32 while leaving room for quite some bit of optimization 2011-03-20T07:42:57 at the moment, it could easilly mean 30x speed; if i were willing to optimize without refactoring the architecture. 2011-03-20T07:43:05 Stocha: told you it's not too difficult :P 2011-03-20T07:43:19 i see it as a fun little side problem 2011-03-20T07:43:24 i guess you where more experimented than me on the subject. 2011-03-20T07:43:49 There is room for improvement. it might hard to do it really efficiently 2011-03-20T07:44:05 but combat will surelly kick in somewhere. 2011-03-20T07:44:19 the trouble is, you can hardly go for combat, if you don't gather food efficiently 2011-03-20T07:44:58 i still think the best bot will have the best food gathering mechanisms at the moment. none of your rule could change that. 2011-03-20T07:46:05 But i agree that you need room for bots to have possibility to gain advantage in the meeting phase. 2011-03-20T07:46:55 one pbot socred a victory ! 2011-03-20T07:47:00 scored a victory 2011-03-20T07:47:05 i wonder what happenned 2011-03-20T07:47:13 in like 400 games. 2011-03-20T07:47:24 i don't log the games :p 2011-03-20T07:47:28 just collect the score. 2011-03-20T07:47:33 eh? java does not have anonymous functions 2011-03-20T07:47:51 it doesn't ? 2011-03-20T07:47:51 *** antimatroid has quit IRC (Ping timeout: 250 seconds) 2011-03-20T07:47:58 anonymous classes maybe then ? 2011-03-20T07:48:24 are sure, you have those 2011-03-20T07:48:34 i'm not always up with lexical terms. 2011-03-20T07:48:43 what is anonymous function ? 2011-03-20T07:49:25 a function that doesn't have a name associated with it 2011-03-20T07:49:41 it's a bit hard to have one in a language without first-class functions 2011-03-20T07:50:18 ie. a language where functions are just like any other objects which you can assign to variables and so on 2011-03-20T07:50:27 okay, let's say it's too deep into the functionnal way of thinking for me to grab it :p 2011-03-20T07:50:30 in java you must wrap it in a class 2011-03-20T07:50:54 i think there are things in java that really tricky (if not impossible) to do. 2011-03-20T07:51:04 like? 2011-03-20T07:51:09 still it's practical for most purpose 2011-03-20T07:51:16 like macros for sure :p 2011-03-20T07:51:49 or converting a int[] into a byte[] efficiently. Although there may be some library that i'm not aware of. 2011-03-20T07:52:01 but here i was talking about architecture 2011-03-20T07:52:16 everyone keeps telling me how functionnal style is good at architecturing stuff. 2011-03-20T07:52:34 what do you mean by functional? 2011-03-20T07:52:55 where ? 2011-03-20T07:53:18 what do you understand "functional style" to be? 2011-03-20T07:53:34 haskell freak late night talk ? 2011-03-20T07:53:59 ah, fair enough... yeah, it's really hard to do that in java 2011-03-20T07:54:04 with alcohool 2011-03-20T07:54:42 because you need to wrap functions in classes which implement the correct interface and that's a whole lot of boilerplate which gets in the way 2011-03-20T07:54:44 not that i was involved too much with true haskell freaks. 2011-03-20T07:55:00 yeah that's probably that. 2011-03-20T07:55:06 you have to write lot's of junk 2011-03-20T07:55:19 so you would end up with a big pile of crap :p 2011-03-20T07:55:33 all for without accomplishing much. 2011-03-20T07:55:34 :) 2011-03-20T07:56:20 Still when you have been around it, java is good for prototyping. And you can do some IHM pretty fast. And then kinda run everywhere. So it is a good one. 2011-03-20T07:56:39 although if you really want speed, you might run into a wall at some point. Without the macros and such. 2011-03-20T07:56:43 IHM? 2011-03-20T07:56:52 User interface i thinnk 2011-03-20T07:56:54 UI then ? 2011-03-20T07:57:02 yeah, UI 2011-03-20T07:57:19 by macros you mean c-type macros, or lisp-type macros? 2011-03-20T07:57:27 I'll walk a bit and find plan for next generation bot i think. 2011-03-20T07:57:34 i know c type. 2011-03-20T07:57:39 i don't heard of list type :p 2011-03-20T07:57:46 lisp 2011-03-20T07:57:55 are they different ? 2011-03-20T07:58:13 c macros is essentially search and replace 2011-03-20T07:58:26 yeah that's brutal, but efficient in some cases. 2011-03-20T07:58:33 lisp macros treat the code like data and do arbitrary proccessing on them 2011-03-20T07:58:35 we have that in most assembly langage too 2011-03-20T07:58:54 that sound a bit obscure too me at this point :p 2011-03-20T07:59:04 Code is always data. 2011-03-20T07:59:22 yes, but not every language allows you to treat it as such 2011-03-20T07:59:30 sure most, won't. 2011-03-20T07:59:43 because it can get messy pretty quick. 2011-03-20T07:59:49 and has few application too :p 2011-03-20T08:00:04 unless you make an abstract call or something. 2011-03-20T08:00:12 *** needsch has joined #aichallenge 2011-03-20T08:00:18 it has many applications, because it allows you extend the language 2011-03-20T08:00:58 i have tryed to grow excited into functionnal langages. And always failed miserably. It 2011-03-20T08:01:23 it hardly enable to program faster. But it does execute slower on a lot of cases. 2011-03-20T08:02:06 depends really, it's hard to judge how fast development is if you re not familiar with the lanuage 2011-03-20T08:02:17 *language 2011-03-20T08:05:50 *** kaemo has quit IRC (Read error: Operation timed out) 2011-03-20T08:05:51 *** antimatroid has joined #aichallenge 2011-03-20T08:06:41 yes. it also has a lot to do with the fact that java is very comfortable to be comfortable with, whenever you are looking for a job. 2011-03-20T08:06:55 wich tend to happen, once i'm hungry enough :p 2011-03-20T08:08:08 Still java is quite flexible. You can do fast algorithm. And nice architectures. And have access to huges libraries. And run on a lot of platforms effortlessly 2011-03-20T08:08:26 if applet where usable everywhere, it would be something :) 2011-03-20T08:08:49 but most firms block them. So people have to do javascript rather than applets O_o 2011-03-20T08:09:42 *** Stocha has quit IRC (Quit: Page closed) 2011-03-20T08:10:51 my internet is fail 2011-03-20T08:13:17 *** Zoo has joined #aichallenge 2011-03-20T08:37:38 *** Apophis_ has joined #aichallenge 2011-03-20T08:41:19 *** mceier has joined #aichallenge 2011-03-20T08:41:26 *** Apophis has quit IRC (Ping timeout: 252 seconds) 2011-03-20T09:05:48 *** boegel has joined #aichallenge 2011-03-20T09:32:24 *** boegel has quit IRC (Quit: Leaving) 2011-03-20T09:33:38 *** sigh has quit IRC (Remote host closed the connection) 2011-03-20T10:00:45 *** choas has joined #aichallenge 2011-03-20T10:12:41 *** dlila has joined #aichallenge 2011-03-20T10:26:31 *** olexs has joined #aichallenge 2011-03-20T10:43:24 *** olexs has left #aichallenge 2011-03-20T10:43:30 *** olexs has joined #aichallenge 2011-03-20T10:48:18 *** amriedle has joined #aichallenge 2011-03-20T11:24:41 *** boegel has joined #aichallenge 2011-03-20T11:26:43 *** jmpespxo1eax has joined #aichallenge 2011-03-20T11:28:36 *** jmpespxoreax has quit IRC (Ping timeout: 255 seconds) 2011-03-20T11:41:32 *** amriedle has quit IRC (Quit: Lost terminal) 2011-03-20T11:57:25 there's a new option? 2011-03-20T11:58:02 oh i see 2011-03-20T11:58:58 antimatroid: "new method is: your ant dies if it has more enemies in range than friends, not counting itself as a friend" <-- i think McLeopold and were working with that one before switching to option 1. IIRC, it's really easy to deadlock with it 2011-03-20T11:59:13 but i don't remember for sure 2011-03-20T12:16:46 *** delt0r_ has joined #aichallenge 2011-03-20T12:18:18 *** delt0r___ has quit IRC (Ping timeout: 250 seconds) 2011-03-20T12:48:40 *** Cyndre has quit IRC (Quit: Leaving) 2011-03-20T12:53:19 *** amstan has joined #aichallenge 2011-03-20T12:53:19 *** ChanServ sets mode: +o amstan 2011-03-20T12:58:20 jmcarthur: sigh came up with an even better one i think 2011-03-20T12:59:19 each ant starts the turn on 1 health, each ant dishes out 1/#enemiesinrange hit points to its enemies, if an ant runs out of hp that turn, it dies 2011-03-20T12:59:49 *** amstan has quit IRC (Ping timeout: 250 seconds) 2011-03-20T13:02:19 *** Kingpin13 has joined #aichallenge 2011-03-20T13:09:17 McLeopold: ^^ that do you think about that rule 2011-03-20T13:10:29 for a..b..a and a..b..c situations you get just b dying 2011-03-20T13:10:36 which is what i think we really want 2011-03-20T13:11:30 *** Mathnerd314 has joined #aichallenge 2011-03-20T13:12:34 hiya y'all 2011-03-20T13:12:45 any news for a next contest? 2011-03-20T13:21:22 *** mceier has quit IRC (Read error: Connection reset by peer) 2011-03-20T13:49:09 *** Umsturz has joined #aichallenge 2011-03-20T13:50:48 boegel: I can recall your name dimly. Have you been in the team of the last contest? 2011-03-20T14:02:01 boegel: We have an internal deadline as orientation. No heads will roll if it isn't met, but we hope everyone at least tries to meet the deadline. There were a lot of possible improvements over the last contest: Sandboxed source code compiles, games with more than 2 players, viewing replays without accessing the database or the truskill scoring system. In a week we'll probably see if what everyone worked on fits together. 2011-03-20T14:16:04 antimatroid/jmcarthur: for sigh's rule, it means an ant farther out has a more focused attack. 2011-03-20T14:21:46 *** Umsturz has quit IRC (Quit: Umsturz) 2011-03-20T14:41:46 *** Stocha has joined #aichallenge 2011-03-20T14:44:32 *** Stocha has quit IRC (Client Quit) 2011-03-20T15:04:51 Frontier: I wasn't part of the organizing team no, I was just wondering :) 2011-03-20T15:18:46 *** olexs has quit IRC (Quit: Leaving.) 2011-03-20T15:43:54 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Quit: Lost terminal) 2011-03-20T16:08:27 *** Apophis_ has quit IRC (Ping timeout: 252 seconds) 2011-03-20T16:09:56 *** Apophis has joined #aichallenge 2011-03-20T16:15:20 *** Accoun has quit IRC () 2011-03-20T16:31:55 *** Accoun has joined #aichallenge 2011-03-20T16:37:28 *** sigh has joined #aichallenge 2011-03-20T16:48:32 not *really* related but I bet this makes searches for google and ants go up, which could bring people to us if we were launched http://news.cnet.com/8301-30685_3-20043249-264.html 2011-03-20T17:02:02 *** sigh has quit IRC (Remote host closed the connection) 2011-03-20T17:12:31 oh noes. i calculated the cpu usage in the visualizer wrong. the implementations seem to use a rendering thread and i did not synchronize that with the javascript when timing the drawing routines. so the rendering is really a lot slower than estimated. 2011-03-20T17:20:21 *** boegel has quit IRC (Quit: Leaving) 2011-03-20T17:24:33 30 fps max in firefox, 70 fps max in chrome 2011-03-20T17:31:04 *** tapwater has joined #aichallenge 2011-03-20T17:31:18 *** JamesMG has quit IRC (Ping timeout: 246 seconds) 2011-03-20T17:57:21 *** choas has quit IRC (Quit: leaving) 2011-03-20T18:02:15 *** sigh has joined #aichallenge 2011-03-20T18:05:58 So the wiki was posted to reddit. For some reason. 2011-03-20T18:06:36 *** amstan has joined #aichallenge 2011-03-20T18:06:36 *** ChanServ sets mode: +o amstan 2011-03-20T18:32:08 *** Jizzard has joined #aichallenge 2011-03-20T18:33:03 hey guys 2011-03-20T18:37:21 *** Jizzard has quit IRC (Ping timeout: 252 seconds) 2011-03-20T18:40:31 antimatroid: that sounds like a neat suggestion. need to think about it a bit 2011-03-20T18:40:52 i like that it's a simple rule and, at least at first glance, seems like it might lead to interesting strategies 2011-03-20T18:41:03 *** MojoeMAN has joined #aichallenge 2011-03-20T18:42:02 *** Jizzard has joined #aichallenge 2011-03-20T18:43:02 *** antimatroid has quit IRC (Ping timeout: 260 seconds) 2011-03-20T18:44:54 *** MojoeMAN is now known as jhuynh85 2011-03-20T18:46:28 *** Zoo has quit IRC (Read error: Connection reset by peer) 2011-03-20T18:47:02 *** olexs has joined #aichallenge 2011-03-20T18:51:52 jmcarthur: what rule are we talking about here? 2011-03-20T18:52:48 sigh: the one that apparently you came up with 2011-03-20T18:52:54 i didn't read the backlog 2011-03-20T18:53:07 *** Jizzard has quit IRC (Ping timeout: 252 seconds) 2011-03-20T18:53:31 ah, the damage one... imo it is similar to option 1 but with a more obvious and intuitive motivation 2011-03-20T18:54:23 yeah 2011-03-20T18:54:29 i need to think about it some, but it sounds good 2011-03-20T18:54:38 The latest commit to the Code::Blocks IDE: "replaced cbMessageBox with AnnoyingDialog, when deleting entries in the Recent files/projects list in the Start page" <- :D 2011-03-20T18:58:05 *** Jizzard has joined #aichallenge 2011-03-20T18:58:35 *** antimatroid has joined #aichallenge 2011-03-20T19:00:06 jmcarthur: "antimatroid: "new method is: your ant dies if it has more enemies in range than friends, not counting itself as a friend" <-- i think McLeopold and were working with that one before switching to option 1. IIRC, it's really easy to deadlock with it" <-- that's odd because McLeopold was the one who brought it up yesterday 2011-03-20T19:00:31 pretend I escaped the inside quotes 2011-03-20T19:01:01 the #enemies > #friends method, that is 2011-03-20T19:02:29 sigh: i only remembered about that yesterday 2011-03-20T19:02:34 *** Jizzard has quit IRC (Ping timeout: 250 seconds) 2011-03-20T19:02:40 but i really don't think people are going to deadlock it 2011-03-20T19:02:54 did you see mcleopolds comment on your rule? 2011-03-20T19:03:04 yeah, what did he mean by that? 2011-03-20T19:03:15 not sure, they don't really have any more attacking power 2011-03-20T19:03:28 you can just defend with your ants 2011-03-20T19:03:52 I think he means that the further away ants are more likely to focus on one enemy, and thus take it out 2011-03-20T19:04:21 but that's similar to option 1? 2011-03-20T19:04:39 yeah, i don't think that's much different to 1 2011-03-20T19:05:05 while it's not the same as 1, it's very similar and encourages similar strategies imo 2011-03-20T19:05:13 while being easier to grasp/understand 2011-03-20T19:05:46 Just saw on Reddit there's going to be another one of these, I can't wait. 2011-03-20T19:06:25 haha, look forward to the wave over the next few days 2011-03-20T19:06:44 javagamer: yeah, it's still in dev though, so don't take the specs as a given yet :) 2011-03-20T19:07:19 Yeah, I saw, plus I have a few other things I want to get done, I think I'll try and be productive until things get finalized 2011-03-20T19:10:25 *** genericbob has joined #aichallenge 2011-03-20T19:10:53 Like the look of this game, is it going to be more than just 1v1s this time? 2011-03-20T19:12:41 yes, n-player with a fog of war :P 2011-03-20T19:12:44 with wrapped edges 2011-03-20T19:13:33 I saw that it said n-player, but the last game itself was n-player too. 2011-03-20T19:14:00 that was 2-player from the start though, anyway, yes there will be maps with more than 2 players :) 2011-03-20T19:14:04 http://pastebin.com/HA6EfpUm 2011-03-20T19:14:09 there's some sample symmetric maps from my generator 2011-03-20T19:14:33 . = land, % = water, a-z = players ant, the engine does the food spawning 2011-03-20T19:14:37 Ooh, sounds good. I absolutely love these challenges. 2011-03-20T19:15:20 so do i :) 2011-03-20T19:16:30 Didn't do too well on the last one, I think I'll try a higher level language this time. I wasted too much time trying to prematurely optimize things and not enough working on my strategy. 2011-03-20T19:16:49 *** BtbN has quit IRC (Read error: Operation timed out) 2011-03-20T19:18:36 what language did you use? 2011-03-20T19:18:44 *** BtbN has joined #aichallenge 2011-03-20T19:18:50 *** Stocha has joined #aichallenge 2011-03-20T19:18:56 i'm tempted to try and use the time to learn haskell more, but otherwise i'm just going to use c++ 2011-03-20T19:19:22 I'm guessing he used java? 2011-03-20T19:19:25 I'll probably do python unless I feel really daring and go for haskell 2011-03-20T19:19:41 Java originally, C++ in the last contest 2011-03-20T19:19:44 sigh: could just be an old username :P 2011-03-20T19:19:51 :) 2011-03-20T19:20:09 anyway, i need to get to uni, back later 2011-03-20T19:20:10 It is, from a long time ago, but waiting to change it until I find something really good 2011-03-20T19:20:31 i would use kirby or something, but too common 2011-03-20T19:20:37 haha 2011-03-20T19:20:53 I'm surprised I got to use 'sigh' in so many places 2011-03-20T19:21:00 yeah, it's a good one too :P 2011-03-20T19:21:15 i've found one other antimatroid handle through google 2011-03-20T19:21:19 otherwise i've been sweet with this 2011-03-20T19:21:22 o_O 2011-03-20T19:21:29 i used to go by "Duckling" on torrent sites aha 2011-03-20T19:26:37 I'm hoping for something really creative, but I haven't gotten any inspiration 2011-03-20T19:38:32 *** peripheraldevice has joined #aichallenge 2011-03-20T19:41:37 *** me0w has joined #aichallenge 2011-03-20T19:42:33 *** peripheraldevice has quit IRC (Client Quit) 2011-03-20T20:01:21 *** antiuni has joined #aichallenge 2011-03-20T20:05:59 *** antiuni has quit IRC (Client Quit) 2011-03-20T20:06:50 *** carrutstick has joined #aichallenge 2011-03-20T20:13:57 *** Stocha has quit IRC (Quit: Page closed) 2011-03-20T20:16:05 *** me0w has quit IRC (Quit: leaving) 2011-03-20T20:17:17 *** delt0r___ has joined #aichallenge 2011-03-20T20:18:50 *** delt0r_ has quit IRC (Ping timeout: 248 seconds) 2011-03-20T20:37:45 *** Apophis_ has joined #aichallenge 2011-03-20T20:41:17 *** Apophis has quit IRC (Ping timeout: 255 seconds) 2011-03-20T20:44:31 *** Chris_0076 has joined #aichallenge 2011-03-20T20:47:25 *** drhodes has joined #aichallenge 2011-03-20T20:48:04 McLeopold: ping 2011-03-20T20:48:10 hi 2011-03-20T20:48:26 i got a private message today on github 2011-03-20T20:48:33 McLeopold: http://pastebin.com/gKL4uGYb 2011-03-20T20:49:07 cool 2011-03-20T20:49:14 *** needsch has quit IRC (Quit: Leaving.) 2011-03-20T20:51:04 McLeopold: what did you mean by this: "for sigh's rule, it means an ant farther out has a more focused attack." 2011-03-20T20:51:32 as in, what point were you trying to make 2011-03-20T20:51:37 If you have a single ant, you want to make sure your attack only hits 1 enemy. So you want to stay at the edge of the attack range. 2011-03-20T20:52:10 In a big battle, ants close to the center are less useful, yet you still need a lot more ants to win. 2011-03-20T20:52:25 sure, but were you just making an observation, do you see it as a problem, or something else? 2011-03-20T20:52:27 It's like the hit point idea, but the healing is instant. :) 2011-03-20T20:52:42 No, I think this has the most promise right now. 2011-03-20T20:52:57 option 1 has the same issues 2011-03-20T20:53:20 I think this is similar strategy to option 1, but has the advantage of actually being intuitive 2011-03-20T20:54:16 McLeopold: cool how? it's a proprietary language that we must buy.. 2011-03-20T20:54:32 and i seriously doubt it can be hooked up in our system 2011-03-20T20:54:40 It's still cool. There is a student version. 2011-03-20T20:57:42 It looks like it produces C code? 2011-03-20T20:59:47 why don't you just ask the guy if there is a simple, free way to set it up on ubuntu? 2011-03-20T21:00:10 sigh: yeah, good idea 2011-03-20T21:03:55 https://github.com/aichallenge/aichallenge/issues#issue/32 2011-03-20T21:05:40 *** suicidolt has joined #aichallenge 2011-03-20T21:07:22 amstan: http://joule.ni.com/nidu/cds/view/p/id/1020/lang/en 2011-03-20T21:07:57 McLeopold: decent, can you add it to the issue? 2011-03-20T21:08:22 McLeopold: though.. it seems like we need a compiler too 2011-03-20T21:08:41 *** suicidolt has quit IRC (Client Quit) 2011-03-20T21:08:47 This Run-Time Engine must be installed on any Linux system where you plan to run *executables that you build* with the LabVIEW Application Builder. 2011-03-20T21:08:47 Yes 2011-03-20T21:09:02 It's like the jvm, i guess 2011-03-20T21:10:39 *** carrutstick has quit IRC (Quit: Leaving.) 2011-03-20T21:10:52 *** suicidolt has joined #aichallenge 2011-03-20T21:13:55 amstan: might might be able to do it if we allowed compiled submissions 2011-03-20T21:14:20 *** jhuynh85 has quit IRC (Ping timeout: 252 seconds) 2011-03-20T21:20:33 *** JaycobC has joined #aichallenge 2011-03-20T21:23:21 *** Todd200 has joined #aichallenge 2011-03-20T21:25:32 *** suicidolt has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.15/20110303190149]) 2011-03-20T21:28:15 *** Todd200 has left #aichallenge 2011-03-20T21:33:14 *** Mathnerd314 has quit IRC (Ping timeout: 264 seconds) 2011-03-20T21:41:09 *** Todd200 has joined #aichallenge 2011-03-20T21:41:32 *** Todd200 has left #aichallenge 2011-03-20T21:45:02 *** Parn has joined #aichallenge 2011-03-20T21:47:06 *** Parn has quit IRC (Client Quit) 2011-03-20T21:47:42 *** suicidolt has joined #aichallenge 2011-03-20T21:55:08 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-03-20T21:57:37 *** antiuni has joined #aichallenge 2011-03-20T21:59:25 McLeopold: think of the complications with different architectures (64-bit, windows/unix, libs) when it comes to binaries 2011-03-20T22:01:47 ah wait, the compiled files are just byte code that runs on any architecture with the runtime, right? 2011-03-20T22:05:21 aichallenge: Alexandru Stan epsilon * r6451e1d / (13 files in 4 dirs): Merge remote branch 'tjc/perlstarter' into epsilon - http://bit.ly/fXyct5 2011-03-20T22:05:40 Frontier: we have no idea in labview's case 2011-03-20T22:07:02 *** BrandonAGr has joined #aichallenge 2011-03-20T22:10:28 *** dlila has quit IRC (Quit: Leaving) 2011-03-20T22:14:36 *** tapwater has quit IRC (Quit: tapwater) 2011-03-20T22:18:37 *** BrandonAGr has quit IRC (Quit: Page closed) 2011-03-20T22:18:49 *** suicidolt has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.15/20110303190149]) 2011-03-20T22:19:47 Is there a more effeciant way to mark an area as unseen then looping over every map tile, and then looping over every ant and checking the distance? 2011-03-20T22:20:38 you can loop over each ant, and just check mark the surrounding tiles 2011-03-20T22:21:54 also, you might want to look at the get_vision function that the engine uses: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/ants.py#L170 2011-03-20T22:22:12 i.e. precalculate the maximum x and y distance from each ant, and then loop through those areas.... 2011-03-20T22:22:18 *** suicidolt has joined #aichallenge 2011-03-20T22:22:21 good idea ;) 2011-03-20T22:22:50 there are ways to make it more efficient, but haven't got around to that in the engine, but the current implementation is not bad 2011-03-20T22:24:07 ahh, not bad. 2011-03-20T22:31:22 *** McLeopold has left #aichallenge 2011-03-20T22:40:17 *** McLeopold has joined #aichallenge 2011-03-20T22:40:24 amstan: ping 2011-03-20T22:40:36 McLeopold: pong 2011-03-20T22:40:58 Frontier was saying you wanted the visualizer.php to be the frame? 2011-03-20T22:41:10 no? what where? 2011-03-20T22:41:29 hiho 2011-03-20T22:41:36 Anyway, we were talking about the appropriate place to but stuff like username and links to profile pages. 2011-03-20T22:41:56 I'd like to keep profile links out of the replay files, but include usernames 2011-03-20T22:42:22 I was also thinking the visualizer could have a few text tags around the canvas. 2011-03-20T22:43:10 *** Ttech has quit IRC (Quit: Your nick was overruled.) 2011-03-20T22:43:40 Frontier: it might just be easiest to go with the api method. 2011-03-20T22:44:21 Or, you could infer what the links are depending on the url the replay comes from? 2011-03-20T22:46:50 McLeopold: yeah.. no need for links in replay files, a username should suffice 2011-03-20T22:47:03 McLeopold: or.. user id? 2011-03-20T22:47:38 McLeopold: we used user id in the past to generate the links, but i think we could also do something like http://ai-contest.com/find_user.php?username=amstan&search=Go 2011-03-20T22:48:27 McLeopold: maybe change find_user to accept an exact match flag, that way you can just use the previous link to go to the profile directly 2011-03-20T22:49:39 I assume that some people download their replays and would like to see their opponents' names 2011-03-20T22:49:59 Yes, names in the replay, no id's. 2011-03-20T22:50:09 McLeopold: then we can easily modify find_user.php 2011-03-20T22:50:37 just watch out for the weird chars as usernames 2011-03-20T22:51:09 Frontier: for my tcp, if I can set the links, that would be nice. 2011-03-20T22:51:10 ...and optionally have full 'track-back' support, so they can get back to the server where they downloaded the replay from and watch it there or lookup the users. that's what the url in the replay would be nice for. 2011-03-20T22:51:18 *** Ttech has joined #aichallenge 2011-03-20T22:51:52 Okay. 2011-03-20T22:52:01 It doesn't hurt to store a little extra info. 2011-03-20T22:53:09 McLeopold: does the engine have the neccesary info available? 2011-03-20T22:53:38 The engine doesn't. That info would be tacked on by the system running the engine. 2011-03-20T22:53:50 *** suicidolt has quit IRC (Remote host closed the connection) 2011-03-20T22:54:10 The engine should never know about usernames or ids. 2011-03-20T22:54:54 how do I have to imagine this? the engine writes out a replay file and the system running the engine inserts lines about user ids and a back-track url? 2011-03-20T22:55:05 yes 2011-03-20T22:55:34 *** suicidolt has joined #aichallenge 2011-03-20T22:55:34 so, it would be nice if the spec had all the player stuff at the very top 2011-03-20T22:56:01 I know you like things to be in a certain order, but I think it should be flexible 2011-03-20T22:56:11 at the VERY top as in 'before the version and id'? 2011-03-20T22:56:24 either way 2011-03-20T22:56:56 *** suicidolt has quit IRC (Remote host closed the connection) 2011-03-20T22:57:00 http://en.wikipedia.org/wiki/Robustness_principle 2011-03-20T22:57:08 :p 2011-03-20T22:57:11 liberal in what you accept ^^ 2011-03-20T22:57:29 ok, let me see if i can nail you down on that link, hehe 2011-03-20T22:58:23 *** suicidolt has joined #aichallenge 2011-03-20T22:59:57 ..."as long as the meaning is clear" means that I have to know at least that i am reading an ants replay, not a planetwars one or tron or a future format. thus a version line should always be up front. :p Why not append the data? I think thats easier on the processor and file system as well 2011-03-20T23:00:31 our last lines atm are <# of players> * s 2011-03-20T23:00:40 okay 2011-03-20T23:00:59 but, for someone just looking at the file, username at the top would be nice 2011-03-20T23:01:18 btw. I'm liberal in accepting any number of blank lines, upper/lower-case and whitespace including tab in between options ^^ 2011-03-20T23:01:26 great 2011-03-20T23:02:07 what ever is calling the engine wouldn't know the replay version being produced 2011-03-20T23:02:24 so, a simple append or prepend is out 2011-03-20T23:02:41 oh man this starts to look like html on emails ^^ 2011-03-20T23:02:49 I think username info would be fairly universal, wouldn't it? 2011-03-20T23:04:08 gotta go, I'm sure whatever you come up with will be fine. 2011-03-20T23:04:11 it is, no doubt. but i would like to introduce some very reduced structure that clearly identifies the replay format. we have arguments over the format every time 2011-03-20T23:04:28 *** olexs has quit IRC (Quit: Leaving.) 2011-03-20T23:04:41 okay, cya 2011-03-20T23:04:48 ok, bye 2011-03-20T23:04:57 *** McLeopold has left #aichallenge 2011-03-20T23:06:27 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-20T23:07:29 *** suicidolt has quit IRC (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.15/20110303190149]) 2011-03-20T23:08:11 * Frontier thinks: in planetwars there was some kind of wrapper around the actual replay containing meta information. 2011-03-20T23:09:06 Frontier: in planetwars there was no replay file, the replay data was in the database 2011-03-20T23:09:08 engine -> replay -> manager adds metadata -> final data ? 2011-03-20T23:09:52 amstan: a zipped binary blob in the db or a file, where is the difference? ;) 2011-03-20T23:10:39 Frontier: because the binary blob in planet wars's case did not have any info such as users and so on, it was all fetched from the database by php 2011-03-20T23:11:54 i know, but the php created a single 'file' from that information. it escaped the \n in the replay and had a structure similar to a JSON file. 2011-03-20T23:12:05 "binary blob" => binary binary large object? 2011-03-20T23:12:15 sigh: huh? 2011-03-20T23:12:20 sigh: lol, you are right 2011-03-20T23:12:32 sigh: oh! lol 2011-03-20T23:12:53 i tend to refer to text blobs, too. 2011-03-20T23:12:58 :) 2011-03-20T23:13:20 there's a reason TEXT and BLOB are different data types :P 2011-03-20T23:14:40 btw either way, what is the problem with post-processing the replay file to include player info? 2011-03-20T23:15:37 amstan: I was interested in some container format that survives our endless arguments over replay formats every term ^^, so I thought a simple line with 'v ' could be the common header and the rest is variable. But now there is the manager trying to add metadata to the replay, not knowing about the actual format 2011-03-20T23:16:11 if you are worried about format the engine can output a placeholder 2011-03-20T23:18:17 that's a good idea. could it still mess up replay parsers? 2011-03-20T23:18:26 just make the placeholder a comment 2011-03-20T23:20:16 so it would be like "# " and the manager places... no wait, player names should probably be each on a single line 2011-03-20T23:20:41 it can be replaced by more than one line 2011-03-20T23:21:03 all it is doing is giving the manager a safe place to inject data 2011-03-20T23:21:23 but the manager doesn't know about the comment style in use :( 2011-03-20T23:21:35 it could be // or #, allow blocks or not 2011-03-20T23:21:56 ah we really expecting this thing to be that general? 2011-03-20T23:22:06 *are 2011-03-20T23:23:13 I always expect the worst. Maybe next term someone says '//' comments are better than '#' 2011-03-20T23:23:37 I don't think you have to worry about that 2011-03-20T23:23:45 if you want it to be that general, then you have to have actual inline placeholders 2011-03-20T23:24:18 which brings up even more problems 2011-03-20T23:24:31 or a simple container format 2011-03-20T23:25:16 ok, this is getting too complicated 2011-03-20T23:25:20 :( 2011-03-20T23:25:30 i said /simple/ 2011-03-20T23:25:35 what you want is the manager to be unaware of the replay format 2011-03-20T23:25:40 planet wars had that too 2011-03-20T23:25:57 antimatroid said, the system doesn't know about the format 2011-03-20T23:26:03 sorry, McLeopold 2011-03-20T23:26:10 therefore, it should not write anything that cares about the replay format, so it can't even insert data 2011-03-20T23:26:30 why do you need to comment extra data that the manager injects? 2011-03-20T23:26:46 just inject it at the end, the visualizer should be parsing them 2011-03-20T23:27:39 I was just suggesting a comment for the placeholder that the manager would replace with the actual data 2011-03-20T23:27:49 since they didn't want to but the data at the end 2011-03-20T23:28:24 It is nice to have the metadata on top when you open the file. 2011-03-20T23:28:30 contestbot: topic add Ants is on Reddit: http://goo.gl/NSpYJ 2011-03-20T23:28:30 *** contestbot changes topic to "Official Google AI Challenge: http://ai-contest.com/ || Channel Logs: http://contestbot.hypertriangle.com/ || Code Repo: http://github.com/aichallenge/aichallenge || Launch Checklist: https://github.com/aichallenge/aichallenge/issues/labels/launch || Ants is on Reddit: http://goo.gl/NSpYJ" 2011-03-20T23:28:42 But I actually prefer the append idea 2011-03-20T23:29:05 having the data at the top is nice 2011-03-20T23:29:23 but at the end it can never get in any conflict :) 2011-03-20T23:29:24 *shrug* 2011-03-20T23:29:35 it can still conflict 2011-03-20T23:29:48 not if the length of the original replay data is known 2011-03-20T23:30:05 waiting for the eof is lame anyway :p 2011-03-20T23:30:05 now you are getting complicated again 2011-03-20T23:30:10 how is it known 2011-03-20T23:30:17 * amstan points at http://goo.gl/NSpYJ 2011-03-20T23:30:35 the last lines are the scores. they start with 's' and there is exactly one line per player. 2011-03-20T23:30:42 if there is more data, it is the metadata 2011-03-20T23:30:57 so now you are back to careing about the replay format 2011-03-20T23:32:25 you asked how the file length is known. and i think the only constraints on the replay format should be a common header for all our games to identify them by and that the length can be computed from the data. 2011-03-20T23:33:08 then the manager can just append whatever it wants without replacing tokens in the file 2011-03-20T23:33:22 isn't that easier for everyone? 2011-03-20T23:33:32 ok, if the manager can append, why can't it prepend 2011-03-20T23:34:23 because then you have to put the same constraints on the metadata :) 2011-03-20T23:35:04 sure, but now it's at the top 2011-03-20T23:35:34 metadata is generally less important so it shouldn't be a requirement for a visualizer implementation to understand it before it can parse the actual data 2011-03-20T23:36:47 fair enough, but if it is easy to ignore it shouldn't be an issue 2011-03-20T23:37:34 ok, lets find a good way to skip the metadata 2011-03-20T23:38:09 "metadata <# of lines following>" would be one way 2011-03-20T23:38:59 (local replays may not even contain metadata and we end up with two possible first lines: the general 'metadata' line or the game specific 'v ants 1' line) 2011-03-20T23:39:58 simplest way is to prepend metadata lines with a special character 2011-03-20T23:40:08 like "!" so that only one char has to be checked 2011-03-20T23:40:56 or even #! so that a naive visualiser would ignore it anyway :) 2011-03-20T23:41:21 that is reserved for runnable script on unix 2011-03-20T23:42:06 #!/bin/bash would make the file executable in the bash shell, #!/bin/python runs a script through python 2011-03-20T23:42:25 sure, was just an example 2011-03-20T23:42:33 I only added the # as an afterthought 2011-03-20T23:43:26 my main point with that second point was that if you want to make it really easy for visualisers to ignore, and the metadata isn't relavent to parsing in anyway, then you can put it in a comment 2011-03-20T23:45:26 *** thagomizr has joined #aichallenge 2011-03-20T23:46:18 doesn't really matter, as long as it is easy to ignore the lines 2011-03-20T23:47:18 i understand your point. we would put another simple constraint on replay formats then. comment lines like say '#%' or '##' contain metadata and must not be used for 'real' comments 2011-03-20T23:47:55 *** chris__0076 has joined #aichallenge 2011-03-20T23:48:28 the manager can insert them anywhere it likes to 2011-03-20T23:49:22 if you always put the metadata at the top, you don't even need to constrain the comments that way as long as it is easy for the metadata parser to figure out where the metadata 2011-03-20T23:50:45 isn't it odd to have all the metadata and then the line that defines the file format ? ^^ 2011-03-20T23:50:46 *** Chris_0076 has quit IRC (Ping timeout: 255 seconds) 2011-03-20T23:51:10 nope, because the metadata is not part of the file format 2011-03-20T23:51:22 kk 2011-03-20T23:51:26 which is why i think it should not be mixed in the middle 2011-03-20T23:52:24 i am confused on why we need this.. 2011-03-20T23:52:44 amstan: why did planetwars need metadata? 2011-03-20T23:52:56 no.. why we need comments for metadata? 2011-03-20T23:53:02 why can't we just append it directly 2011-03-20T23:53:04 I think it's fine to just stick the options raw, personally 2011-03-20T23:53:14 like that ^ 2011-03-20T23:53:16 +1 2011-03-20T23:53:36 just frontier doesn't want the parser to have to be aware of it 2011-03-20T23:53:42 visualiser 2011-03-20T23:53:43 it is a matter of opinion. sigh and McLeopold want the metadata at the top, we want it at the end 2011-03-20T23:54:01 oh yes, that's the only thing that I actually want... I think it should be at the top 2011-03-20T23:54:29 everything else is just matching it up with concerns that others have :) 2011-03-20T23:54:50 top should be preffered, in case the file only partially loads 2011-03-20T23:55:22 i just said end because it was a more convenient word at the time 2011-03-20T23:55:36 lol? 2011-03-20T23:55:37 *sigh* 2011-03-20T23:55:51 *** zvitamiinz has joined #aichallenge 2011-03-20T23:56:04 i never gave a reason for end... don't just take my word for it if i don't explain why 2011-03-20T23:56:07 lol 2011-03-20T23:57:30 amstan: i want the metadata to be different from the replay format because a) local files don't have metadata b) the manager writes the metadata and doesn't know the replay format the engine writes out, so it needs a way to do it without getting in conflict with the actual data. 2011-03-20T23:57:51 Frontier: conflict how? 2011-03-20T23:58:06 Frontier: local files do have metadata, you have filenames for bots 2011-03-20T23:58:39 Frontier: why does manager need to know replay format? all it needs to do is append key-value lines with its metadata 2011-03-20T23:58:42 amstan: I'm thinking into the future. Every term we have a different replay format. Metadata should be placable in a way so that the manager doesn't need to be changed because the replay format changed 2011-03-20T23:59:01 if that was clear ^^ 2011-03-20T23:59:10 yeah, it was 2011-03-20T23:59:25 what about json? 2011-03-20T23:59:35 this is a wonderful bikeshed 2011-03-20T23:59:36 json is fine for me 2011-03-20T23:59:37 can we use that as a replay format? 2011-03-20T23:59:53 sigh: hmm? 2011-03-20T23:59:56 as a replay format? hmm.