2011-03-10T00:00:00 at some point 2011-03-10T00:00:02 huh? 2011-03-10T00:00:03 yeah... 2011-03-10T00:00:17 why not just make gameLoop, update, and finishTurn all the same thing? 2011-03-10T00:00:39 because it is good practice to make function do a single thing 2011-03-10T00:00:54 it would be easier for a beginner to understand the different parts 2011-03-10T00:00:57 well, mine has all that stuff separate, but it's still just one function call 2011-03-10T00:01:55 I'm thinking that if we can make all the starters more consistent, it will be easier to help people with questions about them 2011-03-10T00:01:59 like... you have a few monad transformers that have different parts of the functionality and they all implement the same interface. if you compose them then you get the complete functionality, but you can also stick your own components in to do additional or different things 2011-03-10T00:02:21 haskell is going to differ the most, I think 2011-03-10T00:02:41 i don't even think this naming scheme quite works for the library i'm making 2011-03-10T00:02:49 which is why if we can agree on a good spec for the starter bots, then we've covered most of the languages 2011-03-10T00:02:50 i could just try to match as close as i can 2011-03-10T00:02:56 hmm 2011-03-10T00:03:42 I didn't even mention separating a library from the bot logic, I should have 2011-03-10T00:07:26 well, the library i'm doing has different components for getting and parsing input, for updating seen water, for handling output, for handling static information about the game, and for managing turn-by-turn information and aborting the game loop cleanly while providing meaningful debugging information 2011-03-10T00:07:46 they are intended to be composed with each other, and they all contribute to a few common interfaces 2011-03-10T00:08:21 and i don't think it's really the kind of thing most starter writers will want to do for most languages 2011-03-10T00:09:50 ok 2011-03-10T00:10:18 jmcarthur: " are we wanting the starters to track water at all?" well yeah, you only get told about water once :P 2011-03-10T00:10:58 let me put in some info on the wiki about what should be tracked in the game state 2011-03-10T00:11:09 i am just tracking water 2011-03-10T00:11:09 antimatroid: i mean as opposed to making the developers handle that themselves 2011-03-10T00:11:34 i think we should at least track water in the starter bots 2011-03-10T00:11:54 my water tracking is optional/extensible 2011-03-10T00:12:22 so if somebody comes along and "knows better" they don't even suffer any performance penalty or boilerplate 2011-03-10T00:13:43 i expect anyone who cares about performance to write their own bot from scratch 2011-03-10T00:14:09 McLeopold: "Depending on the order of the ants, you may get different results with the same configuration of ants." <-- does that imply that we should be avoiding sending ants to collide with each other in the starters too? 2011-03-10T00:14:19 i think the objective of the starter bots should be to be as helpful as possible for beginners who may not be able to do their own rewrite 2011-03-10T00:14:20 antimatroid: i consider that a waste 2011-03-10T00:14:21 antimatroid: jmcarthur wants to be able to swap out pieces. 2011-03-10T00:14:38 jmcarthur: you simply can't release something that will work the way everyone wants 2011-03-10T00:14:41 antimatroid: That way it's not al or nothing = huge skill gap. 2011-03-10T00:14:48 antimatroid: you aren't used to good languages. shut up :) 2011-03-10T00:14:52 :P 2011-03-10T00:16:06 antimatroid: "i think the objective of the starter bots should be to be as helpful as possible for beginners who may not be able to do their own rewrite" <-- that is also one of my objectives 2011-03-10T00:16:38 jmcarthur: yes, avoid sending ants to the same square, but do it naively. 2011-03-10T00:16:51 but i'd like to do it without alienating the majority of developers who know what they are doing 2011-03-10T00:17:00 that is my objective, with a side note of being reasonably efficient 2011-03-10T00:17:31 i think people could re use most of my code if they wanted, but i imagine a lot of people will just write their own for c++ 2011-03-10T00:17:48 McLeopold: how naively? 2011-03-10T00:17:56 it should also showcase good design and best practices for the language 2011-03-10T00:18:09 McLeopold: we are avoiding collisions now? 2011-03-10T00:18:45 jmcarthur: 1 at a time, don't move on an ant, whether it has been given an order or not. 2011-03-10T00:18:55 i was considering making a component to somewhat intelligently avoid collisions, but that could be overstepping what a starter should be 2011-03-10T00:18:58 so, that means updating the state in the issue_order function 2011-03-10T00:19:30 McLeopold: so... the starter should be tracking the new positions of ants as it issues orders? doesn't sound very naive to me 2011-03-10T00:19:50 well, not starter-level naive 2011-03-10T00:20:23 Then I'll make it optional 2011-03-10T00:20:24 *** chemuduguntar has quit IRC (Ping timeout: 276 seconds) 2011-03-10T00:20:35 i was thinking "naive" might mean "don't move an ant to a position where another ant is already, regardless of whether it will be moving 2011-03-10T00:20:51 so if you have AA. and try to move both of them to the right, only the right one will move 2011-03-10T00:21:08 unless the right one moves first 2011-03-10T00:21:13 and that would be regardless of ordering 2011-03-10T00:21:32 maybe your language is too powerful :) 2011-03-10T00:21:42 no this is simpler 2011-03-10T00:21:46 *more naive 2011-03-10T00:21:58 you just don't update some internal game state just because an order was given 2011-03-10T00:22:03 but then, 2 ants could go to the same spot 2011-03-10T00:22:11 yeah. naive 2011-03-10T00:22:16 it's avoiding some collisions, not all 2011-03-10T00:22:35 okay, let's say the first item in the stategy guide will be avoiding collision 2011-03-10T00:22:51 that's what i thought the original plan was :) 2011-03-10T00:22:54 and we can specify that the starter should not include the logic 2011-03-10T00:23:15 my collision avoidance is as follows: don't move into a square containing an ant, once i've moved an ant, implement that move 2011-03-10T00:23:15 I've been losing track, which is why I started the wiki page 2011-03-10T00:24:03 what kind of collision avoidance should the strategy guide have? 2011-03-10T00:24:07 what does no logic? 2011-03-10T00:24:08 decent? 2011-03-10T00:24:09 mean? 2011-03-10T00:24:26 sigh: it means just don't look for ant-ant collisions 2011-03-10T00:24:30 only look for ant-water collisions 2011-03-10T00:24:40 oh ok 2011-03-10T00:24:53 it's a flexible definition of "no" 2011-03-10T00:25:19 i'm looking for an occurrence of "no logic" 2011-03-10T00:25:23 not seeing it 2011-03-10T00:25:32 "not include the logic" 2011-03-10T00:25:50 "not include the logic [for avoiding ant-ant collisions]" 2011-03-10T00:25:58 ah, my sucky reading comprehension 2011-03-10T00:27:24 "Optionally attempt to remember ants and food that was last seen." <-- sounds way beyond starter-level to me, too 2011-03-10T00:27:55 and sounds like something that could be a critical part of a bot... like, most people wouldn't want to stick to a default one anyway 2011-03-10T00:28:11 IMO, it's stuff like that that leads people to rewrite unnecessarily 2011-03-10T00:29:00 yeah, I remember planet wars had dody data structures which forced anyone serious to rewrite 2011-03-10T00:29:00 so, I should take it out? 2011-03-10T00:29:08 *dodgy 2011-03-10T00:29:33 just put stuff like that in a strategy guide? 2011-03-10T00:29:37 yeah, I lot of beginners felt obligated to keep the fleet class 2011-03-10T00:29:43 McLeopold: i would take it out unless you can put a very specific algorithm in instead of a vague description 2011-03-10T00:29:56 even then... maybe that is strategy guide material 2011-03-10T00:31:06 yeah i'd say it's strategy guide worthy 2011-03-10T00:31:16 also, there is no obviously optimal way to reason about unseen food and ants, right? 2011-03-10T00:31:19 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Quit: Lost terminal) 2011-03-10T00:31:41 no, I don't think so 2011-03-10T00:31:47 "determine difference between unseen area and land" <-- does that mean "distinguish between land and unseen squares which could actually be water"? 2011-03-10T00:32:14 yes, but it's gone now :) 2011-03-10T00:32:14 i was debating whether to add that 2011-03-10T00:32:16 ah 2011-03-10T00:32:32 remembering that might be a candidate for starter I think 2011-03-10T00:32:35 becuase that never changes 2011-03-10T00:32:46 yeah 2011-03-10T00:32:54 well 2011-03-10T00:32:56 not necessarily 2011-03-10T00:33:06 if maps are known to be symmetrical then a bot could try to guess 2011-03-10T00:33:20 how about a visible helper function that returns true/false for a square? 2011-03-10T00:33:23 heck, even if it's only known that *some* maps are symmetrical, a bot might try to guess 2011-03-10T00:33:24 symetreical maps are not part of the spec, right? 2011-03-10T00:33:30 no 2011-03-10T00:33:30 they don't need to be 2011-03-10T00:33:31 I can't spell 2011-03-10T00:33:40 it could just be some fraction of maps are symmetrical 2011-03-10T00:33:49 *happen to be 2011-03-10T00:33:51 then they shouldn't be assumed in the starter pack, or strategy guide 2011-03-10T00:34:01 i wasn't suggesting that assumption 2011-03-10T00:34:03 when were they assumed? 2011-03-10T00:34:11 i was just saying that it's not something that necessarily stays static 2011-03-10T00:34:14 i think we should play around with both and see what works both 2011-03-10T00:34:19 if both work well, we can do a combination 2011-03-10T00:34:29 works best* 2011-03-10T00:34:35 I was just inferring things I shouldn't again when jmcarthur said "if maps are known to be symmetrical then a bot could try to guess" 2011-03-10T00:34:42 sigh: it was in response to "because that never changes" 2011-03-10T00:35:11 i see 2011-03-10T00:35:35 like, it's true that whether or not a square has been seen never changes 2011-03-10T00:36:05 but that doesn't mean that you will always want this ternary state for each square of the bot's internal map 2011-03-10T00:36:13 sure 2011-03-10T00:36:20 what? 2011-03-10T00:36:21 you may want to eventually put some probabilities in there or something instead 2011-03-10T00:36:27 when you see a square, doesn't that value cahnge? 2011-03-10T00:36:30 the first time 2011-03-10T00:37:18 like if the bot hasn't seen enough of the map to determine whether or not it's symmetrical, it's very unsure of things, but once it has seen enough to be 90% sure that it's symmetrical, it can go ahead and guess most of the rest of the water positions with decent accuracy 2011-03-10T00:37:36 antimatroid: this is about whether or not the *code* for that will change throughout the contest 2011-03-10T00:37:49 jmcarthur: it's a bit of work to find out if it's symmetrical 2011-03-10T00:38:01 you need to find rtranslate and ctranslate from pattern matching? 2011-03-10T00:38:02 antimatroid: not that much. just see if anything appears to be repeating 2011-03-10T00:38:15 sure why not? 2011-03-10T00:38:24 it may be a little involved, but probably worth it 2011-03-10T00:38:31 jmcarthur: oh, I was talking about the knowledge about the squares during a game... didn't even realize you were talking about the *code* during the contest 2011-03-10T00:38:37 yes, i'm just pointing out it isn't entirely trivial :) 2011-03-10T00:38:45 sigh: ah, that's why we were talking over each other's heads then 2011-03-10T00:38:58 antimatroid: doesn't mean it won't happen ;) 2011-03-10T00:39:15 i suspect one could maybe just hash nxn square blocks and find number of appearances? 2011-03-10T00:39:20 you could probably do it well like that 2011-03-10T00:39:29 i know it will happen, i intend on doing it myself 2011-03-10T00:39:36 my point was essentially, once you see a water square then you know for sure that it will be there for the rest of the game, and it is obvious how to handle that 2011-03-10T00:39:37 hashing would be problematic if there is just one square in there you've missed 2011-03-10T00:39:42 unlike ants and food 2011-03-10T00:39:46 Okay, more changes, refresh and read 2011-03-10T00:39:53 sigh: true 2011-03-10T00:40:31 jmcarthur: true, i don't think it'll be very easy at all :P 2011-03-10T00:40:59 are you talking about detecting symettries? 2011-03-10T00:41:03 that's one of the things i like about this game, there are LOTS of obvious things to do that will make the bot smarter 2011-03-10T00:41:04 antimatroid: it's another thing to put in the strategy guide 2011-03-10T00:41:11 and require playing around with different things 2011-03-10T00:41:20 McLeopold: ah, you meant for "game loop" to actually mean a real loop and not a function call of some sort 2011-03-10T00:41:27 i misinterpreted 2011-03-10T00:41:52 yes 2011-03-10T00:42:12 should I clarify? 2011-03-10T00:42:23 well, it's listed under "Core Functions" 2011-03-10T00:42:47 yeah, function in the broader sense of the word 2011-03-10T00:42:53 "Sub Routine"? 2011-03-10T00:43:17 "Core Functionality"? 2011-03-10T00:43:47 I watched a bit of Stargate Universe on Monday when they used that term in the show. I laughed and told my friend they were programming in BASIC. 2011-03-10T00:44:50 i'm avoiding writing a game loop as part of the library. the starter will have one, but with the intent to be redesigned as needed 2011-03-10T00:45:34 I put a game loop in the java and python bots. 2011-03-10T00:45:56 They don't have to use it, but it is good enough that even serious programmers could just stick with it for the contest. 2011-03-10T00:46:03 well, there will be one in the starter. it's just not "core functionality" in the sense that it's basically just a one-liner in the main fail 2011-03-10T00:46:07 s/fail/file/ 2011-03-10T00:46:34 oh yeah, I was going to talk about a library 2011-03-10T00:46:36 forever $ 2011-03-10T00:48:07 is haskell OOP? 2011-03-10T00:48:35 haskell... can be used to make OOP code. however, it's rarely the best design 2011-03-10T00:48:57 in any case, most OOP programmers wouldn't recognize it as the kind of OOP they know and love 2011-03-10T00:49:30 at least, not the opinionated ones 2011-03-10T00:49:58 okay, more changes, refresh and read. 2011-03-10T00:50:10 antimatroid: I'm going to hack apart your game spec 2011-03-10T00:50:22 go for it 2011-03-10T00:50:37 you can implement message passing or F-coalgebras in haskell, which are two common definitions for OOP, but most people don't even know what an F-coalgebra is 2011-03-10T00:50:41 I'm just going to separate it into sub pages 2011-03-10T00:50:59 I'm one of them. :) 2011-03-10T00:51:46 heck, i only know enough about it to make a simple object and know what it is, but i don't know any deep theory about it or anything 2011-03-10T00:52:17 i like it more than message passing though. more amenable to static type checking and purity :) 2011-03-10T00:52:30 *** delt0r_ has quit IRC (Read error: Operation timed out) 2011-03-10T00:53:05 okay, i approve of the gist of the starter guide 2011-03-10T00:53:06 *** delt0r_ has joined #aichallenge 2011-03-10T00:53:37 i think it's phrased sufficiently that the haskell starter needn't be considered an exceptional case 2011-03-10T00:53:41 okay 2011-03-10T00:53:43 good 2011-03-10T00:54:18 ooh, forgot the timing mechanism 2011-03-10T00:54:36 ah yeah. i still need to add a component for that to my new lib 2011-03-10T00:54:53 i'm basically just providing a way to get the amount of time remaining for the current turn 2011-03-10T00:55:16 amstan: if you look at the github wiki, my Ants Starter Pack Guide is red, I can't figure out how to make it blue? 2011-03-10T00:55:17 i debated adding some sort of interruptive timer, but i think that's unnecessary 2011-03-10T00:55:42 I think just a true/false function to determine if you should still loop through ants is good enough 2011-03-10T00:55:59 It give an example for the language 2011-03-10T00:56:06 err... how does the function know whether to go through the loop though? 2011-03-10T00:56:24 oh, you mean to demonstrate the timer in the bot? 2011-03-10T00:56:27 *in the starter? 2011-03-10T00:56:40 yeah, all language have very different "get_time" functions 2011-03-10T00:56:55 it could be a part of the starter interface though 2011-03-10T00:57:12 I'll add it to the optional list of functions 2011-03-10T00:57:14 like just have a timeRemaining function 2011-03-10T00:57:17 yeah, optional is good 2011-03-10T00:57:36 what kind of time are we measuing? 2011-03-10T00:57:41 measuring? 2011-03-10T00:57:42 wall clock 2011-03-10T00:57:51 milliseconds 2011-03-10T00:57:57 so it matches the bot input 2011-03-10T00:58:00 hehe 2011-03-10T00:58:12 wall clock should be more reliable this time around if we make the bots execute sequentially and pause them between turns 2011-03-10T00:58:20 hopefully 2011-03-10T00:58:22 s/reliable/reliable and fair/ 2011-03-10T00:58:31 why are they executed sequentially? 2011-03-10T00:58:38 more bots than cores 2011-03-10T00:58:42 in a game 2011-03-10T00:58:48 i see 2011-03-10T00:59:17 just read some of the recent conversation; why doesn't the engine treat all ant moves as simultaneous? 2011-03-10T00:59:29 janzert: the *engine* should 2011-03-10T00:59:43 janzert: this is about the bots view of issuing orders 2011-03-10T00:59:48 ahh, must have misread something then 2011-03-10T01:00:02 s/this is/that was/ 2011-03-10T01:00:07 well, any order or err, orders should be fine 2011-03-10T01:00:29 i.e. lead to the same result 2011-03-10T01:00:51 janzert: the proposal was to have some internal representation of the map in the bot such that ants are moved immediately when orders are issued, which is a naive way to look for collisions 2011-03-10T01:01:20 that way the bot can avoid actually issuing orders resulting in collisions 2011-03-10T01:01:20 ahh, ok so something easy but not quite completely correct 2011-03-10T01:01:25 yeah 2011-03-10T01:01:54 but when you phrase it that way it makes me think we should definitely not be encouraging beginners to run with it like that 2011-03-10T01:02:22 we should encourage them to notice the mistake and fix it 2011-03-10T01:02:36 McLeopold: yes, if we were to include that in the first place 2011-03-10T01:02:47 janzert: anyway, the final decision i think was that collision avoidance should be part of the strategy guide and not the starter itself 2011-03-10T01:03:05 ok 2011-03-10T01:03:29 I was mostly just afraid that was the way the engine was actually handling it 2011-03-10T01:03:46 that would be pretty bad 2011-03-10T01:03:53 * jmcarthur hopes that's not the way it works :) 2011-03-10T01:05:12 McLeopold: so ant-water collisions actually result in the engine ignoring the move altogether, right? what about ant-ant collisions? do they still kill the ants, or do they prevent one or both from moving? 2011-03-10T01:05:32 ant-ant collisions kill the ants 2011-03-10T01:05:48 ant-water is an invalid order and is ignored 2011-03-10T01:06:15 McLeopold: i was thinking... given the former property of the engine, i could just send four orders for each square on the map, regardless of the actual game state, and satisfy the game logic requirements of the starter guide :P 2011-03-10T01:06:32 hehe 2011-03-10T01:06:36 s/former property/ant-water behavior/ 2011-03-10T01:07:07 you also need the 'ignore all invalid orders' property 2011-03-10T01:07:20 janzert: that's in there already. i had checked the source when i first thought of it 2011-03-10T01:07:27 hmm 2011-03-10T01:07:32 i don't know about all invalid orders 2011-03-10T01:07:38 but redundant orders are ignored, i know 2011-03-10T01:07:47 i think simply invalid ones are too though 2011-03-10T01:07:59 jmcarthur: yep, your right 2011-03-10T01:08:53 since this is multiplayer, we need to try and keep all bots participating, so there will be no bots removed from play do to bad output 2011-03-10T01:09:12 unless the bad output is infinite... 2011-03-10T01:09:22 in which case they will time out 2011-03-10T01:09:30 so just count the moves and it it's infinity they lose ;) 2011-03-10T01:09:46 *if 2011-03-10T01:09:53 yes, but what magnitude of infinity? 2011-03-10T01:10:08 what if they issue an uncountably infinite number of moves? 2011-03-10T01:10:17 we're just operating on the extended reals here. nothing fancy! 2011-03-10T01:10:26 *extended naturals 2011-03-10T01:10:29 sigh: I'll just map them to the set of integers 2011-03-10T01:10:41 McLeopold: good idea 2011-03-10T01:11:17 negative integers, to rub it in 2011-03-10T01:11:28 that's their score :P 2011-03-10T01:11:44 hmm... - 1 point for each bad order? 2011-03-10T01:12:16 they should get imaginary points for bad orders 2011-03-10T01:12:19 bad orders are obviously bugs. i wouldn't mind if it nullified *all* their points, personally 2011-03-10T01:12:32 it would still mean they play to the end 2011-03-10T01:12:38 so that other bots get decent scores 2011-03-10T01:12:44 yes, and keep the individual game balance 2011-03-10T01:12:51 ahhh... the dead but they don't even know it way of dealing with things 2011-03-10T01:13:28 -1 point per bad move sounds reasonable to me, really 2011-03-10T01:13:44 we could split their bot's input into a parallel universe game than never ended. 2011-03-10T01:13:44 but maybe restrict all final scores to non-negative numbers 2011-03-10T01:13:52 I would rather just give them 0 points 2011-03-10T01:14:07 makes no difference to me at all 2011-03-10T01:14:22 buggy bots are buggy and they deserve whatever crap scores they get 2011-03-10T01:14:22 why should a buggy bot get points? 2011-03-10T01:14:28 maybe a too many bad orders threshold 2011-03-10T01:14:56 nah, threshold just complicats things 2011-03-10T01:15:03 if we do this, i don't think ant-water collisions should be considered invalid such that they make you lose points 2011-03-10T01:15:13 it should just kill the ant 2011-03-10T01:15:19 I agree 2011-03-10T01:15:26 i mean logically ants should just drown 2011-03-10T01:15:43 it makes sense 2011-03-10T01:16:01 what if we go back to walls? 2011-03-10T01:16:30 but orders for ants that don't exist or for ants that have already been given orders should be "invalid" including whatever penalty that implies 2011-03-10T01:16:36 then we have the suicide to prevent enemy points issue 2011-03-10T01:16:41 yes 2011-03-10T01:16:56 not sure that's so terrible, myself 2011-03-10T01:17:03 I think it's good 2011-03-10T01:17:19 it's not very ant-like i guess... 2011-03-10T01:17:23 but neither is anything else about the game 2011-03-10T01:17:37 that is the nature of points, not ants 2011-03-10T01:17:42 or walls/water 2011-03-10T01:18:06 well, it's not ant-like to commit suicide in the name of points because ants don't care about points, especially not enough to commit suicide over them :P 2011-03-10T01:18:36 if you say that, then it's not ant-like to care about points at all 2011-03-10T01:18:42 i agree 2011-03-10T01:18:50 it might be ant-like to prefer a death by water than to be tortured by the enemy 2011-03-10T01:18:53 but suicides are even less ant-like 2011-03-10T01:18:56 if you want a justification :P 2011-03-10T01:18:57 heh 2011-03-10T01:19:50 having invalid orders reflect score changes that are not reflected in play behavior has a strong potential for weird ratings effects 2011-03-10T01:20:07 i agree 2011-03-10T01:20:17 i think it should be all or nothing 2011-03-10T01:20:37 they either get 0 score, or their score is not affected 2011-03-10T01:20:59 e.g. a bot that play fairly strongly but also issues lots invalid orders is going to continually play bots that it easily wipes out 2011-03-10T01:22:05 janzert: whoever comes in "second" will get the benefit 2011-03-10T01:22:26 meaning the strong bot could choose the ordering it wants 2011-03-10T01:22:42 well, a strong bot could do that anyway 2011-03-10T01:24:30 that's always going to be the case, yeah 2011-03-10T01:24:50 it's not a strong bot if its scores are miserable 2011-03-10T01:24:51 there just really is no ideal way to deal with badly behaving bots, TANSTAAFL is in full effect here 2011-03-10T01:25:32 is cooperation between bots explicitly discouraged? 2011-03-10T01:25:35 the ability to wipe out opposing teams of ants is insufficient to be considered a strong bot, is all i mean 2011-03-10T01:25:38 sigh: no 2011-03-10T01:25:45 interesting 2011-03-10T01:25:49 sigh: no, but i doubt it will happen much or at all 2011-03-10T01:25:57 I'm planning it? 2011-03-10T01:26:04 really? 2011-03-10T01:26:10 s/?/>:)/g 2011-03-10T01:26:12 how does that even work? 2011-03-10T01:26:24 it would be fairly easy to develop a protocol to detect *friendly* bots 2011-03-10T01:26:30 does your plan require working it out with other developers in advance? 2011-03-10T01:26:33 It will be an opt-in public feature. 2011-03-10T01:26:36 ah yeah with a protocol 2011-03-10T01:26:44 well in that case it's interesting 2011-03-10T01:27:00 For *python* programmers only >:) 2011-03-10T01:27:04 haha 2011-03-10T01:27:05 sigh: you mean to detect bots that are privy to your handshake at least 2011-03-10T01:27:14 jmcarthur: yes 2011-03-10T01:27:27 communication is also exploitable >:) 2011-03-10T01:27:40 yes, but fog of war give some cover 2011-03-10T01:27:59 I already have a protocol worked out. 2011-03-10T01:28:02 time to authentication schemes :P 2011-03-10T01:28:03 haha 2011-03-10T01:29:10 The real problem is what to communicate and how to get as much information per turn without wasting too many ants. 2011-03-10T01:29:22 *** BtbN has quit IRC (Remote host closed the connection) 2011-03-10T01:29:37 but if you have a friendly you are not fighting, then you probably have some left over anyway 2011-03-10T01:29:42 true, but you can afford to waste quite a few ants if you are working together 2011-03-10T01:29:46 yeah 2011-03-10T01:30:04 you could dedicate a bunch to communication 2011-03-10T01:30:15 maybe I'll write the protocol in malbloge... 2011-03-10T01:30:16 but hmm... only 2 bits/ant/turn? 2011-03-10T01:30:26 is that right? 2011-03-10T01:30:59 maybe less? you can't have them wondering too far 2011-03-10T01:31:08 yeah, I meant as a maximum 2011-03-10T01:32:07 move in one of 4 directions or stand still, 2bits + 1 maximum I believe 2011-03-10T01:32:18 we're talking pretty low bandwidth 2011-03-10T01:32:56 it's tougher than that due to other aspects of the game, like sight range, combat range, food, number of ants in area, etc. 2011-03-10T01:33:09 just knowing they will hold a truce is powerful enough 2011-03-10T01:33:21 i think we'd be lucky to get an average of 1 bit per visible ant 2011-03-10T01:34:22 janzert: I'm going to totally merge the branch sometime tomorrow. 2011-03-10T01:34:30 ish 2011-03-10T01:34:35 great :) 2011-03-10T01:34:37 ish 2011-03-10T01:34:41 :P 2011-03-10T01:35:04 and I'm totally ignoring all sandbox/jail stuff, so if you aren't going to do it, we need another recruite 2011-03-10T01:35:24 amstan: can you organize another all hands meeting? 2011-03-10T01:36:16 just keep what we had last time for now and we'll see if someone comes along 2011-03-10T01:36:37 okay, it will work, but it won't be sequential 2011-03-10T01:36:49 *** sigh has left #aichallenge ("Leaving") 2011-03-10T01:36:58 oh, yeah that part will be a problem 2011-03-10T01:37:20 *** McLeopold has quit IRC (Read error: Connection reset by peer) 2011-03-10T01:37:52 what exactly needs doing sandbox-wise? are there open tickets about it? 2011-03-10T01:38:14 the whole thing needs a good going over 2011-03-10T01:38:37 the part McLeopold was mentioning is that it needs an interface to suspend and restart bots 2011-03-10T01:39:04 which is completely nonexistent at the moment 2011-03-10T01:39:42 are we still on the old sadbox.py thing? 2011-03-10T01:40:50 yes 2011-03-10T01:41:17 actually I don't think even that is being used at the moment 2011-03-10T01:42:37 as I was about to say before McLeopold got disconnected, first thing I suppose is just get something end to end up and running 2011-03-10T02:20:16 aichallenge: janzert epsilon * r1d19525 / (3 files): More server setup script work - http://bit.ly/ewW8HH 2011-03-10T02:22:23 *** Palmik has joined #aichallenge 2011-03-10T02:42:51 *** amstan has quit IRC (Remote host closed the connection) 2011-03-10T02:46:37 *** sigh has joined #aichallenge 2011-03-10T02:48:09 *** delt0r___ has joined #aichallenge 2011-03-10T02:49:22 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-03-10T03:10:36 *** delt0r_ has joined #aichallenge 2011-03-10T03:12:13 *** delt0r___ has quit IRC (Ping timeout: 255 seconds) 2011-03-10T03:36:09 *** aerique has joined #aichallenge 2011-03-10T04:02:09 *** AlliedEnvy has quit IRC (Read error: No route to host) 2011-03-10T04:13:08 antimatroid: have you done anything else besides feeding your bot data on standard input to make sure it works? 2011-03-10T04:16:09 *** Kingpin13 has joined #aichallenge 2011-03-10T04:18:18 *** AlliedEnvy has joined #aichallenge 2011-03-10T04:28:05 *** boegel has joined #aichallenge 2011-03-10T04:33:41 *** Frontier has joined #aichallenge 2011-03-10T04:38:42 sigh: I got your notice, I don't know if there was a reason behind it. We can change that, it is probably more straight forward to parse if one doesn't have to extract the number and subtract one. Although with the right RegExp it is a one-liner. 2011-03-10T04:41:38 Frontier: having to parse the key instead of the value just seem like a kludge to me 2011-03-10T04:42:33 also, having a static set of keys is neater 2011-03-10T04:43:50 Is McLeopold around? Ok.... I think it was his idea :p 2011-03-10T04:44:14 McLeopold agreed with me :) 2011-03-10T04:44:25 if you look at the chat logs around the time I sent the message 2011-03-10T04:45:16 Could you change the Wiki accordingly? 2011-03-10T04:45:55 I haven't edited the wiki before, but I'll give it a shot 2011-03-10T04:48:42 the ai-contest is the one big education event :-). you learn how to use git, the wiki, a dozen programming languages and international project management 2011-03-10T04:49:42 yeah :) 2011-03-10T04:50:02 this is the first time I've used git to collaborate with anyone 2011-03-10T04:50:22 ok, changed 2011-03-10T05:08:06 *** mega1 has joined #aichallenge 2011-03-10T05:15:41 once a bot has received the end turn data it can just die, aight? the game engine doesn't expect a 'go' or anything 2011-03-10T05:24:58 I wonder if the engine even lets the bot read the end game state or just say, "so, match is over you can read the results at home" 2011-03-10T05:26:30 Frontier: right, good point 2011-03-10T05:48:14 *** phreeza has joined #aichallenge 2011-03-10T05:48:39 @later tell amstan I've issued a pull request for the first version of the Common Lisp example bot. 2011-03-10T05:48:40 aerique: OK 2011-03-10T05:49:17 hi 2011-03-10T05:59:17 *** UncleVasya has joined #aichallenge 2011-03-10T06:03:25 *** phreeza has quit IRC (Quit: Computer has gone to sleep) 2011-03-10T06:49:08 aerique: i have not, why? 2011-03-10T06:49:17 *** phreeza has joined #aichallenge 2011-03-10T06:51:19 antimatroid: just wondering whether i had missed any options 2011-03-10T06:51:22 *** antimatroid1 has joined #aichallenge 2011-03-10T06:54:14 *** antimatroid has quit IRC (Ping timeout: 276 seconds) 2011-03-10T07:12:07 *** Palmik has quit IRC (Ping timeout: 255 seconds) 2011-03-10T07:22:41 anyone here familiar with conflict resolution in the game? 2011-03-10T07:22:46 antimatroid? 2011-03-10T07:29:10 yeah shoot 2011-03-10T07:29:23 i'm pretty sure it's using option 2 atm 2011-03-10T07:29:33 slightly annoying, but it was the second option to come up 2011-03-10T07:30:14 sigh: ^^ 2011-03-10T07:30:42 it's this one: "If more than one ant is in a square once all moves have been made, each of these ants automatically dies." 2011-03-10T07:30:43 ? 2011-03-10T07:30:51 that's what's on the spec sheet 2011-03-10T07:31:32 yeah, that's for ant collisions 2011-03-10T07:31:59 and it is supposed to be order independent, right? 2011-03-10T07:32:04 yes 2011-03-10T07:32:09 is it not? 2011-03-10T07:32:29 I don't think ants.py is 2011-03-10T07:32:43 hmm, it should move all ants, then kill any ants in a square with more than one 2011-03-10T07:32:48 relevant function: https://github.com/aichallenge/aichallenge/blob/epsilon/ants/ants.py#L299 2011-03-10T07:33:20 do_orders is called for each player in turn, then resolve_orders is called after all players have been processed 2011-03-10T07:34:01 problem is that checking for conflicts (L338) occurs before all players have made their moves 2011-03-10T07:34:12 hmmm, can you raise issues on git for mcleopold? 2011-03-10T07:34:17 that is a big bug 2011-03-10T07:34:40 if it's an issue, I'm fixing it as part of the changes I'm currently making 2011-03-10T07:34:48 okay cool 2011-03-10T07:34:52 that's definitely an issue 2011-03-10T07:35:29 but can you see the issue I am talking about? or you don't want to decipher the code? 2011-03-10T07:35:31 :P 2011-03-10T07:36:14 how do I raise an issue? 2011-03-10T07:36:18 i haven't deciphered it all, but if it's calling do_orders sequentially and looking for conflicts when it checks, i know how it can break :P 2011-03-10T07:36:26 i have no idea how to raise an issue, that's why i was asking if you can :P 2011-03-10T07:36:31 haha 2011-03-10T07:36:47 you can do the later tell thing 2011-03-10T07:36:50 I should probably raise an issue rather than @later tell in the channel 2011-03-10T07:37:13 At least it is row,col now :) 2011-03-10T07:37:30 I'm ok with row,col and x,y, but not with col,row or y,x 2011-03-10T07:37:46 sigh: there's a create issue link on git in the issues section 2011-03-10T07:38:20 Frontier: if you read maps from file, or output a char map to the screen and use x,y, you HAVE to use y,x too, that's why i think it's inferior and don't understand programmers using it 2011-03-10T07:38:28 i'd be fine with it simply being a difference in standard 2011-03-10T07:38:28 meh 2011-03-10T07:40:11 @later tell McLeopold possible bug in ants.py, read channel logs from 2011-03-10T07:22:41 for details, please confirm... I will fix 2011-03-10T07:40:11 sigh: As you wish. 2011-03-10T07:40:31 maybe it is a bike shed, too :( 2011-03-10T07:41:20 sigh: you don't need confirmation, the current method is clearly wrong :P 2011-03-10T07:43:51 *** BtbN has joined #aichallenge 2011-03-10T08:05:20 antimatroid1: what causes conflicts to show up on the map? 2011-03-10T08:08:56 conflicts? when more than one ant ends up in the same square after movement? 2011-03-10T08:09:05 erm...? 2011-03-10T08:10:17 in other words a bot's stupidness 2011-03-10T08:12:40 antimatroid1: in ants.py conflicts are show in the outptu the bot? 2011-03-10T08:13:04 with prefix "d" 2011-03-10T08:13:20 oh, that's just deaths? 2011-03-10T08:13:31 wait, we're told about ants that died from collisions? 2011-03-10T08:14:00 hmm, i'd prefer to distinguish those from ants that died from battle 2011-03-10T08:14:13 explicitly that is 2011-03-10T08:14:22 I don't know... I'm trying to figure out wtf a 600 python script is doing 2011-03-10T08:14:27 :P 2011-03-10T08:14:28 *600 line 2011-03-10T08:17:42 ok, I understand what he's doing now 2011-03-10T08:18:57 we had a sweet game going saturday night, tree darts 2011-03-10T08:19:01 the previous person to throw the dart is the "climber", if the current thrower gets the dart in the tree, the climber has to go and get it 2011-03-10T08:20:17 was alcohol involved? 2011-03-10T08:20:34 well yeah :P 2011-03-10T08:20:36 :D 2011-03-10T08:20:50 it's stil a sweet game 2011-03-10T08:20:58 i've done a surprising amount of tree climbing this year 2011-03-10T08:20:59 yea sounds fun 2011-03-10T08:21:22 considering i can't remember the last time i climbed one prior to this year 2011-03-10T08:23:56 i think i'm to heavy now 2011-03-10T08:24:03 too* 2011-03-10T08:24:24 branches would break 2011-03-10T08:25:57 *** antimatroid has joined #aichallenge 2011-03-10T08:26:34 *** antimatroid1 has quit IRC (Ping timeout: 248 seconds) 2011-03-10T08:47:55 @later tell McLeopold my current progress is here: https://github.com/sigh/aichallenge/blob/replay/ants/ants.py In particular, I think I fixed the bug I found, please review... overall the work I've done is in preparation for outputting the new replay format, I will continue work on the tomorrow 2011-03-10T08:47:55 sigh: I come to serve. 2011-03-10T08:48:50 *** sigh has quit IRC (Remote host closed the connection) 2011-03-10T08:53:07 *** delt0r___ has joined #aichallenge 2011-03-10T08:55:09 *** delt0r_ has quit IRC (Ping timeout: 276 seconds) 2011-03-10T09:30:49 *** |UncleVasya| <|UncleVasya|!kvirc@178-133-51-169.dialup.umc.net.ua> has joined #aichallenge 2011-03-10T09:34:16 *** UncleVasya has quit IRC (Ping timeout: 260 seconds) 2011-03-10T10:07:49 *** amstan has joined #aichallenge 2011-03-10T10:07:49 *** ChanServ sets mode: +o amstan 2011-03-10T10:17:35 *** amstan has quit IRC (Ping timeout: 250 seconds) 2011-03-10T10:34:56 *** |UncleVasya| <|UncleVasya|!kvirc@178-133-51-169.dialup.umc.net.ua> has quit IRC (Ping timeout: 260 seconds) 2011-03-10T10:36:14 *** mceier has joined #aichallenge 2011-03-10T10:39:03 *** UncleVasya has joined #aichallenge 2011-03-10T10:42:06 *** aerique has quit IRC (Quit: ...) 2011-03-10T11:14:16 *** phreeza has quit IRC (Ping timeout: 255 seconds) 2011-03-10T11:16:11 *** superflit_ has joined #aichallenge 2011-03-10T11:24:47 *** McLeopold has joined #aichallenge 2011-03-10T11:25:35 antimatroid: you around? 2011-03-10T11:31:09 @later tell sigh I don't see any changes, did you commit *and* push? Also, I'm certain there was not a bug with ant collisions. 2011-03-10T11:31:09 McLeopold: Yep. 2011-03-10T11:31:36 *** boegel has quit IRC (Read error: Operation timed out) 2011-03-10T11:31:59 I was wondering, but didn't say a thing. They both seemed to be pretty sure 2011-03-10T11:34:13 I don't even see what they were concerned with in the logs. 2011-03-10T11:34:58 I think I would have noticed the wrong ants dying or not dying in my tests. 2011-03-10T11:42:43 McLeopold: looking at the logs this seems to be the change sigh did https://github.com/sigh/aichallenge/blob/replay/ants/ants.py 2011-03-10T11:43:25 certainly refactors a bit, not sure what the actual changes in behavior are if any 2011-03-10T11:46:18 *** amstan has joined #aichallenge 2011-03-10T11:46:18 *** ChanServ sets mode: +o amstan 2011-03-10T11:46:27 janzert: but I don't see a commit message? 2011-03-10T11:46:54 "Created AntStore class to hold all info about ants" 2011-03-10T11:47:17 the link to the commit itself is https://github.com/sigh/aichallenge/commit/b25429418e47e0bf4359a534454f9dc357254e2d 2011-03-10T11:47:19 okay, I swear 10 minutes ago the last commit was not his. I think github is trolling me 2011-03-10T11:47:28 hehe 2011-03-10T11:48:07 I can't find the handy-dandy "change" button 2011-03-10T11:48:53 I mean "diff" 2011-03-10T11:49:49 you mean the link to the second one I posted? 2011-03-10T11:50:04 mega1: what do you think? https://github.com/aerique/aichallenge/tree/epsilon/ants/bots/common_lisp 2011-03-10T11:50:45 it's the "commit" link in the right of the light blue area at the top of the page 2011-03-10T11:50:58 janzert: is there a way in github to view the changes made in the last commit? 2011-03-10T11:51:25 isn't that the "commit" link I posted above? 2011-03-10T11:51:48 amstan: directory structure looks good :-) 2011-03-10T11:51:53 yep, sometimes github confuses me 2011-03-10T11:51:58 other than that I'm not aware of anything, but I've not used github much 2011-03-10T11:51:59 ok 2011-03-10T11:52:21 McLeopold: can i please merge branches? 2011-03-10T11:55:02 amstan: is there a rush or issue? 2011-03-10T11:55:12 McLeopold: well.. i just want to show you why 2011-03-10T11:55:19 hold on, i'll fork and how you there 2011-03-10T11:58:08 janzert: Okay, I was not on the replay branch in sigh's fork, that's why I got confused. 2011-03-10T11:58:38 McLeopold: https://github.com/aichallenge/aichallenge/network , https://github.com/amstan/aichallenge/commit/75f536eace5fd6c7ddbdaf2a8638eeecac407a02 2011-03-10T11:58:56 McLeopold: so now epsilon-new-schema is up to date with the changes from epsilon 2011-03-10T11:59:15 McLeopold: i think that's what you wanted, but you're not supposed to do this with cherry picking 2011-03-10T12:00:05 amstan: I thought you wanted me to merge the other way 2011-03-10T12:00:12 McLeopold: nope 2011-03-10T12:00:18 so only epsilon was left 2011-03-10T12:00:23 McLeopold: anyway, you ok with that then? 2011-03-10T12:00:42 yeah, but it is a broken system... 2011-03-10T12:00:49 Also, I'd like to do it, so I can learn 2011-03-10T12:01:00 why? no.. it shouldn't be broken 2011-03-10T12:01:13 *** delt0r_ has joined #aichallenge 2011-03-10T12:01:13 the only changes in epsilon are new starter packages and some scripts from janzert 2011-03-10T12:01:18 I mean my code isn't completely finished and functional 2011-03-10T12:01:45 The code in -new-schema that is 2011-03-10T12:02:01 *** boegel has joined #aichallenge 2011-03-10T12:02:09 and epsilon itself is so much more finished and functional? ;) 2011-03-10T12:02:10 ok.. from what i understood.. what you wanted is to update the -new-schema branch with some of the things from epsilon 2011-03-10T12:02:23 yes 2011-03-10T12:02:28 and i did that with the merge 2011-03-10T12:02:35 in your fork? 2011-03-10T12:02:36 *** delt0r___ has quit IRC (Ping timeout: 248 seconds) 2011-03-10T12:02:38 yes 2011-03-10T12:02:52 all you have to do is git checkout epsilon-new-schema; git merge epsilon 2011-03-10T12:03:03 don't we want -new-schema to go away and just be left with epsilon? 2011-03-10T12:03:08 *** boegel has quit IRC (Client Quit) 2011-03-10T12:03:25 wow, somebody worked hard on that common lisp starter 2011-03-10T12:03:36 McLeopold: yes, this merge doesn't do anything else but update -new-schema 2011-03-10T12:03:47 i don't know much common lisp, but i can tell that the starter looks polished 2011-03-10T12:03:59 McLeopold: we continue deving as if the merge didn't happen, the only thing that it does is makes sure -new-schema devs have better code to work with 2011-03-10T12:04:08 ok 2011-03-10T12:04:13 let me try it 2011-03-10T12:04:33 McLeopold: there will be a merge conflict with 0.replay, just delete it then commit 2011-03-10T12:04:39 *** delt0r___ has joined #aichallenge 2011-03-10T12:05:08 oh yay, a pull request 2011-03-10T12:05:15 McLeopold: hold on, don't merge yet 2011-03-10T12:05:22 McLeopold: let me get aireque's stuff too 2011-03-10T12:06:56 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-03-10T12:06:57 aichallenge: McLeopold epsilon-new-schema * rf3b91e5 / (ants/ants.py ants/bots/python/ants.py ants/viewer/0.replay): This bike shed brought to you by antimatroid. :P - http://bit.ly/dVZ2nw 2011-03-10T12:06:58 aichallenge: McLeopold epsilon-new-schema * r86eeba9 / (55 files in 16 dirs): Merge branch 'epsilon' into epsilon-new-schema - http://bit.ly/dNGaa0 2011-03-10T12:07:00 aichallenge: McLeopold epsilon-new-schema * r93b0bfe / (37 files in 9 dirs): Merge branch 'epsilon' of github.com:aichallenge/aichallenge into epsilon - http://bit.ly/fzQjST 2011-03-10T12:07:02 aichallenge: McLeopold epsilon-new-schema * r22ba5b0 / (worker/worker.py ants/viewer/0.replay): More work on worker.py. - http://bit.ly/eNTEOD 2011-03-10T12:07:33 dang, I looked away 2011-03-10T12:07:43 McLeopold: you also merged from a previous commit 2011-03-10T12:07:44 amstan: sry, didn't see the wait request 2011-03-10T12:07:54 hmm... 2011-03-10T12:07:56 that's fine.. 2011-03-10T12:08:27 so, I should have git checkout epsilon, git pull, git checkout epsilon-new-schema, get merge epsilon? 2011-03-10T12:08:55 would just git pull do it? 2011-03-10T12:09:05 apparently not 2011-03-10T12:09:06 yeah 2011-03-10T12:09:14 ? 2011-03-10T12:09:48 amstan: did you get the lisp starter in yet? 2011-03-10T12:09:58 yeah.. trying to figure where the pull button is 2011-03-10T12:10:02 if there is one 2011-03-10T12:10:04 so pull only gets the latest info for your current branch not the full repo? 2011-03-10T12:10:10 not on the website 2011-03-10T12:10:10 pull button? 2011-03-10T12:10:19 oh, non-locally 2011-03-10T12:10:24 you have to use git tools locally 2011-03-10T12:10:30 McLeopold: ok 2011-03-10T12:10:31 Hi. Sorry for my terrible English. Can you already tell me when i have to free my time for the upcoming contest: in two weeks, in one month or in few monthes? 2011-03-10T12:10:57 UncleVasya: closer to 2 weeks than 1 month, but it's still hard to say. 2011-03-10T12:11:20 3.5 weeks? lol 2011-03-10T12:11:27 I was going to say most likely a month but maybe sooner :) 2011-03-10T12:11:44 certainly hard to say at this point 2011-03-10T12:12:12 Thank you. 2011-03-10T12:13:02 I'm really making the history graph look bad... 2011-03-10T12:13:12 aichallenge: Alexandru Stan epsilon * r806e541 / ants/bots/common_lisp/README.md : fixed typo (+11 more commits...) - http://bit.ly/fkr13E 2011-03-10T12:13:40 *** delt0r_ has joined #aichallenge 2011-03-10T12:13:45 aichallenge: Alexandru Stan epsilon-new-schema * r4a8727b / (64 files in 12 dirs): Merge branch 'epsilon' of https://github.com/aerique/aichallenge into epsilon - http://bit.ly/hPeiu3 2011-03-10T12:13:46 aichallenge: Alexandru Stan epsilon-new-schema * r806e541 / ants/bots/common_lisp/README.md : fixed typo - http://bit.ly/fkr13E 2011-03-10T12:13:47 aichallenge: Alexandru Stan epsilon-new-schema * rac89b9d / (67 files in 13 dirs): Merge branch 'epsilon' into epsilon-new-schema - http://bit.ly/ha4EGV 2011-03-10T12:14:31 merge commits are inherently ugly. i wouldn't feel too bad about the history looking bad 2011-03-10T12:14:49 amstan: didn't trust me with that last merge, did you? :P 2011-03-10T12:15:02 *** delt0r___ has quit IRC (Ping timeout: 250 seconds) 2011-03-10T12:15:08 McLeopold: nah, you did it right 2011-03-10T12:15:23 McLeopold: it's just that i updated it again with cl, so it should have been merged again 2011-03-10T12:17:24 nothing like changing your text editor's color theme to make every project feel new again 2011-03-10T12:17:32 jmcarthur: lol 2011-03-10T12:19:43 jmcarthur: editor and theme? 2011-03-10T12:20:08 huh? 2011-03-10T12:20:18 i changed emacs' color theme 2011-03-10T12:21:35 I suppose I was asking for the name of your editor of choice, and the name of your new color theme? 2011-03-10T12:23:16 emacs + zenburn, but i'm thinking about trying to up the contrast a little bit 2011-03-10T12:23:36 it's designed for low light conditions, so is a low contrast theme, but *usually* i'm not in low light conditions 2011-03-10T12:23:45 *** closedbracket has joined #aichallenge 2011-03-10T12:23:58 i think i mainly just want the background darker. simple enough to change 2011-03-10T12:24:19 what do you guys think of the Versions section: https://github.com/aichallenge/aichallenge/issues#issue/3 2011-03-10T12:24:25 janzert: ^ 2011-03-10T12:24:29 I prefer mustang, in vi 2011-03-10T12:25:23 amstan: I'd go with 32bit 2011-03-10T12:25:48 sure, although I don't think it's a strict priority order if the contributor is willing to set one of the lower priorities up so they get a more recent version 2011-03-10T12:25:50 amstan: also, do I have the ability to update issues? 2011-03-10T12:26:07 McLeopold: you cannot edit comments that are not your own 2011-03-10T12:26:15 McLeopold: but anyone can do whatever 2011-03-10T12:26:45 janzert: i'll add something about that, good idea 2011-03-10T12:27:05 the new haskell platform should be coming out today i think 2011-03-10T12:27:14 oh well 2011-03-10T12:28:26 janzert: + This is not a strict list, but it would make it much easier for the sysadmin to install the language/starter pack. 2011-03-10T12:28:40 shouldn't there be a setup script anyway though? 2011-03-10T12:28:58 jmcarthur: where? 2011-03-10T12:29:08 jmcarthur: for the languages? 2011-03-10T12:29:15 sounds good, might want to mention that to ensure use installation of the language needs to be added to the worker_setup.py script 2011-03-10T12:29:19 for everything needed on the server/workers 2011-03-10T12:29:22 including languages 2011-03-10T12:29:35 ok.. i was not aware of that 2011-03-10T12:29:37 amstan: what janzert said ;) 2011-03-10T12:29:41 janzert: 32 or 64bit? 2011-03-10T12:29:43 makes it really easy 2011-03-10T12:29:57 lowers the barrier for harder-to-install languages and stuff 2011-03-10T12:30:04 I'd prefer that we let people use 64bit this time 2011-03-10T12:30:15 i mean, of course we want to use versions that are easy for people to set up at home 2011-03-10T12:30:17 but I'm not positive about that 2011-03-10T12:30:28 64bit has been out for over 5 years 2011-03-10T12:30:37 janzert: let's just make sure there exists a 64 bit version, even if we don't use it 2011-03-10T12:30:37 surly thats what we all use right? 2011-03-10T12:30:40 primarily it means we need to use a different ec2 instance type 2011-03-10T12:30:44 we shouldn't accept runtimes that only work on 32bits 2011-03-10T12:30:50 64 bit machines can run 32 bit VMs. the reverse is not necessarily true 2011-03-10T12:31:06 nah, for sure I'd accept 32bit if that is all there is 2011-03-10T12:31:20 just if there is a choice, prefer the 64bit one 2011-03-10T12:31:25 i personally prefer 64 bit as well, but i don't know what our demographics are like 2011-03-10T12:32:07 the 32bit runtime should run fine whether we end up using 64bit or 32bit OS 2011-03-10T12:32:11 sucks to code C and only be able to test on 32 bit if the server uses 64 bit 2011-03-10T12:32:38 i mean, if you don't suck at C you can do it, but... most people suck at C :) 2011-03-10T12:33:06 actually that reminds me we did have 64bit for tron 2011-03-10T12:33:35 cause it was a pain debugging my assembly 64bit population count without access to a 64bit gcc locally 2011-03-10T12:33:38 i think it best to try to be consistent, whatever we choose. if we say 64 bit, try to support 64 bit across the board 2011-03-10T12:33:59 32 bit is obviously a bit easier in this regard 2011-03-10T12:34:37 for certain kinds of cpu/memory patterns 64 bit is faster, but aside from that the only other advantage really is the ability to address more memory, which should be far beyond the limits of our sandbox anyway 2011-03-10T12:36:26 *** Palmik has joined #aichallenge 2011-03-10T12:40:58 *** closedbracket has quit IRC (Remote host closed the connection) 2011-03-10T12:41:02 oh man.. a friend of mine wants to do a contest for his university, and he died when i showed him the code and all our documentation 2011-03-10T12:41:13 about game ideas and so on.. 2011-03-10T12:42:13 is that... good? 2011-03-10T12:42:35 jmcarthur: yeah, died because he liked it 2011-03-10T12:42:47 This is not a strict list, but it would make it much easier to install the language/starter pack. 2011-03-10T12:42:49 If you do want a language to be supported, please modify worker_setup.py accordingly. 2011-03-10T12:42:51 how's that ^? 2011-03-10T12:43:22 yeah i think that's good, as long as we have a decent way of testing it 2011-03-10T12:43:54 well, if it's just an ubuntu package no big deal, but if it's downloading and building from source and stuff then we need to be careful 2011-03-10T12:44:23 jmcarthur: i kept the list for that 2011-03-10T12:45:03 sounds good 2011-03-10T12:46:11 i can't wait to see ants killing eachother 2011-03-10T12:46:37 nobody tell peta pls 2011-03-10T12:46:58 lol, nvm, it's ok, they're only virtual ants 2011-03-10T12:48:36 *** Apophis has quit IRC (Read error: Connection reset by peer) 2011-03-10T12:50:27 peta did roll out Super Tofu Boy... 2011-03-10T12:50:59 *** Apophis has joined #aichallenge 2011-03-10T13:01:17 where is compiling done again? 2011-03-10T13:01:57 what script or what machine? 2011-03-10T13:02:14 at the moment from compile_anything.py on the main server 2011-03-10T13:02:30 that will almost certainly move to the worker before the contest though 2011-03-10T13:10:35 janzert: ok 2011-03-10T13:11:07 janzert: so.. if we move the compilation to the workers too, what will be left in managers besides the rankings? 2011-03-10T13:11:27 basically rankings and pairing :) 2011-03-10T13:11:38 handing out tasks to the workers 2011-03-10T13:12:45 i suppose the manager server could also run a lightweight worker itself if it has the resources to spare though 2011-03-10T13:13:19 in the current case where the manager and website are one machine, I'd rather not run games on it 2011-03-10T13:13:21 but iirc the main was always slow and overloaded anyway, right? 2011-03-10T13:13:26 yes 2011-03-10T13:13:46 it also means we don't have to install all the different languages on the main server 2011-03-10T13:14:17 yeah that's nice too 2011-03-10T13:15:12 in tron we had the backend(manager+worker) on corn-syrup and the website and db on caffeine 2011-03-10T13:26:29 *** boegel has joined #aichallenge 2011-03-10T13:27:54 *** amstan has quit IRC (Ping timeout: 246 seconds) 2011-03-10T13:28:36 *** amstan has joined #aichallenge 2011-03-10T13:28:36 *** ChanServ sets mode: +o amstan 2011-03-10T13:32:20 McLeopold: I'm here, but i can only really say what sigh was seeing, i didn't actually look through the code very hard.. 2011-03-10T13:34:43 antimatroid: okay, I think he just didn't understand what the code did 2011-03-10T13:35:07 I was marking any square as conflict if an ant died there, collision or attack 2011-03-10T13:35:25 if any other ant moved to that spot, then they died of a collision 2011-03-10T13:35:48 of course, that would have happened before attacks... 2011-03-10T13:36:19 The resolve_orders method was named badly, it should have been called "cleanup_state" 2011-03-10T13:36:55 McLeopold: what happens if you move into a square containing an ant that hasn't moved out of it yet, but will by the end of the turn? 2011-03-10T13:37:55 I was maintaining a separate list of destinations 2011-03-10T13:38:32 ahh, okay 2011-03-10T13:39:41 I was processing 1 bot at a time, but the list of conflicts and marking the map square as conflict allowed me to detect enemy ants colliding 2011-03-10T13:39:57 If we ever lower the attack radius or use another attack resolution 2011-03-10T13:41:42 *** delt0r___ has joined #aichallenge 2011-03-10T13:42:59 antimatroid: I might need to track the difference between a collision and attack, for scoring 2011-03-10T13:43:01 *** delt0r_ has quit IRC (Ping timeout: 250 seconds) 2011-03-10T13:43:46 jmcarthur: did you think much more about suiciding your own ants to prevent giving the enemy points? 2011-03-10T13:44:37 McLeopold: colliding ants don't count for killing ants either yeah? 2011-03-10T13:44:39 no 2011-03-10T13:45:33 i really wish there was a specific goal aside from getting points 2011-03-10T13:45:57 your king of the hill ish idea sounded good to me :\ 2011-03-10T13:46:19 i guess that's points too, but it made more sense as a strategy-encouraging game 2011-03-10T13:47:32 Capture the Flag? :) 2011-03-10T13:48:35 it may be too late for anything like that 2011-03-10T13:48:48 s/may/is almost definitely/ 2011-03-10T13:49:13 s!/may/!/may be/! 2011-03-10T13:51:35 jmcarthur: it's not too late 2011-03-10T13:52:40 I would like it better if the goal was independent of the ant spawning 2011-03-10T13:53:03 *** Accoun has quit IRC () 2011-03-10T13:53:26 antimatroid: we talked about if friendly ants collide, then any nearby enemy gets the points 2011-03-10T13:54:10 Any bot that wants to strategically suicide will be able to do so before the enemy is close, so it would actually not be worth the effort to code that. 2011-03-10T13:55:01 so, at this point, only if the ants are from different bots do points get handed out, so kinda like range 0 2011-03-10T13:56:00 i didn't realise any score was assigned for colliding enemies? 2011-03-10T13:56:14 with capture the flag we would also need to change all the starters in addition to the engine 2011-03-10T13:56:20 not that we can't but it's more to do 2011-03-10T13:56:25 do they scores just go to the enemies also colliding with it? or any ants in range of the colliding square at the end of moves? 2011-03-10T13:56:47 that said, i love capture the flag 2011-03-10T13:57:15 could be that you get a point every time you capture a flag and lose a point every time your flag is captured 2011-03-10T13:58:00 *** Palmik has quit IRC (Ping timeout: 246 seconds) 2011-03-10T13:58:03 could have gone with home bases and taking harvest back for spawning 2011-03-10T13:58:08 but that was "too complicated" 2011-03-10T13:58:15 well 2011-03-10T13:59:03 i don't have an argument about whether it's too complicated generally, but i think we shouldn't put too much effort into something not relating directly to the goal of the game 2011-03-10T13:59:20 if the point is to spawn lots of ants, then yeah i think that would be a decent design choice 2011-03-10T13:59:51 but if the point is to kill lots of ants or capture flags or whatever then it's at least more questionable (but i still wouldn't argue against it myself) 2011-03-10T13:59:54 *** Accoun has joined #aichallenge 2011-03-10T14:00:29 we still have no incentive not to spread 2011-03-10T14:00:33 yes 2011-03-10T14:00:42 *** antiuni has quit IRC (Ping timeout: 245 seconds) 2011-03-10T14:00:59 i think capture the flag with combat option 1 would be awesome 2011-03-10T14:01:15 The 2 easiest ways I can think of are: split ants into spawners/fighters, or use hills for points 2011-03-10T14:01:32 or just drop option 2 2011-03-10T14:01:36 :\ 2011-03-10T14:01:44 yeah, that is easier still 2011-03-10T14:02:02 I really like the idea of 2 types of ants 2011-03-10T14:02:24 You have to balance your fighter/spawner ratio 2011-03-10T14:02:30 you get to choose? 2011-03-10T14:02:31 *** antimatroid has quit IRC (Ping timeout: 252 seconds) 2011-03-10T14:02:36 Yes 2011-03-10T14:02:53 only spawners can turn food into ants, their choice of which kind 2011-03-10T14:03:01 only fighters can kill ants 2011-03-10T14:03:30 And don't forget Ms. Qeen. :) 2011-03-10T14:03:48 it gives me that "to attack a neutral planet or not to attack a neutral planet" feeling. 2011-03-10T14:04:20 so spawning becomes an explicit action. does that also imply that for consistency fighting should too? 2011-03-10T14:04:31 plus it is still "easier" than using a more complex battle option 2011-03-10T14:04:52 no, spawning become a "bot" action, not an "ant" action 2011-03-10T14:04:59 *** antimatroid has joined #aichallenge 2011-03-10T14:05:00 explicit fight commands would alleviate this controversial battle stuff altogther 2011-03-10T14:05:04 *altogether 2011-03-10T14:05:23 i don't understand what you mean by it being a "bot" action 2011-03-10T14:05:30 the bot still has to say which spawn should be which ant 2011-03-10T14:05:32 you get a new ant at a position, and it can't move until you declare it's type 2011-03-10T14:05:45 ah 2011-03-10T14:05:52 but your not giving an ant an order to spawn something 2011-03-10T14:06:27 why even have a type of ant? 2011-03-10T14:06:39 read the logs ^^ 2011-03-10T14:06:47 antimatroid: to provide incentive to not spread out completely 2011-03-10T14:07:02 antimatroid: (to work out the limitations of option 2) 2011-03-10T14:07:07 *** Frontier has quit IRC (Quit: Leaving.) 2011-03-10T14:07:11 s/out/around/ 2011-03-10T14:07:13 well, you still want to spread 2011-03-10T14:07:22 just with a correct ratio 2011-03-10T14:07:24 yes, but it's tougher to do it well 2011-03-10T14:07:30 right 2011-03-10T14:07:47 it at least requires some intelligent allocation instead of just an explosion of ants all over the map 2011-03-10T14:08:02 *** Palmik has joined #aichallenge 2011-03-10T14:08:59 i can't imagine this counting as simple enough 2011-03-10T14:09:19 simple as in you can watch a game and understand 2011-03-10T14:09:21 i don't really see how it provides an incentive not to spread out either 2011-03-10T14:09:27 not simple as in easy to code 2011-03-10T14:09:53 battle option 1 is easy to code, but hard to watch a game and understand what is happening 2011-03-10T14:10:09 antimatroid: it's not really that. it's just incentive to do *something* less brainless than just spreading out 2011-03-10T14:10:10 battle option 1 is so awesome i don't understand the hate D: 2011-03-10T14:10:17 it makes the game in itself 2011-03-10T14:10:27 you still need objective 2011-03-10T14:10:36 i think battle option 1 would work well with capture the flag 2011-03-10T14:10:40 jmcarthur: it would be good if there was an actual balance to spreading out 2011-03-10T14:10:51 antimatroid: yeah, option 1 is one such balance 2011-03-10T14:11:28 how far away are we from actually watching games again? 2011-03-10T14:11:40 we can't be that far off being able to try out some different game parameters? 2011-03-10T14:12:06 the engine has always worked 2011-03-10T14:12:13 you can watch games now 2011-03-10T14:12:39 does the visualiser pass the input? 2011-03-10T14:12:45 i should try and get the engine running 2011-03-10T14:13:03 you can use my viewer, I'm not sure how hooked up Frontier's is 2011-03-10T14:13:39 alright, how do i run it? :P 2011-03-10T14:14:07 aichallenge: McLeopold epsilon-new-schema * r40eac27 / (ants/ants.py ants/engine.py ants/playgame.py): Polished the playgame, engine and ants files for use with the worker. - http://bit.ly/ftKgun 2011-03-10T14:14:23 look at the make_movie.cmd file 2011-03-10T14:14:30 and get that latest push 2011-03-10T14:14:53 hehe, i just pulled as you did that 2011-03-10T14:14:56 oops 2011-03-10T14:14:59 so i'll pull again to see if i missed it 2011-03-10T14:15:00 there's a bug :( 2011-03-10T14:15:08 ah k, i will wait a minute 2011-03-10T14:21:21 aichallenge: McLeopold epsilon-new-schema * r2c5dcab / (ants/ants.py ants/engine.py ants/playgame.py): Fixed embarrasing bugs. - http://bit.ly/ecDRbQ 2011-03-10T14:21:30 antimatroid: ok, now pull 2011-03-10T14:21:52 make_movie.cmd maps/random4.txt 1000 2011-03-10T14:22:01 cd viewer 2011-03-10T14:22:06 python -m SimpleHTTPServer 2011-03-10T14:22:13 http://localhost:8080/viewer.html 2011-03-10T14:23:16 hmm, claimed i was already up to date :\ 2011-03-10T14:23:17 you can also run playgame.py to see the list of options 2011-03-10T14:24:47 what are the %2 and %1 parameters? 2011-03-10T14:25:02 i got an error "invalid integer value: '%2'" 2011-03-10T14:25:44 map and turns 2011-03-10T14:25:56 omg, the new spawning code is *insane* 2011-03-10T14:26:08 *** delt0r_ has joined #aichallenge 2011-03-10T14:27:22 oh, got it to run, err :) 2011-03-10T14:27:25 cheers 2011-03-10T14:27:28 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-03-10T14:28:03 insane? 2011-03-10T14:28:34 half the land area was ants 2011-03-10T14:29:29 heh 2011-03-10T14:30:04 bleh, i need to format so badly 2011-03-10T14:30:14 my cmd line can't find python 2011-03-10T14:30:28 what about python2? 2011-03-10T14:30:49 you know... you could just try to fix that problem. a reformat isn't always necessary 2011-03-10T14:31:12 the folder is in the environment variables? 2011-03-10T14:31:22 everything is a mess, it really is needed :) 2011-03-10T14:31:39 umm... you probably need to make sure that /usr/bin or /usr/local/bin are in your PATH 2011-03-10T14:31:58 and that python is there 2011-03-10T14:32:00 *** choas has joined #aichallenge 2011-03-10T14:33:51 *** Naktibalda has joined #aichallenge 2011-03-10T14:35:11 hmm, i can't find any bin folder :\ 2011-03-10T14:35:20 antimatroid: I thought you were windows? 2011-03-10T14:35:49 if you're on windows you have to add python to the path yourself 2011-03-10T14:35:49 i am windows 2011-03-10T14:35:52 oh 2011-03-10T14:35:57 the installer doesn't do it 2011-03-10T14:36:04 what is the path? 2011-03-10T14:36:06 get redmondpath 2011-03-10T14:36:11 antimatroid: yeah this isn't a problem your system developed. this is because windows sucks :P 2011-03-10T14:36:24 along with the python installer 2011-03-10T14:36:31 jmcarthur: i am seriously considering jumping ship to ubuntu 2011-03-10T14:36:37 you were complaining about not having grep as well 2011-03-10T14:36:40 antimatroid: why don't you? 2011-03-10T14:36:41 http://download.cnet.com/Redmond-Path/3000-2094_4-10811594.html 2011-03-10T14:36:44 windows doesn't even come with grep 2011-03-10T14:36:47 amstan: laziness 2011-03-10T14:37:13 antimatroid: if you installed the git stuff, you have grep now 2011-03-10T14:37:45 i'm increasingly surprised each time i hear of somebody on irc that's still running windows, honestly 2011-03-10T14:37:58 not trying to go on a windows bashing rant or anything. it 2011-03-10T14:38:01 oops 2011-03-10T14:38:09 system error? :P 2011-03-10T14:38:10 it's just uncommon on irc 2011-03-10T14:38:17 up until recently it was able to do everything i wanted 2011-03-10T14:38:18 haha 2011-03-10T14:38:22 now it just annoys the hell out of me 2011-03-10T14:38:45 jmcarthur: nah.. please do, lol 2011-03-10T14:38:46 so what folders in python27 am i meant to be adding to my path variables? 2011-03-10T14:38:54 how do you know somebody runs arch linux? 2011-03-10T14:38:55 I'm quite happy with Win7. You just need to know your tools. 2011-03-10T14:38:55 they tell you 2011-03-10T14:39:03 antimatroid: the one that has the exe in it 2011-03-10T14:39:09 antimatroid: just the main path C:\Python27 2011-03-10T14:39:15 or D:? 2011-03-10T14:39:50 D: is a smiley. it accuractely depicts me in front of a windows machine 2011-03-10T14:40:15 McLeopold: that's already there 2011-03-10T14:40:19 :P 2011-03-10T14:40:24 if you type "assoc .py" it should come back with ".py=Python.File" 2011-03-10T14:40:49 it does 2011-03-10T14:42:24 so, after you add a folder to your path, you need to open up a command window again, assuming that's where you are 2011-03-10T14:42:38 it was always there 2011-03-10T14:42:53 but you type python and get nothing? 2011-03-10T14:43:23 "C:\ai\aichallenge\ants\viewer>assoc .py 2011-03-10T14:43:23 .py=Python.File 2011-03-10T14:43:23 C:\ai\aichallenge\ants\viewer>python -m SimpleHTTPServer 2011-03-10T14:43:23 'python' is not recognized as an internal or external command, 2011-03-10T14:43:23 operable program or batch file. 2011-03-10T14:43:52 type path 2011-03-10T14:43:52 like i said, my windows installation is f'd 2011-03-10T14:44:02 and do a pastebin 2011-03-10T14:44:36 http://pastebin.com/iz9Wmikb 2011-03-10T14:44:47 end of the 3rd line 2011-03-10T14:45:12 cd C:\Python27 2011-03-10T14:45:18 and run python 2011-03-10T14:45:21 see if that works 2011-03-10T14:46:11 that worked 2011-03-10T14:46:48 yeah its hosed install ubuntu be happy 2011-03-10T14:46:51 :) 2011-03-10T14:47:12 ok I'll agree with you now, your system is a mess :P 2011-03-10T14:47:17 :P 2011-03-10T14:48:04 i might get some sleep then do a format 2011-03-10T14:48:43 *and they never saw antimatroid again* 2011-03-10T14:48:52 haha 2011-03-10T14:50:23 heh 2011-03-10T14:51:07 famous joke: the best format M$ ever made - format c: 2011-03-10T14:51:09 *** amstan has quit IRC (Ping timeout: 248 seconds) 2011-03-10T15:02:47 *** lavalamp has joined #aichallenge 2011-03-10T15:10:59 *** sigh has joined #aichallenge 2011-03-10T15:12:56 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-10T15:13:11 *** Accoun has quit IRC () 2011-03-10T15:17:54 *** UncleVasya has quit IRC (Ping timeout: 260 seconds) 2011-03-10T15:48:45 *** chemuduguntar has joined #aichallenge 2011-03-10T15:50:03 *** mega1 has quit IRC (Read error: Connection reset by peer) 2011-03-10T15:50:25 *** mega1 has joined #aichallenge 2011-03-10T15:58:44 *** sigh has quit IRC (Ping timeout: 260 seconds) 2011-03-10T16:04:37 *** delt0r___ has joined #aichallenge 2011-03-10T16:06:07 *** delt0r_ has quit IRC (Ping timeout: 246 seconds) 2011-03-10T16:07:31 so what they hell you have to pay to get dev tools on os x now 2011-03-10T16:07:34 *the hell 2011-03-10T16:08:19 or go to third party sources just to get gcc, yay! 2011-03-10T16:08:37 in other news, the new haskell platform was just released a second ago! 2011-03-10T16:08:49 you on osx? 2011-03-10T16:09:43 nah 2011-03-10T16:09:50 but i used to use it more 2011-03-10T16:09:54 and i still have a mac around 2011-03-10T16:10:03 ah 2011-03-10T16:10:05 mainly for testing games i'm making and stuff 2011-03-10T16:10:36 *** delt0r_ has joined #aichallenge 2011-03-10T16:10:52 *** Naktibalda has quit IRC (Ping timeout: 255 seconds) 2011-03-10T16:12:14 *** delt0r___ has quit IRC (Ping timeout: 248 seconds) 2011-03-10T16:22:13 *** amstan has joined #aichallenge 2011-03-10T16:22:13 *** ChanServ sets mode: +o amstan 2011-03-10T16:27:19 *** Palmik has quit IRC (Remote host closed the connection) 2011-03-10T16:27:39 *** Accoun has joined #aichallenge 2011-03-10T16:28:17 *** Naktibalda has joined #aichallenge 2011-03-10T16:51:07 how to start playing with ants? 2011-03-10T16:51:26 buy a magnifying glass, go outside.... 2011-03-10T16:52:26 playgame.py: error: no such option: --timeout_ms 2011-03-10T16:52:48 that's because it's a windows user doing most of the testing ;) 2011-03-10T16:53:03 i think there is a cmd file you should be looking at for what to do 2011-03-10T16:53:38 *** delt0r___ has joined #aichallenge 2011-03-10T16:54:59 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-03-10T16:55:56 thanks 2011-03-10T17:03:40 *** mega1 has quit IRC (Ping timeout: 250 seconds) 2011-03-10T17:13:34 *** delt0r_ has joined #aichallenge 2011-03-10T17:15:13 *** delt0r___ has quit IRC (Ping timeout: 252 seconds) 2011-03-10T17:16:04 *** delt0r_ has quit IRC (Read error: Operation timed out) 2011-03-10T17:16:07 *** delt0r___ has joined #aichallenge 2011-03-10T17:27:27 *** choas has quit IRC (Quit: leaving) 2011-03-10T17:36:41 *** sigh has joined #aichallenge 2011-03-10T17:44:38 *** Accoun has quit IRC () 2011-03-10T17:50:02 *** sigh has quit IRC (Remote host closed the connection) 2011-03-10T17:51:07 *** sigh has joined #aichallenge 2011-03-10T17:52:16 *** Accoun has joined #aichallenge 2011-03-10T18:13:30 *** Frontier has joined #aichallenge 2011-03-10T18:16:23 *** lavalamp has quit IRC (Quit: Page closed) 2011-03-10T18:35:59 *** amriedle has joined #aichallenge 2011-03-10T18:45:13 *** Frontier has quit IRC (Quit: Leaving.) 2011-03-10T18:48:41 *** chemuduguntar has quit IRC (Ping timeout: 276 seconds) 2011-03-10T18:55:46 *** mceier has quit IRC (Quit: leaving) 2011-03-10T19:04:37 *** superflit_ has quit IRC (Quit: superflit_) 2011-03-10T19:05:17 *** superflit_ has joined #aichallenge 2011-03-10T19:07:32 *** Kingpin13 has quit IRC (Quit: You're a kitty!) 2011-03-10T19:09:47 *** superflit_ has quit IRC (Ping timeout: 250 seconds) 2011-03-10T19:16:29 *** chemuduguntar has joined #aichallenge 2011-03-10T19:22:19 bss03: ping 2011-03-10T19:37:21 jmcarthur: pong 2011-03-10T19:46:09 *** delt0r___ has quit IRC (Remote host closed the connection) 2011-03-10T19:46:30 *** delt0r___ has joined #aichallenge 2011-03-10T19:48:57 jmcarthur, bss03: 0% packet loss 2011-03-10T19:50:00 amstan: I like to think of it as a rtt of 1800000ms or so. 2011-03-10T19:50:22 contestbot: ping 2011-03-10T19:50:22 pong 2011-03-10T19:50:27 amstan: Which means jmcarthur should reply in about 2 minutes. :) 2011-03-10T19:57:10 *** amstan has quit IRC (Quit: Konversation terminated!) 2011-03-10T19:57:12 *** amstan_ has joined #aichallenge 2011-03-10T19:57:12 *** ChanServ sets mode: +o amstan_ 2011-03-10T19:57:12 oh god, it's almost format time 2011-03-10T19:58:39 format time? 2011-03-10T19:59:10 my system is a mess, it's been needed for a while 2011-03-10T19:59:14 i'm finally formatting 2011-03-10T19:59:34 i'm only putting xp on again for the moment, i'll try to find a spare drive and put ubunutu on it 2011-03-10T20:01:11 bss03: sorry, distractions 2011-03-10T20:01:31 bss03: i've stuck what i have so far on the rewrite on darcsden. i just replaces the old repo with it 2011-03-10T20:01:34 *replaced 2011-03-10T20:01:50 sigh: did you talk to McLeopold at all today 2011-03-10T20:01:58 nope 2011-03-10T20:02:00 he doesn't think there was any issues with conflicts 2011-03-10T20:02:02 ping McLeopold 2011-03-10T20:02:04 possibly badly named functions 2011-03-10T20:02:28 badly named functions by me? 2011-03-10T20:02:31 bss03: i just blew away all my SPECIALIZE pragmas and stuff because i split it up a bit more, so it's slower than it was earlier, but that should be easy to get back. there's also some extra functionality yet to add, like a timer, and i also want to make some more accessors and stuff like distance function and junk 2011-03-10T20:02:33 by him 2011-03-10T20:02:46 bss03: anyway, i've gotta go 2011-03-10T20:02:49 Kk. 2011-03-10T20:02:53 Thanks for the update. 2011-03-10T20:03:02 bss03: http://darcsden.com/jmcarthur/ants-bot 2011-03-10T20:03:06 basically he was marking a square as occupied once an ant moved there, then killing conflicts as they occured, i think? 2011-03-10T20:03:12 there's no example included in that yet either, sadly 2011-03-10T20:03:21 but i have one sitting around that i can't get to right now 2011-03-10T20:03:24 i'll be back later 2011-03-10T20:03:34 antimatroid: yes, but that doesn't help when it conflicts with an ant that has yet to move 2011-03-10T20:03:43 I'll be around for about 3 more hours. 2011-03-10T20:03:50 sigh: it should still be marked as occupied yeah? 2011-03-10T20:04:08 sigh: pong 2011-03-10T20:04:14 there we go 2011-03-10T20:04:20 anyway, I've changed the code for other reasons, so it's a moot point :) 2011-03-10T20:04:39 McLeopold: when you removed 2 ants that collided, the square was still marked as occupied yeah? 2011-03-10T20:05:00 uh, let me check 2011-03-10T20:05:07 McLeopold: I centralised all the management of ants either way, so that keeping track of history is easy 2011-03-10T20:05:16 yeah, i don't think it matters now 2011-03-10T20:07:39 antimatroid: yes 2011-03-10T20:07:55 so if others moved there, they would still die 2011-03-10T20:08:41 McLeopold: anyway, I'm still working on the replay but could you review the AntStore stuff? it should be stable now https://github.com/sigh/aichallenge/blob/replay/ants/ants.py 2011-03-10T20:09:01 all the add/kill/move of ants is controlled by that class now 2011-03-10T20:09:07 I did look at it. I'm leaning toward not having the ant store class 2011-03-10T20:09:41 fairly simple to take it out, but any reason why not? 2011-03-10T20:09:51 * amstan_ is amazed to look at the impact graph: https://github.com/aichallenge/aichallenge/graphs/impact 2011-03-10T20:09:59 look at all the colours! 2011-03-10T20:10:35 sigh: it makes it more complex with no benefit 2011-03-10T20:11:41 McLeopold: it means that different parts of the code don't have to all know how to kill or add an ant 2011-03-10T20:11:46 also, it looked like I confused you with my "resolve_orders" function name 2011-03-10T20:13:45 ah, it did at first, then I coopted it to a different place :) 2011-03-10T20:15:05 point is, now there is a lot more info to be updated, because there is the list of current ants, the list of all ants that have been created, list of killed ants... keeping them in a class just keeps things consistant 2011-03-10T20:16:32 *** amstan_ has quit IRC (Ping timeout: 250 seconds) 2011-03-10T20:16:46 did you look at the version I have up now? it's actually quite simple now, and certainly simpler than the one I had up when I messaged you yesterday 2011-03-10T20:16:56 I'll need to review it. 2011-03-10T20:17:04 so, here's my thoughts on it... 2011-03-10T20:17:21 I want something that people can look at and understand how the game works. 2011-03-10T20:17:23 *** Naktibalda has quit IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.14/20110221053559]) 2011-03-10T20:17:51 That's why I was trying to keep each part in a separate function, do_attack, do_spawn, etc... 2011-03-10T20:18:24 Sure, I think this helps that 2011-03-10T20:18:46 the only game logic in the class is the resolve_moves function, which you an move back into Ants 2011-03-10T20:18:53 if that's the issue 2011-03-10T20:18:56 okay, if it stays easy to understand, so others can implement their own engine, then it is good 2011-03-10T20:19:39 the resolve_orders function was really to cleanup all the conflict flags in the map 2011-03-10T20:19:47 it didn't actually resolve_orders 2011-03-10T20:20:03 :) 2011-03-10T20:20:11 I don't need the conflict flags anymore 2011-03-10T20:20:31 I think that makes it clearer, now there is an explict list of killed ants 2011-03-10T20:20:41 it was just a flag to be used while resolving orders, and to be cleared to land after the next state was sent 2011-03-10T20:21:05 yes, and it was also used to mark dead ants in later parts of the game 2011-03-10T20:21:31 yes, and there was a list of dead ants already 2011-03-10T20:21:33 *later parts of the turn 2011-03-10T20:22:33 *** Mathnerd314 has joined #aichallenge 2011-03-10T20:24:53 bleh copying files takes so damn long 2011-03-10T20:26:02 sigh: are you going to be around later? 2011-03-10T20:26:22 yeah 2011-03-10T20:26:35 okay, I've gotta take off for a few hours 2011-03-10T20:26:42 *** McLeopold has left #aichallenge 2011-03-10T20:53:14 *** antimatroid has left #aichallenge 2011-03-10T21:12:40 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Read error: Connection reset by peer) 2011-03-10T21:12:55 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has joined #aichallenge 2011-03-10T21:26:09 @later tell McLeopold I remove AntStore by essentially moving the functions into the Ants class so that the single-point-of-control is kept: https://github.com/sigh/aichallenge/blob/replay/ants/ants.py 2011-03-10T21:26:09 sigh: I think that worked... 2011-03-10T21:30:59 *** boegel has quit IRC (Ping timeout: 252 seconds) 2011-03-10T21:35:51 *** boegel has joined #aichallenge 2011-03-10T22:17:21 @later tell McLeopold I've finished the replay output, it is merged into my main epsilon branch now: https://github.com/sigh/aichallenge 2011-03-10T22:17:21 sigh: Ready to serve. 2011-03-10T22:18:21 @later tell Frontier I've finished the replay output if you are ready to try it out: https://github.com/sigh/aichallenge 2011-03-10T22:18:21 sigh: Aye, aye, sir 2011-03-10T22:19:47 *** amstan has joined #aichallenge 2011-03-10T22:19:47 *** ChanServ sets mode: +o amstan 2011-03-10T22:27:02 *** antimatroid has joined #aichallenge 2011-03-10T22:27:07 ... and i'm back 2011-03-10T22:28:13 *crickets* 2011-03-10T22:28:29 *** amstan has quit IRC (Ping timeout: 255 seconds) 2011-03-10T22:38:14 *** amriedle has quit IRC (Quit: Lost terminal) 2011-03-10T22:41:07 *** amstan has joined #aichallenge 2011-03-10T22:41:07 *** ChanServ sets mode: +o amstan 2011-03-10T22:50:59 *** amstan has quit IRC (Ping timeout: 255 seconds) 2011-03-10T23:16:37 *** dlila has joined #aichallenge 2011-03-10T23:31:33 *** _flag <_flag!~flag@69-165-173-172.dsl.teksavvy.com> has quit IRC (Quit: Lost terminal) 2011-03-10T23:32:33 *** amstan_ has joined #aichallenge 2011-03-10T23:32:33 *** ChanServ sets mode: +o amstan_ 2011-03-10T23:36:19 *** Mathnerd314 has quit IRC (Ping timeout: 250 seconds) 2011-03-10T23:36:28 *** McLeopold has joined #aichallenge 2011-03-10T23:44:48 sigh: you around 2011-03-10T23:45:28 I am 2011-03-10T23:45:37 I got rid of AntStore for you :P 2011-03-10T23:45:45 yeah 2011-03-10T23:45:49 but... 2011-03-10T23:46:06 you might have convinced me it was good 2011-03-10T23:46:10 haha 2011-03-10T23:46:17 I now feel bad for all the work you are doing 2011-03-10T23:46:45 nah, I don't mind... I like working out the design of code 2011-03-10T23:46:49 McLeopold: my command line recognises python now 2011-03-10T23:47:08 format fixes all 2011-03-10T23:47:13 one thing I like about it now is that the ant data and the map data are updated in the same function 2011-03-10T23:47:17 which was not the case before 2011-03-10T23:47:40 yes, that is good 2011-03-10T23:47:57 either way, I'm not sorry that I implemented AntStore as it helped me put everything into one place 2011-03-10T23:48:40 I'm usually against creating classes or object, unless there is a good reason. At least in python. 2011-03-10T23:49:02 McLeopold: I think I turned my map generator into a class :P 2011-03-10T23:49:15 i was contemplating doing the same with the map analyzer? 2011-03-10T23:49:15 personally I don't like having really large classes :P 2011-03-10T23:49:54 having stuff separated out makes it easier to reason about, because you have a better idea where things can change 2011-03-10T23:50:32 I find the opposite. Having to follow to many rabbit trails makes code confusing for me. 2011-03-10T23:50:55 The Ant class was just on the line of being too big. 2011-03-10T23:51:15 i'm with mcleopold there 2011-03-10T23:51:33 well, it is required for keeping all the data together... you could make a case for taking the move method out 2011-03-10T23:51:35 i'd rather a big chunk to do something rather than a bunch of different chunks i need to pull up 2011-03-10T23:51:40 I'mnot strongly for or against 2011-03-10T23:52:13 I think the ant lists and map data structures should be tied together, as if it was just one complex data structure 2011-03-10T23:52:25 the ant lists where originally just a speed up 2011-03-10T23:52:36 I wanted just a matrix to be able to calculate everything 2011-03-10T23:53:10 McLeopold: I agree that ants/map/food should be a single object 2011-03-10T23:53:41 which is another reason I got rid of AntStore, ants are too tightly coupled with the map for a seperate store to make sense 2011-03-10T23:54:04 But you still have an Ant class? 2011-03-10T23:54:35 Ant is just a container, no different to having a tuple or a dictionary of values 2011-03-10T23:55:44 except you have a move method 2011-03-10T23:56:10 or, is that just for tracking? 2011-03-10T23:56:32 sure, but the move method contains no game logic 2011-03-10T23:56:50 and it only serves to keeps its internal state consistent 2011-03-10T23:57:00 ok 2011-03-10T23:57:12 all the logic about moving an Ant is in the Ants class 2011-03-10T23:57:26 in the resolve_orders and do_orders methods 2011-03-10T23:57:33 If we did need to cut down the Ants class, I would say try and move the map data structure, including lists out to a State class. 2011-03-10T23:57:46 crap, you kept resolve_orders? 2011-03-10T23:57:55 it does something different now 2011-03-10T23:58:25 resolve_orders is called at the *start* of finish_turn to sort out the conflicts 2011-03-10T23:58:46 it resolves the conflicts, so I think the name is appropriate 2011-03-10T23:58:52 oh, so I guess you made it actually resolve orders then :) 2011-03-10T23:59:04 :) 2011-03-10T23:59:20 does all the "common game" functions make sense? My plan is that any contest will use that framework. 2011-03-10T23:59:40 which functions? 2011-03-10T23:59:46 If python had true implementation classes, I would do that.