2011-02-05T00:03:18 *** McLeopold_ has joined #aichallenge 2011-02-05T00:07:31 *** McLeopold_ has left #aichallenge 2011-02-05T00:08:17 *** McLeopold_ has joined #aichallenge 2011-02-05T00:09:56 *** McLeopold_ has quit IRC (Client Quit) 2011-02-05T00:10:22 *** McLeopold has joined #aichallenge 2011-02-05T00:11:03 *** ChanServ sets mode: +o McLeopold 2011-02-05T00:14:52 jmcarthur: i did note we also need to work out how to "stall" other bots processes properly as well 2011-02-05T00:15:06 i've been led to believe that'd be easier than timing bots off of cpu time 2011-02-05T00:16:30 yeah sure, SIGINT and SIGCONT 2011-02-05T00:17:20 make the bot specs such that they have to spin up for 1 move only, then shut down 2011-02-05T00:18:02 maybe that's too evil 2011-02-05T00:18:45 jmcarthur: did you see my earlier question about survival? 2011-02-05T00:19:18 It should be that after death and birth, no 2 opponents will have ants next to each other. 2011-02-05T00:19:28 I'm 99% sure this is the case. 2011-02-05T00:34:34 McLeopold: that makes sense to me 2011-02-05T00:34:52 okay, if you come up with a proof against it, let me know 2011-02-05T00:35:11 * jmcarthur wonders if he can prove it in the type system... 2011-02-05T00:35:22 nah, too involved 2011-02-05T00:35:38 would have to make a new array type for it 2011-02-05T00:35:46 I don't think I'm pedantic enough to be a haskeller 2011-02-05T00:35:52 lol 2011-02-05T00:35:59 i just said i'm not doing it :P 2011-02-05T00:36:08 :) 2011-02-05T00:36:19 I will learn it someday. I'm just going to do lisp first. 2011-02-05T00:36:20 would be doable in agda though 2011-02-05T00:36:27 more feasible, that is 2011-02-05T00:36:53 i still don't think we are where we could be as far as proving code correct 2011-02-05T00:37:02 haskell is certainly not there 2011-02-05T00:38:18 McLeopold: Clojure is pretty badass. That's what I'm using for the contest despite not knowing it that well. 2011-02-05T00:38:45 lisp in java? 2011-02-05T00:39:10 jmcarthur: it took a long time to prove correct that microkernel they always brag about. I hope they techniques improve and get more efficient/usable for sure 2011-02-05T00:39:25 McLeopold: Kinda. Lisp on the JVM. 2011-02-05T00:39:35 elimisteve: yeah, it did :\ 2011-02-05T00:39:54 elimisteve: granted, a microkernel is pretty darn tough to verify 2011-02-05T00:40:41 they had to do things that you wouldn't have to do for other kinds of software 2011-02-05T00:40:49 McLeopold: all the core data structures are immutable, Clojure is _almost_ purely functional (and breaks the rule to be practical), can access all of Java's libraries... very cool features if you ask me 2011-02-05T00:41:01 like prove it in one language, then make a provable translation of that code to C 2011-02-05T00:41:16 *provably correct translation 2011-02-05T00:41:47 clojure is purely functional by convention rather than by bondage and discipline 2011-02-05T00:42:08 as are most other functional languages 2011-02-05T00:43:03 elimisteve: how does clojure compare to scala? i'm slightly more familiar with the latter 2011-02-05T00:43:38 like i know clojure is a lisp and conventionally pure, has STM and stuff 2011-02-05T00:43:45 way different. Scala is multi-paradigm, Clojure is just functional. No classes in Clojure. 2011-02-05T00:44:14 well i don't see OO and functional as mutually exclusive things 2011-02-05T00:44:15 how are the languages for the contest chosen? 2011-02-05T00:44:22 either can be embedded in the other 2011-02-05T00:44:35 pyro-: by whatever starter packs get made, basically 2011-02-05T00:44:46 Scala is "Java done right" I suppose. Clojure tries to be a modern, practical Lisp with excellent concurrency primitives plus other features. 2011-02-05T00:44:49 pyro-: helps to make some well-tested instructions for admins to add language support 2011-02-05T00:45:04 if you can get source to compile in ubuntu, and write a starter back, then it's in 2011-02-05T00:45:08 pyro-: it's all open source, so 2011-02-05T00:45:10 Scala definitely shows they're not mutually exclusive 2011-02-05T00:45:28 elimisteve: well, i'm not sure scala is quite what i had in mind when i said that, though 2011-02-05T00:45:32 just as ocaml isn't 2011-02-05T00:45:43 McLeopold: what does a starter pack have to do? That is, how hard are they to write? 2011-02-05T00:45:54 i would have to be familiar with your codebase to make instructions? or just how to install instructions? 2011-02-05T00:46:11 pyro-: it's not a complicated part of the code base 2011-02-05T00:46:36 but in principle you don't even have to be familiar with it. it's just more likely to get added quickly if you have a patch 2011-02-05T00:47:03 elimisteve: pretty easy usually 2011-02-05T00:47:16 take a look at the packs from the last contest. 2011-02-05T00:47:19 who would i inform about the existance of a patch? 2011-02-05T00:47:33 McLeopold: kk good idea 2011-02-05T00:47:45 elimisteve: i'm thinking more of the typical models of OO. message passing is pretty easy to mix with functional programming, at least when you have the ability to use some sort of side effects in a principled way. 2011-02-05T00:47:54 pyro-: a patch to a language you want to use? 2011-02-05T00:48:08 yes 2011-02-05T00:48:15 Zannick or amstan 2011-02-05T00:48:25 elimisteve: and OO can be modeled as an F-coalgebra, which is a very functional sort of idea too 2011-02-05T00:48:44 *some other notions of OO 2011-02-05T00:48:49 pff objects. poor mans closures :-P 2011-02-05T00:48:59 ha, and vice versa ;) 2011-02-05T00:49:20 :-) 2011-02-05T00:49:25 but yeah, the F-coalgebra model of OO really does post objects as poor man's closures 2011-02-05T00:49:35 *pose 2011-02-05T00:51:24 i wonder how hard it is to use virtualbox. probably having a ubuntu is a prerequisite to getting it to work on ubuntu :| 2011-02-05T00:51:36 virtualbox is pretty easy to use 2011-02-05T00:51:42 VirtualBox is pretty easy. 2011-02-05T00:51:52 pretty much just install it, launch it, and follow the wizard to set up a new VM 2011-02-05T00:51:52 I'm running Fedora in one right now. 2011-02-05T00:52:12 :D 2011-02-05T00:52:35 where does the code that i would have to patch live? 2011-02-05T00:52:38 for some OSes it can even install and configure the whole OS on your behalf 2011-02-05T00:52:38 or will live/ 2011-02-05T00:52:51 assuming you have a cd 2011-02-05T00:53:01 you just give it all the info it needs up front 2011-02-05T00:53:03 @repo 2011-02-05T00:53:04 McLeopold: repo = https://github.com/amstan/aichallenge/ 2011-02-05T00:53:05 well im sure its possible to make a ubuntu cd :D 2011-02-05T00:53:16 pyro-: somewhere in there ^^ 2011-02-05T00:53:16 well, or an iso 2011-02-05T00:53:23 ty :D 2011-02-05T00:55:17 *** iFire has quit IRC (Read error: Connection reset by peer) 2011-02-05T00:55:44 *** iFire has joined #aichallenge 2011-02-05T00:55:48 well i must wait for someone else to make one first so i can copy the arrangements 2011-02-05T00:56:11 It might be a couple weeks yet. 2011-02-05T00:56:26 Wait for the first ones to come out, then copy those. 2011-02-05T00:56:31 yes 2011-02-05T01:06:54 pyro-, elimisteve: the bots just communicate with the engine via standard io 2011-02-05T01:07:31 so you basically just read from input information about the game, do whatever you want, then output your moves in the specified format, it's quite simple :) 2011-02-05T01:09:56 yes 2011-02-05T01:10:09 but also a compiler or interpreter must be set up 2011-02-05T01:11:01 a what? 2011-02-05T01:11:10 for just the bot you only need to take input and pass output 2011-02-05T01:11:42 yes 2011-02-05T01:11:44 add in a few simple data structures and a basic strategy and you have yourself a starter bot 2011-02-05T01:11:54 but some machine must run the program 2011-02-05T01:12:14 well yeah...? 2011-02-05T01:16:55 is there a way to get the successor of a character in python 2011-02-05T01:18:49 yep 2011-02-05T01:19:40 chr(ord(var)+1) 2011-02-05T01:19:50 a 2011-02-05T01:20:10 ... i thought python was meant to be easy :P 2011-02-05T01:20:30 why is there no ++ function in python D: 2011-02-05T01:20:31 well, there's no method on the char class, if that's what you want 2011-02-05T01:20:54 because python is meant to be readable :P 2011-02-05T01:21:25 ^^ that isn't readable 2011-02-05T01:21:27 var++ is 2011-02-05T01:21:36 or succ var in haskell etc. 2011-02-05T01:21:47 until you start doing ++bla = ++bal2 crap 2011-02-05T01:22:11 the less characters/lines i use, the happier i am 2011-02-05T01:23:44 that code above explains what is happening, convert char to number, add one, convert back to char 2011-02-05T01:29:29 if you're doing map code, you might consider a lookup list instead 2011-02-05T01:30:18 player_code = [chr(a) for a in range(97,123)] 2011-02-05T01:41:48 *** mega1 has joined #aichallenge 2011-02-05T01:49:49 *** McLeopold has quit IRC (Quit: Leaving) 2011-02-05T01:56:02 *** bhasker has quit IRC (Quit: bhasker) 2011-02-05T02:14:01 *** smellyhippy has quit IRC (Ping timeout: 250 seconds) 2011-02-05T02:20:11 *** amstan has quit IRC (Ping timeout: 240 seconds) 2011-02-05T02:20:12 *** smellyhippy has joined #aichallenge 2011-02-05T02:32:12 *** boegel has joined #aichallenge 2011-02-05T03:12:41 oh boy, what's the easiest way to print a list of lists of characters in python when i want "W " at the start of each line 2011-02-05T03:13:17 i don't want spaces between each character for each row either 2011-02-05T03:17:47 'W'.join() ? 2011-02-05T03:17:55 oh, wait 2011-02-05T03:17:57 at the start 2011-02-05T03:17:59 hmm 2011-02-05T03:19:12 *** boegel has quit IRC (Quit: Leaving) 2011-02-05T03:25:48 antimatroid: one list of chars per line? 2011-02-05T03:26:07 elimisteve: yes, but with "W " at the start of each line 2011-02-05T03:26:24 * antimatroid doesn't really use python other than to do stuff for this 2011-02-05T03:29:40 for list in lists: 2011-02-05T03:29:40 print "W", 2011-02-05T03:29:40 for char in list: 2011-02-05T03:29:40 print char, 2011-02-05T03:29:40 print 2011-02-05T03:30:16 wont that give me a space between each char? 2011-02-05T03:30:19 i don't want that space? 2011-02-05T03:30:22 yes 2011-02-05T03:30:24 how do i cancel the space? 2011-02-05T03:30:24 okay... 2011-02-05T03:30:34 i am disliking python more and more :( 2011-02-05T03:30:40 but i'm so sick of templates in c++ :( 2011-02-05T03:30:47 i need to keep learning haskell 2011-02-05T03:31:50 http://codepad.org/jiZdgP67 2011-02-05T03:31:59 that's the current state of my awfully programmed map generator 2011-02-05T03:32:03 for list in lists: 2011-02-05T03:32:03 print "W " + ''.join(list) 2011-02-05T03:32:06 there is an example map at the bottom of the page 2011-02-05T03:32:18 cheers 2011-02-05T03:32:22 2 lines good enough? :-) 2011-02-05T03:33:26 i'd still prefer something like "cout << "W " << list << endl;" :P 2011-02-05T03:33:36 but it'll do 2011-02-05T03:34:23 sure i might have to define "ostream& operator<<(ostream &o, const List &plist);" elsewhere, but I love me my operators 2011-02-05T03:34:24 you would?? To each his own, for sure 2011-02-05T03:34:30 ha okay 2011-02-05T03:35:02 i do wish i had more flexibility with what an operator could be and the precedence of them, but apparently i can't have everything 2011-02-05T03:43:00 *** mega1 has quit IRC (Ping timeout: 240 seconds) 2011-02-05T03:46:52 *** McLeopold has joined #aichallenge 2011-02-05T03:47:17 contestbot later tell j3camero http://ietherpad.com/TR0zbEqvx1 2011-02-05T03:47:17 McLeopold: Yes master! 2011-02-05T03:51:11 McLeopold: very alpha map gen for you 2011-02-05T03:51:17 ... when it decides to load 2011-02-05T03:53:49 McLeopold: http://codepad.org/eRQxwBdP 2011-02-05T03:54:15 it appears to have the tiniest of bugs 2011-02-05T03:54:29 it wasn't meant to place resources less than 3 squares away from a starting position 2011-02-05T03:54:42 less than 4 even 2011-02-05T03:55:13 W is my wall syntax 2011-02-05T03:55:24 I think you want M 2011-02-05T03:55:28 for map 2011-02-05T03:55:33 small detail 2011-02-05T03:55:37 that i do, fixed 2011-02-05T03:55:55 line 46 2011-02-05T03:56:21 the code is awful, apologies, i still don't know python at all :) 2011-02-05T03:57:58 *=food? 2011-02-05T03:58:21 that's what your writing says :P 2011-02-05T03:59:09 kinda slow 2011-02-05T03:59:35 it is, that's the is_valid calls 2011-02-05T03:59:51 to see that every square is accessibly after adding every wall 2011-02-05T03:59:56 accessible* 2011-02-05T04:00:33 check out that maze line I sent you 2011-02-05T04:00:55 the guys has eleven ways of creating a minimal spanning tree, without much effort 2011-02-05T04:01:29 http://weblog.jamisbuck.org/ 2011-02-05T04:02:35 I just get errors 2011-02-05T04:03:43 with my map gen? 2011-02-05T04:03:48 or on codepad? 2011-02-05T04:03:53 whoops, bad shebang 2011-02-05T04:04:32 hmm, if one finds a loop with walls, moving diagonally, from the wall just added, would that be necessary for a region to have been cut off? 2011-02-05T04:04:47 moving orthogonally or diagonally* 2011-02-05T04:05:25 yep, diagonal counts when looking for wall loops 2011-02-05T04:05:35 that should speed it up a bit 2011-02-05T04:11:09 simulating... 2011-02-05T04:13:36 too much food 2011-02-05T04:13:47 especially when we are spawning more 2011-02-05T04:16:51 http://imgur.com/Luatk 2011-02-05T04:17:01 antimatroid: have you used github before? 2011-02-05T04:17:41 McLeopold: I tried and gave up :P 2011-02-05T04:17:58 food is easy to play around with, tweak the food proportion numbers near the top 2011-02-05T04:18:12 I don't like how noisy the map looks 2011-02-05T04:19:06 noisy with walls? 2011-02-05T04:19:27 yeah, single square walls everywhere 2011-02-05T04:21:40 red kicked ass pretty well there 2011-02-05T04:21:45 It's not bad, I just think it lacks features. 2011-02-05T04:22:04 it's only just been thrown together 2011-02-05T04:22:08 You can kinda go from any spot to any other spot in a straight line 2011-02-05T04:22:14 you're welcome to go to town with it 2011-02-05T04:22:32 I was thinking maps would look more like earth works for a military campain. 2011-02-05T04:22:35 adding more walls might make for more interesting map 2011-02-05T04:22:36 s 2011-02-05T04:23:01 this may be themed as a zombie game too, so maybe more "urban" 2011-02-05T04:26:12 i'm not really sure if replenishing food supplies makes the game more interesting 2011-02-05T04:26:17 rather than just makes the result more random 2011-02-05T04:26:39 particularly without field of vision 2011-02-05T04:27:43 with the simplified mechanics, it would be boring without it 2011-02-05T04:28:04 ants die too easily 2011-02-05T04:28:28 how many turns are games typically going for? 2011-02-05T04:28:29 it's needed for the proper ying/yang 2011-02-05T04:28:45 we don't know yet, and I hope we don't limit ourselves 2011-02-05T04:29:11 http://codepad.org/9svfZ6s9 2011-02-05T04:29:14 we won't know until some good bots are made 2011-02-05T04:29:20 there's a more maze like map at the bottom of that page 2011-02-05T04:30:14 okay, I want to explain the hills/food spawning issue 2011-02-05T04:30:47 If the game is only about getting the the food first, it will be a boring contest, because their is no balance 2011-02-05T04:31:09 so, you need something to draw you toward the food, and something to draw you away 2011-02-05T04:31:22 same with the hills, if we use them for scoring 2011-02-05T04:31:33 you need something to draw you in and draw you away 2011-02-05T04:32:03 if we create a game without that balance, then there will be 1 obvious dominate strategy, and the game is ruined. 2011-02-05T04:32:14 PlanetWars had that balance. 2011-02-05T04:32:35 You had to expand fast, but not to fast to leave yourself vulnerable to attack. 2011-02-05T04:32:57 *** Palmik has joined #aichallenge 2011-02-05T04:32:58 *** Blkt has joined #aichallenge 2011-02-05T04:33:10 With ants, I'm hoping, you need to protect the hills with ants, but you need to venture away from them to get reinforcements. 2011-02-05T04:33:20 I think that will provide a good balance. 2011-02-05T04:34:12 If the scoring is just food found, you lose that balance. 2011-02-05T04:34:12 this is a good idea. 2011-02-05T04:35:22 the normal way to balence is to have limited resources that you must fight for 2011-02-05T04:35:31 as opposed to resources apearing randomly 2011-02-05T04:36:00 then the balance comes from whether or not a food supply is worth the effort 2011-02-05T04:36:40 that's not balance, that's game progression 2011-02-05T04:36:43 how are you doing ant hills? 2011-02-05T04:36:54 with the "!" 2011-02-05T04:37:49 yeah, no, in the game, what are they specifically in your current thoughts? 2011-02-05T04:37:54 with random resources, you don't know where to protect to insure growth, so you must hold as much territory as possible to have more growth than the opponent. 2011-02-05T04:38:12 antimatroid: control points, 1 point per turn for controlling in 2011-02-05T04:38:44 hills need a tight dense defense, which means less territory and less reinforcements. 2011-02-05T04:39:07 so you can't have your cake and eat it too, which is the point 2011-02-05T04:40:15 how are they created/claimed/destroyed? 2011-02-05T04:40:57 claiming will work like spawning new ants, you must have a live ant next to it, and not be in contention with another player. 2011-02-05T04:41:00 how are you planning to work out which player killed a dying ant? 2011-02-05T04:41:08 I'm not 2011-02-05T04:41:35 If I need to, then when an ant dies, any enemy within range get's equal credit. 2011-02-05T04:41:36 what's the current intended rule for an ant to die? 2011-02-05T04:42:01 if it is near a less occupied enemy, it dies 2011-02-05T04:42:30 after a turn, there cannot be opposing ants next to each other 2011-02-05T04:42:46 with the way we are doing death and birth right now 2011-02-05T04:43:02 "near a less occupied enemy"? 2011-02-05T04:43:35 yep so if a and b are teams: a b a 2011-02-05T04:43:46 and b will die, but both a's will live 2011-02-05T04:44:13 even though the a's are next to an enemy, it is more occupied, fighting 2 ants, so it can't kill anything 2011-02-05T04:44:14 what about abc? 2011-02-05T04:44:23 b dies, a and c live 2011-02-05T04:44:58 i'm not quite getting it 2011-02-05T04:45:24 for an ant, find out how many enemies are near it 2011-02-05T04:45:38 then, for each enemy, find out how many of its enemies are near it 2011-02-05T04:45:59 if the original ant is near less enemies, then the enemy can't kill it 2011-02-05T04:46:00 sounds complicated, i like it :) 2011-02-05T04:46:17 or if the enemy is near more enemies, than the original ant, it can't kill it 2011-02-05T04:46:29 if any enemy is "less occupied" it will kill an ant 2011-02-05T04:46:53 it's actually pretty simple 2011-02-05T04:47:15 it allows one to kill the enemy without taking losses 2011-02-05T04:47:28 and it also prevents ants from blocking each other 2011-02-05T04:47:45 since if 2 ants are next to each other, someone has to die 2011-02-05T04:48:06 i'm so confused :P 2011-02-05T04:48:07 because a tie in "occupied" kills the ant 2011-02-05T04:48:54 what happens with 2011-02-05T04:48:55 a 2011-02-05T04:48:55 bab 2011-02-05T04:49:00 well, if you died if any ant was near you, that would suck, cause you could just send in suicide ants to try an take out multiple ants at once 2011-02-05T04:49:54 the middle ants die, top a survives, right b survives 2011-02-05T04:51:52 a 2011-02-05T04:51:53 abb 2011-02-05T04:52:04 ab kills both a and b yeah? 2011-02-05T04:52:39 both a's survive, 1 b dies 2011-02-05T04:52:58 just "ab" 2011-02-05T04:53:02 both of those ants die? 2011-02-05T04:53:08 oh, yeah, they die 2011-02-05T04:55:09 hmm another example 2011-02-05T04:55:09 .a 2011-02-05T04:55:09 bab 2011-02-05T04:55:09 .c 2011-02-05T04:55:10 only middle a dies? 2011-02-05T04:55:14 i think i'm with you 2011-02-05T04:55:30 *** Meatkat has joined #aichallenge 2011-02-05T04:55:50 well, c's out 2011-02-05T04:56:00 oh yeah and c :P 2011-02-05T04:56:18 there can't be ants touching at the end, even diagonal 2011-02-05T04:56:43 I think only the top a survives 2011-02-05T04:57:14 yep 2011-02-05T04:57:24 the top a is being attacked by 2 2011-02-05T04:57:36 ah okay 2011-02-05T04:57:40 but each of the attackers is being attacked by 3, so they can't kill him 2011-02-05T04:57:57 the other matchups are ties, so the die 2011-02-05T04:58:11 so basically, scan each ant for adjacent enemy count, then for each player with that > 0, if count < any of adjacent enemies count, ant dies 2011-02-05T04:58:20 <=** 2011-02-05T04:58:22 yes 2011-02-05T04:58:28 so from above... 2011-02-05T04:58:31 .2 2011-02-05T04:58:32 yep 2011-02-05T04:58:33 :) 2011-02-05T04:58:34 333 2011-02-05T04:58:37 .3 2011-02-05T04:58:51 that's actually quite neat 2011-02-05T04:59:11 there needs to be an enemy of = or < occupancy to kill you off 2011-02-05T04:59:43 i'll put together a bot after 2011-02-05T05:01:54 would you like me to add neutral hill placements to the maps? 2011-02-05T05:02:01 yeah 2011-02-05T05:02:06 all hills are neutral 2011-02-05T05:02:18 1 per region to start with? 2011-02-05T05:02:20 the are a blocking obstacle, like a wall 2011-02-05T05:02:47 I'd put some on the line between regions if possible 2011-02-05T05:03:09 you'd have to have odd distance between starting ants 2011-02-05T05:03:09 at articulation points? 2011-02-05T05:03:17 sure 2011-02-05T05:03:19 oh wait, nevermind i see what you mean 2011-02-05T05:04:03 remember to include hills in the wall loop check 2011-02-05T05:04:29 food is going to block too, but I don't think it will really come up, since they turn into ants 2011-02-05T05:04:29 as in everything should be asseccible withoutout walking over hills? 2011-02-05T05:04:49 right, hills will block movement 2011-02-05T05:05:04 what happens to a "destroyed" hill? 2011-02-05T05:05:09 does it disappear? 2011-02-05T05:05:18 I haven't written that it. 2011-02-05T05:05:56 I depends on how we do scoring if we will destroy hills. 2011-02-05T05:06:01 I'm leaning toward not 2011-02-05T05:06:02 *** delt0r___ has joined #aichallenge 2011-02-05T05:06:04 it could be a they claim the hill deal 2011-02-05T05:06:09 which would be better 2011-02-05T05:06:17 2 points per turn 2011-02-05T05:06:21 for controlling 2 hills 2011-02-05T05:06:58 if there is a tie for control of a pre-owned hill, it becomes neutral for the time being or something 2011-02-05T05:07:06 yes 2011-02-05T05:07:12 you must have absolute control 2011-02-05T05:07:39 so, sending in a ant to touch it makes them lose 1 point for a turn 2011-02-05T05:07:43 *** delt0r_ has quit IRC (Ping timeout: 255 seconds) 2011-02-05T05:22:08 lamest thing about scaning by walls - i have to search everything past the second round looking for the newly added wall again 2011-02-05T05:29:35 good day everyone 2011-02-05T05:33:55 Blkt: good evening :) 2011-02-05T05:34:42 McLeopold: http://codepad.org/i2VF5UOE 2011-02-05T05:34:54 I think that should be faster (is_valid has been changed) 2011-02-05T05:35:00 oh, but it's not calling it properly, hang on 2011-02-05T05:35:58 now it's broken, ehe 2011-02-05T05:37:00 *** melonar has joined #aichallenge 2011-02-05T05:40:12 *** Kingpin13 has joined #aichallenge 2011-02-05T05:44:24 this isn't as trivial as i thought 2011-02-05T05:46:51 you only have to build a single players grid, then copy it, right? 2011-02-05T05:47:10 i think i need to check the whole map at once 2011-02-05T05:47:27 i think i have it worked out intuitively 2011-02-05T05:47:32 my code is just buggy 2011-02-05T05:48:04 I gotta sleep now, it's 2:36am 2011-02-05T05:48:50 *** boegel has joined #aichallenge 2011-02-05T05:48:52 I've got the hill scoring working now. 2011-02-05T05:51:54 contestbot later tell j3camero https://github.com/McLeopold/aichallenge/tree/simpleants 2011-02-05T05:51:54 McLeopold: Yes master! 2011-02-05T05:52:19 night :) 2011-02-05T06:14:00 *** boegel has quit IRC (Quit: This computer has gone to sleep) 2011-02-05T07:29:19 *** mceier has joined #aichallenge 2011-02-05T08:35:45 *** dlila has joined #aichallenge 2011-02-05T08:56:02 *** delt0r_ has joined #aichallenge 2011-02-05T08:57:27 *** delt0r___ has quit IRC (Ping timeout: 240 seconds) 2011-02-05T09:03:53 *** pyro- has quit IRC (Quit: WeeChat 0.3.4) 2011-02-05T09:35:13 *** smellyhippy has quit IRC (Ping timeout: 265 seconds) 2011-02-05T09:52:12 *** smellyhippy has joined #aichallenge 2011-02-05T10:03:08 *** Blkt has quit IRC (Quit: Error: do not makunboud t please!) 2011-02-05T10:06:54 *** dlila has quit IRC (Read error: Connection reset by peer) 2011-02-05T10:07:55 *** dlila has joined #aichallenge 2011-02-05T10:15:50 *** j3camero has joined #aichallenge 2011-02-05T10:16:11 McLeopold you around? 2011-02-05T10:17:37 hi 2011-02-05T10:17:48 Hey. What time zone are you in by the way? 2011-02-05T10:17:56 pst 2011-02-05T10:18:10 Wow you're up early. What gives? 2011-02-05T10:18:26 baby's crying 2011-02-05T10:18:33 Aww :-( 2011-02-05T10:18:47 *** melonar has quit IRC (Ping timeout: 255 seconds) 2011-02-05T10:18:48 So I guess it's not time for you to start coding for today :-) 2011-02-05T10:19:55 did you take a look at what I've done already? 2011-02-05T10:20:16 Just about to pull it down. 2011-02-05T10:20:19 *** Naktibalda has joined #aichallenge 2011-02-05T10:20:43 I just finished all the actual work I have to do today, so I'm starting on ai contest stuff for the day. 2011-02-05T10:21:08 cool 2011-02-05T10:21:42 the major piece is getting the hunter bot to act like a real bot, where it only gets standard in and outputs standard out 2011-02-05T10:21:42 I read your forum post yesterday about the alternate battle resolution rules. Cool stuff. 2011-02-05T10:21:53 Yes. 2011-02-05T10:22:37 I will check that out. 2011-02-05T10:22:48 also, deepcopy is a performance hog, but I think it will go away eventually 2011-02-05T10:22:57 There is also the existing sadbox module for doing that. 2011-02-05T10:23:30 Communicating with clients via stdin/stdout i mean. 2011-02-05T10:24:02 yeah, I figured you or Zannick could do that 2011-02-05T10:24:14 I've really only been focusing on mechanics and gameplay 2011-02-05T10:25:24 Sounds good. I'll try to get it all wired up. 2011-02-05T10:26:10 how complicated are you willing for the game to get? 2011-02-05T10:31:47 I like to keep things as ridiculously simple as possible. 2011-02-05T10:31:49 *** melonar has joined #aichallenge 2011-02-05T10:32:21 *** bhasker has joined #aichallenge 2011-02-05T10:32:40 Let me clarify that. What I don't like is "non-visible" state in the game. A non-computer-scientist should be able to learn the rules in less than 10 seconds by glancing at a YouTube video of a game in progress. 2011-02-05T10:33:10 so no fog of war? 2011-02-05T10:33:14 So complex schemes involving hit points, armor, level-ups and so on are things I want to avoid. 2011-02-05T10:33:26 Fog of war is something that I planned on having, yes. 2011-02-05T10:34:13 okay, fog is doable, 2011-02-05T10:34:17 I was hoping that the visualizer could be in "map hack" mode by default, where you can see the whole map. However, you would have the option to see the map as any of the players see it. 2011-02-05T10:34:32 I wonder of the map dimensions should be hidden too, along with the number of players 2011-02-05T10:34:40 Definitely yes :-) 2011-02-05T10:34:52 Even your absolute coordinates on the map should be hidden. 2011-02-05T10:34:53 okay, antimatroid came up with a method for that 2011-02-05T10:35:05 So every player starts at (0,0) 2011-02-05T10:35:49 the only other thing we discussed was the ability to manipulate the map 2011-02-05T10:35:54 move barriers and such 2011-02-05T10:35:58 Oh interesting. 2011-02-05T10:36:03 Maybe even create new barriers? 2011-02-05T10:36:18 we where thinking ants die, and their bodies are blocking 2011-02-05T10:36:25 and you can move them around 2011-02-05T10:36:37 jmcarthur is working on the mechanics for that 2011-02-05T10:36:59 Oh interesting. 2011-02-05T10:37:05 the other suggestion was using elevation 2011-02-05T10:37:16 so you can dig some dirt, then place it somewhere 2011-02-05T10:37:22 How would elevation factor into the game? 2011-02-05T10:37:26 Oh okay. 2011-02-05T10:37:29 you'd have level, hold and wall, but no more 2011-02-05T10:37:37 *hole* 2011-02-05T10:37:56 So the ants could create all manner of trenches and walls 2011-02-05T10:38:05 right 2011-02-05T10:38:21 you can fill in a trench to cross it 2011-02-05T10:38:28 or you can tear down a wall 2011-02-05T10:39:45 it makes the bot commands slightly more complicated 2011-02-05T10:40:01 right now, with movement only a bot sends a "A x y d" command 2011-02-05T10:40:23 this would increase it to "A type x y direction", where type is move, dig, place 2011-02-05T10:40:45 still pretty easy to program 2011-02-05T10:41:06 the visualizer would be a bit more difficult to potray what is happening in the game 2011-02-05T10:42:11 j3camero: a lot of the idea's are written down here: http://ietherpad.com/TR0zbEqvx1 2011-02-05T10:42:40 *** Mathnerd314 has quit IRC (Ping timeout: 240 seconds) 2011-02-05T10:43:26 I may add to this now. 2011-02-05T10:44:06 sure, just name yourself 2011-02-05T10:45:29 *** McLeopold has quit IRC (Quit: Leaving) 2011-02-05T10:45:52 *** McLeopold has joined #aichallenge 2011-02-05T10:46:46 *** Zannick has quit IRC (Ping timeout: 265 seconds) 2011-02-05T10:47:36 *** Zannick has joined #aichallenge 2011-02-05T10:49:54 *** mceier has quit IRC (Quit: leaving) 2011-02-05T12:12:49 *** boegel has joined #aichallenge 2011-02-05T12:13:12 *** bhasker has quit IRC (Quit: bhasker) 2011-02-05T12:13:59 *** Palmik_ has joined #aichallenge 2011-02-05T12:15:28 *** Palmik has quit IRC (Ping timeout: 240 seconds) 2011-02-05T12:17:15 *** amstan has joined #aichallenge 2011-02-05T12:17:16 *** ChanServ sets mode: +o amstan 2011-02-05T12:32:43 *** jmpespxoreax has joined #aichallenge 2011-02-05T13:06:07 *** delt0r___ has joined #aichallenge 2011-02-05T13:06:26 *** mega1 has joined #aichallenge 2011-02-05T13:07:29 *** delt0r_ has quit IRC (Ping timeout: 240 seconds) 2011-02-05T13:09:19 *** boegel has quit IRC (Quit: Leaving) 2011-02-05T13:41:39 *** McLeopold has left #aichallenge 2011-02-05T14:12:21 *** Naktibalda has quit IRC (Remote host closed the connection) 2011-02-05T14:13:20 *** Meatkat has quit IRC (Ping timeout: 246 seconds) 2011-02-05T14:42:31 *** amstan has quit IRC (Ping timeout: 240 seconds) 2011-02-05T14:45:18 *** boegel has joined #aichallenge 2011-02-05T14:52:56 *** McLeopold has joined #aichallenge 2011-02-05T14:56:13 is there any ai contest running currently ? 2011-02-05T14:56:35 no 2011-02-05T14:56:39 nullkuhl: Not currently. Organizers hope to get one underway in the coming weeks, though. 2011-02-05T14:57:15 i was asking about ai contests in general, google ai challenge or anything like it :) 2011-02-05T14:57:22 you can subscribe to the announcements forum thread 2011-02-05T14:57:51 there was this snowball game... 2011-02-05T14:58:02 Frontier: still running ?? 2011-02-05T14:58:17 i have no idea 2011-02-05T14:58:49 anyway i am off 2011-02-05T14:58:55 *** Frontier has quit IRC (Quit: Ex-Chat) 2011-02-05T15:04:40 *** Mathnerd314 has joined #aichallenge 2011-02-05T15:10:33 j3camero: you still programming? 2011-02-05T15:11:08 nullkuhl: from memory, snowballs finishes in like 24 hours 2011-02-05T15:11:45 antimatroid: link ? 2011-02-05T15:11:52 http://queue.acm.org/icpc/ 2011-02-05T15:12:27 i really really hate the way they do movement collisions 2011-02-05T15:12:49 it *works*, but what is/isn't allowed is not intuitive in the slightest 2011-02-05T15:12:52 antimatroid: just back from lunch. I am starting now. First to check out code from github and see what has already been done... 2011-02-05T15:13:14 j3camero: I have a very early map generator 2011-02-05T15:13:34 although it's currently broken trying to speed up the check of whether all non-wall squares are accessible 2011-02-05T15:13:56 *** Accoun has quit IRC () 2011-02-05T15:14:24 oh nice! 2011-02-05T15:14:39 I have some ideas for the map system. 2011-02-05T15:15:02 http://codepad.org/9svfZ6s9 2011-02-05T15:15:13 that is a copy of it working last night, there is a map at the bottom 2011-02-05T15:15:48 antimatroid: "Coding and preliminary matches will run from January 10, 2011 to the end of the day on February 13" 2011-02-05T15:15:58 I propose we constantly generate new maps using a generator. These maps start off in the regular rotation with low priority. We then constantly assess all the maps according to some metric. The ones that perform well get higher priority, and the ones that perform poorly eventually fall out of the rotation. That way we get a constantly changing set of interesting and fair maps. 2011-02-05T15:16:19 j3camero: a new map for every game please :) 2011-02-05T15:16:30 tweak the generator, don't re use maps 2011-02-05T15:16:40 and the generator shouldbe finalised early in the competition 2011-02-05T15:17:00 How do I interpret this map? What are X, ., and *? 2011-02-05T15:17:11 i don't care so much about that last point, but after last contest it would appear people want that 2011-02-05T15:17:33 X = wall, * = food, a,b,c = players ants 2011-02-05T15:17:36 . = land 2011-02-05T15:17:51 D rows cols players 2011-02-05T15:17:52 The problem with finalizing the generator early on is that we have to pick a point and say "no more changes". Then we can't make any changes, even if it's broken! 2011-02-05T15:18:14 I don't think we ever need to finalize since we don't ever ship a product per se. 2011-02-05T15:18:20 "even if it's broken" - make the clause that you reserve the right to change any really bad bugs 2011-02-05T15:18:32 Well that's sort of what happened last time. 2011-02-05T15:18:38 otherwise pick a date (a few weeks in) by which date any parameter decisions etc. are to be made by 2011-02-05T15:18:57 So effectively we have to say "we will make the best one we can as early as we can, and make changes whenever they are needed". That's the best we can really do. 2011-02-05T15:19:01 Churn should reduce over the course of the contest (if it's made perfect, then leave it), but I'd avoid setting some arbitrary deadline. 2011-02-05T15:19:05 it wasn't "broken" last time, it just wasn't a very good generator and people made their own assumption that it was the final one 2011-02-05T15:19:16 it was, however, not overly well labelled that it wasn't 2011-02-05T15:19:47 antimatroid: If it's made clear, then it's the competitors' problem if they make unwarranted assumptions. 2011-02-05T15:20:15 jbroman: I agree, I am a fan of as general rules as possible provided they are clear 2011-02-05T15:20:22 I don't think anything bad happened with the map generator last contest. When we made the change, nobody really got screwed over. All the predictions of doom and total unheaval of the ranking turned out to be imagined. 2011-02-05T15:20:40 there were a few people pissed off 2011-02-05T15:20:53 some people got quite pissed off, and I don't feel it was entirely unwarranted 2011-02-05T15:20:54 Like, it's an AI contest. If your bot completely breaks because of minor tweaks in the map gen, do you really deserve to win? 2011-02-05T15:21:04 it wasn't like that 2011-02-05T15:21:23 people had been making slight tweaks and testing based off the assumption that that was the generator to be used 2011-02-05T15:21:33 it was a wrong assumption, but it wasn't something that wasn't very clearly stated either 2011-02-05T15:22:31 It was pretty clean: anything can change, at any time, for any reason. 2011-02-05T15:22:34 clear* 2011-02-05T15:22:36 j3camero: I agree with you, but unfortunately the objective is to maximise the number of competitors no? 2011-02-05T15:22:47 keeping them happy is important, even if slightly irrational 2011-02-05T15:23:30 "anything can change, at any time, for any reason." that is not a good ai contest 2011-02-05T15:23:45 I'd say that's one of the objectives yeah. I got the impression that a small handful of people were protesting loudly citing concerns that did not ending up materializing when we made the changes. The other 6995 people did not care. 2011-02-05T15:24:12 imo a good ai contest will come from general but clear, unambiguous rules (to which the level of generality is followed at the end), so people need to employ a very general solution strategy to win 2011-02-05T15:24:15 So nobody got hurt, and at the same time we all had funner maps to play on. Win win. 2011-02-05T15:24:41 i don't think it was just a few people who were upset by the changes 2011-02-05T15:25:30 having a different height per square doesn't need to be dynamic as well, that's another way of splitting the discrete map up 2011-02-05T15:25:43 I am generally agreeing with you antimatroid. We should do whatever we can, in our power, to make things as clear as we can as early as we can. But we cannot do any more than that can we? And as the contest goes on, people will discover things about the game that we never could have thought of originally. So we fix problems that come up as they come up, as we should. 2011-02-05T15:25:51 *** Accoun has joined #aichallenge 2011-02-05T15:25:53 randomly assign heights and only allow people to walk from one square to another if they height difference is < h 2011-02-05T15:26:48 j3camero: i'm with you on that, i think that message needs to be displayed a bit better on the actual website though, and the changes in the maps did come quite late for a 3 month contest 2011-02-05T15:27:01 the plan is to have a fairly solid map generator from the start this time anyway 2011-02-05T15:27:10 so hopefully such an issue doesn't arise 2011-02-05T15:27:20 *** melonar has left #aichallenge ("Leaving") 2011-02-05T15:27:49 back to the heights of squares, then you don't even need walls, they are created implicitly 2011-02-05T15:27:54 Inevitably, people will discover certain sorts of degerate situations in whatever map gen we do create. I believe the policy should be to fix these as they come up, rather than not fixing problems for the sake of stability. 2011-02-05T15:28:27 the way i see it, we should have a spec that contains the concrete things, and the spec can never be loosened, only tightened 2011-02-05T15:28:41 but the spec should start out very loose so we can feel things out 2011-02-05T15:28:45 jmcarthur: that's something I like, excepting any "real bugs" 2011-02-05T15:28:59 same sort of thing goes for the map generator 2011-02-05T15:29:01 What if someone finds a problem with the spec, and manages to create an invincible bot by epxloiting the rules? 2011-02-05T15:29:05 Then we change the spec. 2011-02-05T15:29:07 only restrict the set of maps it's "picking" from 2011-02-05T15:29:29 the spec was waaaay too complicated to begin with if there is even a remote chance of an exploitable bug being in it 2011-02-05T15:29:41 or overly tight 2011-02-05T15:30:13 the spec i wrote for planet wars is not an example of the kind of spec i am talking about 2011-02-05T15:30:16 that was a retroactive spec 2011-02-05T15:30:42 I agree with the general idea jmcarthur. We should try to have as much backward compatibility as possible. We should try to choose changes that break past bots as much as possible. 2011-02-05T15:30:59 j3camero: i'm not sure it really matters about passing players relative information 2011-02-05T15:31:00 *as little as possible 2011-02-05T15:31:01 As little as possible* 2011-02-05T15:31:11 haha 2011-02-05T15:32:13 the first couple weeks of the contest should have no spec, basically, but the first version of the spec that *is* released should not tightly follow whatever current implementation there is 2011-02-05T15:32:28 I mean, people will find problems with whatever we lay down initially. There are just so many of them and they are so smart that they will find problems. If our policy is "just create a spec that we never have to go back on", then that's not a serious proposal for avoiding changes later on. 2011-02-05T15:32:29 that was the problem with my planet wars spec. i was too specific, and then we wanted to change things 2011-02-05T15:32:37 with my current map generator, you can be sure a player started in the same row and the same column as you, possibly more, same as if you come across an ant hill, you can be sure there is one in the same row and the same column somewhere 2011-02-05T15:32:49 is that okay? i'm not sure that can be removed 2011-02-05T15:33:25 i disagree. i think if we are principled about it then we can have a spec that we never have to retroactively loosen or refocus 2011-02-05T15:33:50 it's just a matter of treating everything we put into it as playing with fire 2011-02-05T15:34:03 i think that's only decreasing the chance of us missing something 2011-02-05T15:34:07 Then people will hound you for clarifications. They will harass you to make a firm decision on a speciic point and then etch it into stone. 2011-02-05T15:34:10 there's always a chance of us missing something 2011-02-05T15:34:24 being ambiguous and being loose are different things 2011-02-05T15:34:49 j3camero: i was just thinking yesterday, people will always find something "wrong", the more wtf their "queries" are, the more "well made" the game must be :D 2011-02-05T15:35:00 if there is a need for clarification, then we need to work on the language. if there is a need for a firm decision, we'll know when people start complaining 2011-02-05T15:35:08 at least there is opportunity to complain 2011-02-05T15:35:39 antimatroid: that is EXACTLY what I have learned from experience. 2011-02-05T15:37:08 with fog of war, without being explicitly told, it wont be obvious as to how many players there are on the grid or the layout of players regions (ie. for 12 you might have 2x6, or 3x4) 2011-02-05T15:37:26 the important thing to me is projecting a timeline for certain kinds of firm decisions to be made 2011-02-05T15:37:36 *** boegel has quit IRC (Quit: Leaving) 2011-02-05T15:38:41 antimatroid: my experience is that people are always yelling at the organizers. No matter how well or poorly things are going, there are always the same number of people yelling with the same intensity. What's important is what they are yelling *about*. If people are yelling about the web server being down, then you have a problem. So you fix that and you make things stable. Then people complain about emails not working right. Fair enough, so you fix tha 2011-02-05T15:39:34 j3camero: yeah, that's my point, there are always going to be things that aren't working properly for people, the less serious the problems are, the better everything must be running for everyone as a whole 2011-02-05T15:39:55 that isn't to say we shouldn't aim for no issues though 2011-02-05T15:40:09 Indeed. That doesn't mean that we shouldn't care about the map gen. It's just a perspective. 2011-02-05T15:40:30 what kind of vision radius are you looking at having? 2011-02-05T15:40:31 It's just to explain why I am so happy that people were so upset about the map gen! 2011-02-05T15:40:50 map gen is one of the more important things imo, along with the actual game rules 2011-02-05T15:40:53 as a competitor 2011-02-05T15:41:10 I was thinking like 10 vision radius ish. But we can make it configurable and the keep changing it as the contest goes on :-) 2011-02-05T15:41:14 same here 2011-02-05T15:41:57 i couldn't care less about many of the server issues that were treated like emergencies. i'd have rather been told earlier whether or not the number of turns would be static or variable 2011-02-05T15:42:32 yeah, basically anything relevant to my strategy is of highest priority to me 2011-02-05T15:42:47 and even though i had a favorite choice, i'd have rather been told *either* of them for sure rather than just bickering about it constantly 2011-02-05T15:42:56 the rest plays second fiddle 2011-02-05T15:43:15 the tcp servers were a perfectly fine substitute for the main server 2011-02-05T15:43:25 and in many ways better 2011-02-05T15:43:39 yeah, i didn't upload to the main server for about a month at the end, no need 2011-02-05T15:43:43 although having access to the main server was important for making sure it will work in the tournament 2011-02-05T15:43:52 an official tcp is a very good idea though 2011-02-05T15:44:16 I would have to say that a lot of the uncertainty about rules was my bad during Planet Wars. I tried to leave things alone so the contestants would sort it out for themselves, come to a firm decision, then implement it themselves. My mistake was thinking that they could achieve consensus on their own. :-P 2011-02-05T15:44:39 we didn't need consensus. we needed closure. ;) 2011-02-05T15:44:42 people have differeing preferences, social choice is VERY complicated 2011-02-05T15:44:53 in these situations, it's often easier to just have a dictator make a decision 2011-02-05T15:45:17 Yeah, so maybe this time it'll be a more heavy-handed approach. I'll just look at both sides and end the debate. But I don't like being a dictator like that. 2011-02-05T15:45:24 uncertainty is very costly, it's something that I wish was an objective of governments to minimise 2011-02-05T15:45:24 the biggest problem, IMO, was that we were only able to speculate rather than test the ideas first hand 2011-02-05T15:45:34 I'll be your dictator 2011-02-05T15:45:47 McLeopold: you wouldn't get to compete :P 2011-02-05T15:45:49 for example, on number of turns, all the games were limited to 200 turns already, so we weren't able to see the effects of lengthening it 2011-02-05T15:46:05 *** Palmik_ has quit IRC (Remote host closed the connection) 2011-02-05T15:46:07 at least not in a statistically viable way 2011-02-05T15:46:16 yeah, i wanted longer games, but only because some game results would have changed (very few) 2011-02-05T15:46:31 yes, that's for sure, but the question is *how* few 2011-02-05T15:46:38 i had some idiot try and argue with me on reddit that overall strategies would have significantly varied if a much larger turn limit was imposed 2011-02-05T15:46:42 *** Palmik has joined #aichallenge 2011-02-05T15:46:51 for me it was very very few 2011-02-05T15:46:55 but it did happen on tcp a few times 2011-02-05T15:47:02 Yeah I would be amenable to appointing a "dictator" for game policy and rules issues. The problem would be in establishing a clear separation of authority. Can this person impose a ranking algorithm policy, for example? How about mandating that we support a certain library in the compile chain? 2011-02-05T15:47:07 well, i argued that overall strategies would significantly vary if a *variable* turn limit was introduced 2011-02-05T15:47:38 jmcarthur: by variable do you mean unknown? 2011-02-05T15:47:57 antimatroid: unknown would be one kind of variable, yes 2011-02-05T15:48:00 my move selection took into account the value of "claiming' something with end conditions 2011-02-05T15:48:22 the code would have remained largely unchanged for a known variable turn limit 2011-02-05T15:48:30 okay, how about... 2011-02-05T15:48:37 s/variable/nondeterministic/ 2011-02-05T15:49:04 that is, controlled by unspecified forces outside of the game 2011-02-05T15:49:40 that's effectively how it was when no turn limit was specified at all 2011-02-05T15:49:56 just that there was one, in some unspecified form 2011-02-05T15:50:22 and so people had contradictory ideas of what "the game" actually was 2011-02-05T15:50:48 yes, i think a lot of people had different ideas of what the "game" was 2011-02-05T15:50:48 should your strategies be viable in the long term? do you want to have the lead on a specific turn or for a majority of the game or for all time? 2011-02-05T15:51:00 that's why i sound like a broken record about general but clear rules :) 2011-02-05T15:51:06 me too 2011-02-05T15:52:19 IMO, any parameter that isn't fixed should vary for each game 2011-02-05T15:52:21 * antimatroid wonders how hard it would be to get a tcp server up for this ants game soonish? 2011-02-05T15:52:26 rather than having a "tentative" value 2011-02-05T15:52:43 At some point I remember a1k0n produced some evidence that suggested that adopting a different game length would not have an effect on the rankings. So I was just like "meh" and left things be. But I still didn't want to actually commit to not changing the game length because I was afraid that would tie my hands later on if there ever was a good reason to change it. It's all a tradeoff. 2011-02-05T15:53:08 j3camero: he did, but it was only luck that the existing 200 turn cap was sufficient to do that study 2011-02-05T15:53:24 I think he used some data from the TCP server, no? 2011-02-05T15:53:33 j3camero: this is why i'd rather have seen it be randomized until we nailed it down for sure 2011-02-05T15:53:36 or something 2011-02-05T15:53:44 oh he did 2011-02-05T15:53:47 imo 200 was fine in the end 2011-02-05T15:53:55 Yeah if I could do it again I would have done things that way jmcarthur. Then we get more data to make the call. 2011-02-05T15:53:56 which is even worse since it's not representative of all contestants 2011-02-05T15:54:09 we can learn from our mistakes 2011-02-05T15:54:12 :) 2011-02-05T15:54:27 yes, 200 was fine 2011-02-05T15:54:34 j3camero: the graph produced was cut off at 200 turns since we didn't have any data 2011-02-05T15:54:37 but only by luck rather than by an informed decision 2011-02-05T15:55:04 jmcarthur: maybe you can help me, i'm trying to speed up checking whether a map is *valid*, by that i mean whether every non-wall square is accessible from every other one 2011-02-05T15:55:08 McLeopold I don't remember exactly what it was, but we became pretty sure that extending the game length would not have an effect on the rankings. 2011-02-05T15:55:11 the line looked like it would have converged at 220 to 240 2011-02-05T15:55:25 not with mega1's bot :) 2011-02-05T15:55:42 IMO the spec should have given a generous range of possible values, but left unspecified how the exact number is chosen for a game. then we could have tightened the range over time and finally nailed one down with plenty of time to spare 2011-02-05T15:56:04 antimatroid: steal a flood fill from a tron bot? 2011-02-05T15:56:15 i'm using flood fill, it's too slow 2011-02-05T15:56:21 then you're doing it wrong ;) 2011-02-05T15:56:34 http://codepad.org/9svfZ6s9 2011-02-05T15:56:41 Yeah flood fill should be linear in the number of land squares. 2011-02-05T15:56:41 line 73 on that page is how i was doing it 2011-02-05T15:56:53 it is, but i have to do it every time i add walls 2011-02-05T15:57:07 even then it shouldn't be too slow 2011-02-05T15:58:49 Okay, so antimatroid. About the map gen. We have to nail down some of the rules that will affect the map gen. For example, do you think it makes sense to have the food location hardcoded on the map? Or should the engine load a map and then randomly place food? I believe the we will be randomly spawning food throughout the game anyways, so it would seem to make sense to do things at runtime. 2011-02-05T15:59:30 j3camero: i would like for replenished food to be placed symmetrically to players starting possitions 2011-02-05T15:59:49 good god, i just looked for flood fill in my tron bot and realized i never added that to my UTC algorithm. no wonder i didn't do as well as i thought i would 2011-02-05T15:59:57 i was still just using that terrible stochastic heuristic 2011-02-05T16:00:05 jmcarthur: :P 2011-02-05T16:00:12 i had used it in a previous version 2011-02-05T16:00:21 our whole evaluation was based off who could reach what squares fastest 2011-02-05T16:00:25 *UCT 2011-02-05T16:00:29 antimatroid: so you mean food would randomly spawn at each player's starting location, instead of being scattered around the map? 2011-02-05T16:00:45 right, it was kind of a dual flood fill 2011-02-05T16:00:52 voronoi-inspired type thing 2011-02-05T16:01:00 j3camero: no, but if I place a piece of food in player 1's starting region, it would also be placed in the symmetrically equivalent square for all the other players regions 2011-02-05T16:01:19 antimatroid: yeah it may be wise to do something like that. 2011-02-05T16:01:20 region assignment seems arbitrary. what if i shift, gradually? 2011-02-05T16:01:25 what i'm unsure about is whether squares should be skipped if some of those squares currently contain food but others don't 2011-02-05T16:01:42 jmcarthur: what do you mean? 2011-02-05T16:01:46 i kind of like McLeopold's proposal for legitimizing the gambler's fallacy 2011-02-05T16:01:48 I was thinking we could chop up each map into defined "regions" and food would spawn randomly inside each region simultaneously. 2011-02-05T16:02:01 i see no other way to make the game symmetric 2011-02-05T16:02:02 antimatroid: just because i start somewhere doesn't mean i will stay there 2011-02-05T16:02:16 i don't think i has to be perfectly symmetric 2011-02-05T16:02:17 jmcarthur: no, but how else do you make the game symmetric? 2011-02-05T16:02:24 imo i don't really like replenishing food 2011-02-05T16:02:26 antimatroid: have you seen McLeopold's proposal? 2011-02-05T16:02:34 no? 2011-02-05T16:02:42 antimatroid: I don't think we should make maps symmetric. I want to have like 8 person games, and the maps would be so boring. 2011-02-05T16:02:57 it isn't *perfectly* symmetric, but it's "fair" in that it tends to make sure that every area of the board gets roughly the same amount of food 2011-02-05T16:03:14 antimatroid: basically the longer an area goes without food, the most likely it is for food to spawn there 2011-02-05T16:03:18 *more likely 2011-02-05T16:03:21 these maps are symmetric other than for relative starting positions 2011-02-05T16:03:38 since it's all played on a torus 2011-02-05T16:04:35 antimatroid: McLeopold's idea also comes with the benefit that bots can guess what areas to hang around for food based on where they've seen food spawn recently 2011-02-05T16:04:44 make for somewhat more interesting strategy 2011-02-05T16:04:44 jmcarthur: that could be done while placing them in each players region symmetrically 2011-02-05T16:04:47 So I think we can do completely non-symmetric maps and still be fair. 2011-02-05T16:05:11 antimatroid: but what's the point? a "region" is arbitrary. like i said, a player doesn't necessarily want to set up a base right there where they spawn 2011-02-05T16:05:13 i'm not a fan of moving away from symmetric games 2011-02-05T16:05:35 particularly if you're moving to n>2 players 2011-02-05T16:05:37 Especially if we are always generating new maps 24 hours per day, and evaluating all the maps on an ongoing basis. Every hour we kick out the least fair 10% of the maps. 2011-02-05T16:06:00 no maps were thrown out last contest untill all were retired? 2011-02-05T16:06:23 The maps were horrible last time, I think we can do way better this time. 2011-02-05T16:06:53 you can make a symmetric map for any number of players 2011-02-05T16:06:55 I think we should generate a constant stream of interesting, non-symmetric maps. Every hour we do some stats to figure out which maps are the least fair, and kick them out. 2011-02-05T16:07:15 how do you plan to get maps for the final contest? 2011-02-05T16:07:25 i think they should all be made by a generator with no human selection 2011-02-05T16:07:36 No human selection. 2011-02-05T16:07:42 It's all done by a script. 2011-02-05T16:07:47 which is why it's important to try and make sure it will generate non-shit maps by itself 2011-02-05T16:08:00 all final maps should be brand new 2011-02-05T16:08:04 It looks at the game data and sees things like "on map 454, player 5 always loses" and kicks it out. 2011-02-05T16:08:27 why must all final maps be brand new? 2011-02-05T16:08:35 i'd rather them be well tested 2011-02-05T16:08:38 so bots haven't played on them yet 2011-02-05T16:08:50 i'd prefer a set people haven't seen 2011-02-05T16:09:04 because scripting behavior and opening books are boring 2011-02-05T16:09:05 maybe test a set of new maps privately with uploaded bots? 2011-02-05T16:09:06 just because they've been around doesn't mean people were able to code for them 2011-02-05T16:09:07 So the script would look at all the maps and do a t-test to guess the probability that the map is not 100% fair. The maps with the lowest scores get their priorities reduced. 2011-02-05T16:09:22 a certain russian wouldn't like that 2011-02-05T16:09:58 If we have like 50,000 maps then hardcoded bahaviors won't be a problem. 2011-02-05T16:09:59 if we have 100 or so maps in the rotation and they keep getting pruned every hour or so, i don't see any way that somebody could make an opening book 2011-02-05T16:10:09 especially with fog of war and many players 2011-02-05T16:10:14 Yup. 2011-02-05T16:10:20 i doubt 50,000 would be feasible at all :P 2011-02-05T16:10:29 Or we could even be evolving a different set of maps behind the scenes that nobody can see. 2011-02-05T16:10:38 eh, wasted resources 2011-02-05T16:10:44 just put more maps in the visible rotation 2011-02-05T16:10:47 j3camero: people will bitch about you selecting them then 2011-02-05T16:10:57 it's all open source, gah 2011-02-05T16:11:11 antimatroid: no, because i didn't select them. They are selected by a purely automated process. The code is open source. 2011-02-05T16:11:11 we don't care about people bitching about silly, baseless things 2011-02-05T16:11:34 you do if enough people are bitching and decide not to compete 2011-02-05T16:11:38 like certain people who claim the whole thing is rigged 2011-02-05T16:11:57 I think the process will be regarded as fair, by all except Accoun. 2011-02-05T16:12:08 whatever you do, the carrot should stay in place. 2011-02-05T16:12:15 It's a really great way to evolve really interesting and fair maps. 2011-02-05T16:12:18 if those people who are able to see the source code and everything still believe the contest is rigged, they are unlikely to compete in any circumstance 2011-02-05T16:12:50 or at least, they are unlikely to be satisfied with pretty much anything 2011-02-05T16:12:57 you also run the risk of removing maps that some bots favour? 2011-02-05T16:13:01 but a lot don't 2011-02-05T16:13:15 you're suggesting that we should intentionally favor some bots? 2011-02-05T16:13:24 this is exactly why automating is *good* 2011-02-05T16:13:30 i would personally prefer a generator was finalised upon for which maps were generated and used no matter what 2011-02-05T16:13:57 jmcarthur: i'm suggesting we may unintentionally favour a majority and disadvantage minority 2011-02-05T16:14:34 i can see that. i just don't have faith that generating for every game would yield the kind of quality maps that a set of well tested maps would be 2011-02-05T16:14:53 you can still code for the map gen 2011-02-05T16:14:59 it's all still generated by the map gen 2011-02-05T16:15:26 i understand that, my issue is something that has been discussed many times last contest 2011-02-05T16:15:26 i don't see how it would favor particular bots anyway 2011-02-05T16:15:40 it would prune based on *position* advantage, not *bot* advantage 2011-02-05T16:16:17 take for example some of the "draw" maps in planet wars, some weren't quite so trivial, and some bots might have played especially well on them 2011-02-05T16:16:32 if you pruned them out before the contest, some bots might have performed slightly differently 2011-02-05T16:16:38 sure, but they wouldn't be pruned 2011-02-05T16:16:48 because they didn't favor one position over the other 2011-02-05T16:17:00 what would be an example of something prunable? 2011-02-05T16:17:09 My concern is to raise the average "interestingness" of games. If go with symmetric maps for 8 player games... well there is only one symmetric 8 player map :-) 2011-02-05T16:17:43 j3camero: if players don't know how many players there are, they don't know the configuration 2011-02-05T16:17:58 and you can do a 1x8 or 2x4 torus split with everything symmetric 2011-02-05T16:17:59 yeah, number of players is one of those things i would want to keep variable for a while 2011-02-05T16:18:54 jmcarthur: if you go to the etherpad, you'll see a discusion on battle resolution 2011-02-05T16:19:09 j3camero wants to try and keep a 1 to 1 death ratio 2011-02-05T16:19:30 so if you see 5 enemy ants, and you send 6, you should end up with 1 left 2011-02-05T16:19:35 in general 2011-02-05T16:20:05 so the idea is that when 3 different ants converge, it is a 1 to 1 to 1 ratio of death 2011-02-05T16:20:52 so, look for pairs of opposing ants in range, if selected, recursively look for additional colors in range of the 2 to kill as many different ants at once 2011-02-05T16:21:54 i liked the current rules, it's really neat 2011-02-05T16:22:12 and if there is a 1:1 kill ratio on ants, there isn't a whole lot of strategy to fighting 2011-02-05T16:22:16 what are the current ones, what we talked about last night? 2011-02-05T16:22:20 yeah 2011-02-05T16:22:26 i hate the serial number stuff 2011-02-05T16:22:30 I know, I agree. 2011-02-05T16:22:35 with both 2011-02-05T16:22:55 and yes, i have 1:1 combat 2011-02-05T16:22:58 *hate 2011-02-05T16:23:11 But, j3camero wants the focus to be on the macro game, not micro managing ant positions 2011-02-05T16:23:13 j3camero wants to favor macro over micro 2011-02-05T16:23:15 j3camero: we don't want 1:1 combat! :P 2011-02-05T16:23:37 i would *much* rather focus on micro. i think it's both more interesting to code *and* more interesting to watch 2011-02-05T16:23:47 yeah, i'm all about the micro 2011-02-05T16:23:55 If there is a way to kill N ants using less than N ants, then either the attacker or the defender will have the ability to enforce that outcome as a condition of battle. Therefore either attackers or defenders will have a ridiculous advantage that breaks the game. Hence we must go with a 1:1 death ratio. That's my logic. 2011-02-05T16:24:02 has there been any discussion of the bodies stuff? 2011-02-05T16:24:03 the macro should be an interesting result of the micro 2011-02-05T16:24:24 j3camero: what? 2011-02-05T16:24:30 j3camero: huh? it's a tactical decision, not just something that favors one or the other 2011-02-05T16:24:45 you can set up armies in good positions to trap wandering ants 2011-02-05T16:24:55 and send around interesting structures capable of fighting well etc. 2011-02-05T16:25:01 it adds a whole component to the game 2011-02-05T16:25:05 it would be awesome to watch 2011-02-05T16:25:14 and awesome to code for 2011-02-05T16:25:19 we could switch this to an undirected graph, with many ants per space 2011-02-05T16:25:26 then it can become simplified risk 2011-02-05T16:25:31 like planet wars? ;) 2011-02-05T16:25:40 :P 2011-02-05T16:25:42 yup 2011-02-05T16:26:18 but there is not a path between every planet combo, and if there is, it's distance 1 2011-02-05T16:26:34 and growth rates are random 2011-02-05T16:26:36 ish 2011-02-05T16:26:42 many ants per space is tough to visualize 2011-02-05T16:26:55 i wanted to do ants on a directed graph with a fog of war 2011-02-05T16:26:59 at least if the maps are as huge as i think j3camero is wanting 2011-02-05T16:27:03 no it's not, its just a number with a color 2011-02-05T16:27:06 so there would be "sink holes" that you could walk down and not get back out of etc. 2011-02-05T16:27:21 what size maps are we talking? 2011-02-05T16:27:33 i'm thinking up to like 64x64 would be quite large 2011-02-05T16:27:35 j3camero keeps talking about having to zoom if if you want to understand micro 2011-02-05T16:27:40 large enough that you can't see ant detail 2011-02-05T16:27:41 *zoom in if 2011-02-05T16:28:38 i think 10x10 is too small, but 500x500 is too large :) 2011-02-05T16:28:52 well, actually, the latter might not be too large. i'd need to see it 2011-02-05T16:28:59 10000x10000 is certainly too large though 2011-02-05T16:29:09 500x500 is too large 2011-02-05T16:29:13 do you want me to run a 500x500 simulation? 2011-02-05T16:29:14 how 2011-02-05T16:29:24 McLeopold: go for it 2011-02-05T16:29:30 cut it short if you need to 2011-02-05T16:29:35 I want to see the result too. 2011-02-05T16:29:39 we still need some turn limit, as far as i know servers are still a bottleneck? 2011-02-05T16:29:59 turn limit should be variable until we nail it down though 2011-02-05T16:30:08 I will try to get Google or some other tech company to give us shit tons of money so we can run a big farm of game servers. 2011-02-05T16:30:10 or just long 2011-02-05T16:30:12 i guess 2011-02-05T16:30:27 my point is that the dimensions affect the required turn limit for an interesting/sufficient game 2011-02-05T16:30:33 yeah 2011-02-05T16:30:39 i don't see that as a problem 2011-02-05T16:31:01 completing enough games at the end for accurate rankings is 2011-02-05T16:31:07 considering that this is a many-player FFA anyway, ranking will need fewer games to converge 2011-02-05T16:31:39 500x500 is kinda slow 2011-02-05T16:31:47 the trueskill papers confirm this with statistics 2011-02-05T16:31:52 I don't think it's feasible for the contest 2011-02-05T16:31:55 let's say each player gets 0.5 seconds of wall clock per move, then it should take about the same amount of time for each player to receive the same number of games no? 2011-02-05T16:32:04 McLeopold: how optimized is your version of the engine? 2011-02-05T16:32:21 antimatroid: the number games doesn't need to be as big, is my point 2011-02-05T16:32:31 antimatroid: since it's >2 players 2011-02-05T16:32:33 It's pretty fast. I have a mix of a matrix and lookup lists, so there is really no scanning to find info 2011-02-05T16:32:50 Hunter bot is still slow, since I'm doing a deep copy of the map data 2011-02-05T16:32:50 jmcarthur: i would have thought you'd need more games for n>2 to get accurate rankings 2011-02-05T16:32:57 But I don't really need to. 2011-02-05T16:32:57 more games per player, less total games 2011-02-05T16:33:13 antimatroid: like i said, trueskill papers say FFA games tend to converge on ranks faster 2011-02-05T16:33:37 FFA == fast fourier algorithm? 2011-02-05T16:33:40 faster as in with fewer games 2011-02-05T16:33:45 FFA = Free For All 2011-02-05T16:33:46 this game will have a higher probability to draw than planet wars 2011-02-05T16:34:04 McLeopold: yeah, and that will slow down convergence :\ 2011-02-05T16:34:16 i don't imagine there will be that many draws 2011-02-05T16:34:17 well, depends on draw conditions 2011-02-05T16:34:21 What do you mean draw? We have to think about how to score these games still. What does the outcome of a game look like? 2011-02-05T16:34:44 McLeopold wants to have different possible objectives for different games 2011-02-05T16:34:52 What if each player's score is the percentage of the eaten food that they ate? 2011-02-05T16:34:54 or was thinking that anyway 2011-02-05T16:34:58 I don't mean draw. 2011-02-05T16:35:02 I mean something else... 2011-02-05T16:35:04 has 2011-02-05T16:35:05 you mean noise? 2011-02-05T16:35:12 yeah, noise 2011-02-05T16:35:16 gah, apparently i've replaced my backspace key with enter 2011-02-05T16:35:33 McLeopold: has turn 0 been added to the engine? I'm going to write a simple c++ bot 2011-02-05T16:35:45 You're bots performance in a game might have more to do with what your opponents do than your bot's skill 2011-02-05T16:35:55 turn 0? 2011-02-05T16:36:03 noise isn't that big a deal though. once you dominate or completely lose a FFA, your ranking converges very fast. the ones in the middle might take a couple more games, but they eventually will do that too, then they will converge very fast 2011-02-05T16:36:23 antimatroid: think of it like slice notation 2011-02-05T16:36:40 pass players dimensions of the map and any other information (no of players if that's to be given etc.), give players time to set up (languages etc. and assign memory) then they return go, then move onto the rest of the game 2011-02-05T16:36:44 turns 0 to 2 produces 3 states and 2 turn resolutions 2011-02-05T16:37:07 turn number is up to the bots to track 2011-02-05T16:37:23 antimatroid is talking about a warmup period with some partial info about the game 2011-02-05T16:37:27 send initial state, get orders, process, produce state 2011-02-05T16:37:53 the first set of orders are for turn 1, the state given for that was state 0, the state after is state 1 2011-02-05T16:38:16 I didn't write glue code for dealing with bots. 2011-02-05T16:38:25 I was only working on game mechanics 2011-02-05T16:38:30 yeah sure 2011-02-05T16:38:32 My code is throw away code. 2011-02-05T16:38:49 is j3camero writing the actual engine then? 2011-02-05T16:38:53 yes 2011-02-05T16:39:08 I guess so hehe 2011-02-05T16:39:10 its about 2-3 per turn for 500x500 2011-02-05T16:39:23 j3camero: unless you want me to be an organizer 2011-02-05T16:39:32 *** boegel has joined #aichallenge 2011-02-05T16:39:45 you shouldn't need to be an organizer to make the game 2011-02-05T16:39:55 j3camero: can you add a "turn 0" to the engine at some point where languages are given time to "spin up" and pass players information like dimensions of the grid, then have each player return "go", and also send "finnish" when the game is over to them? 2011-02-05T16:40:00 just to make executive decisions about it 2011-02-05T16:40:10 McLeopold: you can write the engine and compete 2011-02-05T16:40:27 you just aren't allowed to have root access to the server or something like that 2011-02-05T16:40:31 antimatroid: for sure 2011-02-05T16:41:22 with fog of war, is a turn 0 really needed? 2011-02-05T16:41:23 j3camero: have you watched McLeopold 2011-02-05T16:41:29 i wonder if there would be any value in me completing my own version of the ants game with my vision for it 2011-02-05T16:41:35 s example game where red ants manage to take out quite a few other ants without much loss? 2011-02-05T16:41:59 jmcarthur: only if you care to do it for yourself :) 2011-02-05T16:42:16 but i'd be able to show how awesome it would be :\ 2011-02-05T16:42:55 i still think my ants game is most awesome, personal bias :P 2011-02-05T16:43:14 ah but you haven't seen mine :P 2011-02-05T16:43:48 jmcarthur: sure, complete it. the long term goal is for user submitted contests 2011-02-05T16:43:51 hehe 2011-02-05T16:44:10 you know what else I haven't seen, your PlanetWars bot 2011-02-05T16:44:15 McLeopold: eh, but if *that's* my goal then i might as well do a game that i *really* want instead of compromising at all 2011-02-05T16:44:28 good point 2011-02-05T16:44:33 let's work on stratego 2011-02-05T16:44:50 McLeopold: yeah i stopped the planet wars bot because i started working on some presentations and contracting and more interviews and stuff 2011-02-05T16:44:51 * antimatroid isn't that enthused by stratego 2011-02-05T16:45:05 the ant wars engine will work 2011-02-05T16:45:07 let's work on programmable ants 2011-02-05T16:45:15 each ant now has a type 2011-02-05T16:45:30 you only need to resolve where ants move on top of each other 2011-02-05T16:46:03 I think I saw that somewhere 2011-02-05T16:46:19 a spawned ant has a pointer to an instruction and that's it 2011-02-05T16:46:28 weird 2011-02-05T16:46:29 there is a global set of instructions that the bot maintains 2011-02-05T16:46:32 not what i had in mind ;) 2011-02-05T16:47:04 164 turns for the 500x500 game 2011-02-05T16:47:14 it completed in that time?! 2011-02-05T16:47:19 well, in that number 2011-02-05T16:47:34 still a long time for each turn 2011-02-05T16:48:14 yellow is winning... 2011-02-05T16:48:26 still going 2011-02-05T16:48:29 oh okay 2011-02-05T16:48:44 *** boegel has quit IRC (Quit: Leaving) 2011-02-05T16:48:52 the ants haven't even fought yet 2011-02-05T16:48:58 omg 2011-02-05T16:49:10 how many players? 2011-02-05T16:49:13 with a 1000 turn limit, you can only circumnavigate twice 2011-02-05T16:49:15 4 players 2011-02-05T16:49:21 i would have stuck some more players in there i think 2011-02-05T16:49:35 For the smaller maps, this version was 10 times faster than the original 2011-02-05T16:49:43 nice 2011-02-05T16:50:16 So, 500x500 may be too big. :) 2011-02-05T16:50:43 let me try 256x256 2011-02-05T16:51:12 obviously all bots in the entire contest should just be in one huge map 2011-02-05T16:51:45 i think a good metric for choosing map sizes might be "how many times can you circumvent the map in the time limit" 2011-02-05T16:52:00 or vice versa for the time limit 2011-02-05T16:52:18 s/vice versa // 2011-02-05T16:53:21 agreed 2011-02-05T16:53:27 Oh man I still love Galcon. It's so good for trolling people. 2011-02-05T16:53:37 for trolling people? 2011-02-05T16:53:40 ? 2011-02-05T16:54:46 j3camero: the perpective switch really makes for some unnessasary code 2011-02-05T16:54:58 how about a bot is told what it's number is? 2011-02-05T16:55:09 "you are team 'R' for red" 2011-02-05T16:55:53 perspective switch is still necessary for fog of war though 2011-02-05T16:55:57 Why don't we take care of that for the people instead of them figuring it out. Then instead of game.WhatPlayerAmI() they can just say "1". 2011-02-05T16:56:48 it should at least be letters instead of numbers, otherwise we're limited to only 10 players max 2011-02-05T16:56:48 I thought we were going to give them randomized numbers? 2011-02-05T16:57:56 i don't think WhatPlayerAmI() seems to bad... 2011-02-05T16:57:56 256x256 is a little more sane 2011-02-05T16:58:02 *too 2011-02-05T16:58:45 yes, the perspective switch seems nice, but it was more of a pain 2011-02-05T16:58:58 Yeah but why make them think at all. Isn't it just easier for people if you're always player 1? 2011-02-05T16:59:07 It wasn't 2011-02-05T16:59:12 a least for me 2011-02-05T16:59:18 A lot of people still asked 2011-02-05T16:59:45 I'm just thinking of ways to speed up the engine for faster processing 2011-02-05T17:00:07 scanning for and substituting numbers feels like a waste 2011-02-05T17:00:16 context switch should be easy? when printing a player number just translate them for the current player to end at 1 2011-02-05T17:00:32 For sure. It seems like a trivial number of extra cycles. 2011-02-05T17:00:57 it has never really saved me any trouble to rely on being player 1 all the time 2011-02-05T17:01:13 Yeah I know. You're a seasoned programmer! :-) 2011-02-05T17:01:54 it's a matter of ant.owner == 1 vs. ant.owner == me 2011-02-05T17:01:59 It's targeted for the least experienced people. If you've never written code before, it's so much easier if you're always player 1. 2011-02-05T17:02:00 if you don't context switch and don't give the number of players, some will have a better idea of the number of players than others 2011-02-05T17:02:01 both pretty easy 2011-02-05T17:02:35 let's not give them a crutch. think of how many people we can teach variable to? 2011-02-05T17:02:53 really, do we expect anybody who can't do something like this to be able to compete at all? 2011-02-05T17:03:14 It's not about can or cannot do. It's about how easy it is. 2011-02-05T17:03:16 that is, if they can't do it even with an example bot? 2011-02-05T17:03:18 antimatroid: if you aren't garrenteed to start a "1" or "a" and go up, then you can only assume as many players as unique ants you've seen 2011-02-05T17:04:12 * jmcarthur picks up his implementation for a little bit longer 2011-02-05T17:04:34 McLeopold: you mean if it's randomly assigned? 2011-02-05T17:04:37 so, for protocol, if we only pass update information, and the map won't change during play, then we can send "W x y" lines, but only ever once 2011-02-05T17:04:44 for the entire range of possible player numbers? 2011-02-05T17:04:44 jmcarthur: yes 2011-02-05T17:04:49 i would go for that 2011-02-05T17:05:04 So, a game has players 'R', 'G','B' and 'Y' 2011-02-05T17:05:24 you can't tell if there may be a 'C' or 'M' later down the road 2011-02-05T17:05:32 it's not in order 2011-02-05T17:06:22 back to protocol, so every round, a player is given all food "F x y" and ants "A x y o" 2011-02-05T17:06:41 food has to be given every round so you can tell when it dissapears 2011-02-05T17:07:06 and, you are given the dimensions at the beginning 2011-02-05T17:07:35 so, players would need to calculate what is land and what is unexplored themselves? 2011-02-05T17:08:19 you don't give them every ant location 2011-02-05T17:08:24 only those they can see 2011-02-05T17:08:31 no, fog of war, only those in range 2011-02-05T17:08:49 honestly, i'd just use a dense map even with fog of war, and stick a . or something on invisible cells 2011-02-05T17:08:49 so at the edge of your vision, you may not be able to tell if an enemy died or moved away 2011-02-05T17:09:16 by the time mid game comes around it may just cheaper just to do that 2011-02-05T17:09:17 the way i did it was a sweep of the map taking note of outputted squares, then when i hit an ant for that player, output info for squares seen by that ant not yet outputted, then keep scanning 2011-02-05T17:09:34 *may be cheaper 2011-02-05T17:09:36 that way the starter bots don't need to store information across turns etc. 2011-02-05T17:18:42 *** chris_0076 has quit IRC (Read error: Connection reset by peer) 2011-02-05T17:19:01 i hate new york times 2011-02-05T17:19:35 half the time i go to their website they want me to create an account to read something, i'm not contributing to that horrible slippery slide 2011-02-05T17:20:36 *** Chris_0076 has joined #aichallenge 2011-02-05T17:26:23 Can we make the next+1 contest simpler again? It seems as though they've been getting progressively more complex. 2011-02-05T17:27:27 complex is good. complicated is bad. planet wars was rather complicated, in my opinion 2011-02-05T17:27:35 tron was simple but lacked complexity 2011-02-05T17:27:57 planet wars lacked it as well :\ 2011-02-05T17:27:57 i'm with jmcarthur 2011-02-05T17:28:19 planet wars had more complexity than tron though 2011-02-05T17:28:38 planet wars was a great game, but very inpenetrable 2011-02-05T17:28:46 The rules should be simple. Complexity should arise from the subtlety of trying to out-think the opponent, not from there being a large number of rules. 2011-02-05T17:28:55 jbroman++ 2011-02-05T17:29:09 i think mcleopolds ant death rule has that 2011-02-05T17:29:16 ant death rule? 2011-02-05T17:29:18 and it's really neat how it works 2011-02-05T17:29:33 oh, i would like to take credit for that ^_^ 2011-02-05T17:29:45 sure, jmcarthurs rule 2011-02-05T17:29:47 i think it's awesome 2011-02-05T17:29:48 :D 2011-02-05T17:29:56 it's neat and works 2011-02-05T17:29:56 What rule is that? 2011-02-05T17:30:25 for each ant, calculate the number of adjacent enemies, if there is an adjacent enemy with a count >= yours, you die 2011-02-05T17:30:47 Nothing could be simpler than the rules I have proposed. Go near food, food becomes a new ant. Go near an enemy ant, you both die. 2011-02-05T17:30:50 jbroman: say you're an ant, fighting. if any of the ants are fighting <= the same number of ants you are fighting then you die, otherwise you live 2011-02-05T17:31:00 j3camero: yeah, and those rules lack depth of any sort :( 2011-02-05T17:31:01 j3camero: there are tie issues 2011-02-05T17:31:09 and any depth 2011-02-05T17:31:14 (9:17:12 AM) jbroman: The rules should be simple. Complexity should arise from the subtlety of trying to out-think the opponent, not from there being a large number of rules. 2011-02-05T17:31:21 ^^ that 2011-02-05T17:31:48 the rule is simple, but once you play around with it, it's really need in what you can do strategy wise 2011-02-05T17:31:53 neat** not need 2011-02-05T17:32:22 j3camero: both die just means that as long as you have map dominance then you avoid fighting altogether, and if you don't have map dominance then you simply lose 2011-02-05T17:33:15 I don't like the non-1-to-1 death rules, since they're not visually intuitive. It's more like chess. If pairs of enemy ants eliminate, that's immediately obvious. It takes seconds to learn the rules. 2011-02-05T17:33:54 j3camero: my rules are intuitive. the winner is the one that's multitasking the least 2011-02-05T17:34:24 I think with whatever death rules, the interesting challenges will be at the macro level. Should you push through that chokepoint? You can't see your neighbor's whole territory, so you don't know how hard he is able to push back. 2011-02-05T17:34:27 j3camero: and your rules may be simpler, but as i just said, there is no real tactical advantage to fighting or not fighting 2011-02-05T17:35:21 I don't know how you can say there's no depth with the simple death rules. 2011-02-05T17:35:37 i'm a big fan of the micro level being what is analysed and interesting macro stuff resulting 2011-02-05T17:35:40 It's an incredibly deep game. 2011-02-05T17:35:47 planet wars also used a 1-1 death rule, fwiw 2011-02-05T17:36:05 The problem with the micro stuff is that it's more like chess. It will boil down to doing an alpha-beta search in some form or other. 2011-02-05T17:36:18 not with this many ants. there's no way it could 2011-02-05T17:36:22 too many ants 2011-02-05T17:36:40 the micro stuff boils down to formations, not subtle twitches in ant positioning 2011-02-05T17:37:11 the more quickly you can make a decent formation, the better off you are 2011-02-05T17:37:47 The really interesting depth that will require novel insights and algorithms is the macro strategy. You'll have to guess the strength and willingness of your neighbors to fight using incomplete information. You'll have to allocate ants to various tasks. You'll have to decide whether to spend your ants defending a chokepoint, or to live and fight another day by retreating. 2011-02-05T17:38:14 but what's the point of defending a chokepoint if you can't do so at all effectively? 2011-02-05T17:38:24 what's the point of living to fight another day when a later fight has the same result? 2011-02-05T17:38:38 ah, but it doesn't! 2011-02-05T17:38:50 because living to fight another day means you can convert more ants 2011-02-05T17:38:51 it's really boring if ants just all kill each other :\ 2011-02-05T17:39:01 Zannick: i've already mentioned what happens with map dominance 2011-02-05T17:39:20 I think you guys are maybe picturing really small maps? 2011-02-05T17:39:34 j3camero: we just tested a 500x500 and it was way too slow 2011-02-05T17:39:45 That's pretty big. 2011-02-05T17:39:47 i think much above 100x100 and games wont be quick enough 2011-02-05T17:39:51 256x256 was... okay 2011-02-05T17:40:09 even with large maps though... how is that any different? 2011-02-05T17:40:19 Picture it in terms of Galcon. Why would you cede a planet in multiplayer Galcon? There are reasons to do so. Living to fight another day can be quite to your advantage. 2011-02-05T17:40:32 It's the tradeoff between ants now, and production for the future. 2011-02-05T17:40:58 but if you have the ability to kill off more than you lose, you can set up awesome trap/defense systems 2011-02-05T17:41:02 that would be AWESOME 2011-02-05T17:41:04 And Galcon has a 1:1 elimination rule. 2011-02-05T17:41:19 we don't necessarily want galcon twice in a row 2011-02-05T17:41:49 and with galcon you could keep the same production level with 1 ship per planet as you could with 100 per planet 2011-02-05T17:41:52 antimatroid: did you see my argument earlier? If it is possible to fairly reliably kill N ants using less than N-1 ants, then the game is broken. 2011-02-05T17:42:03 so the point *was* to barely overwhelm an opposing fleet 2011-02-05T17:42:10 how is the game broken? 2011-02-05T17:42:14 in this case though, doing that is basically just throwing them away 2011-02-05T17:42:37 j3camero: yeah you never said why it's so broken that way, and i responded to that fairly sensibly i thought 2011-02-05T17:42:59 a bottleneck can be completely blocked off 2011-02-05T17:43:17 If there is a clever way to arrange ants such that either the attacker or the defender has better odds on average, then people will either not bother attacking, or not bother defending, as the case may be. 2011-02-05T17:43:20 if the radius of checking for ant support is small enough 2011-02-05T17:43:38 Zannick: with the rules i and McLeopold like, that's not the casew 2011-02-05T17:43:39 with 1 to 1, they won't bother defending 2011-02-05T17:43:40 *case 2011-02-05T17:43:57 Zannick: ants always die somehow 2011-02-05T17:44:00 oh maybe i misread that 2011-02-05T17:44:03 ie. the hallway is three wide, the support is only from neighbors 2011-02-05T17:44:11 blocked with just 6 ants 2011-02-05T17:44:16 okay i did misread it 2011-02-05T17:44:30 Zannick: yeah that's one reason i have been in favor of being able to mutate the map 2011-02-05T17:44:30 er, hm. 2011-02-05T17:44:39 no, the hallways is two wide 2011-02-05T17:44:52 unless ants fight diagonally 2011-02-05T17:44:55 they do 2011-02-05T17:45:10 okay, then a two wide hallway can be blocked 2011-02-05T17:45:33 I have the same fear as Zannick. I am afraid that there is some way to produce an impregable wall. Or even some clever way to arrange ants such that you are likely to have better odds than your attacker. That would trivially break the game. 2011-02-05T17:45:55 so, with the more complex rules, in general, you can't slowly wear down an opponent, you have to attack with a large enough force, and there is no way to block 2011-02-05T17:45:56 if the radius is increased so every ant has the same number, then wider hallways too 2011-02-05T17:45:58 you can move your ants in a wall formation, i don't think such a simple structure is going to exist 2011-02-05T17:46:14 that situation would be very difficult to get into 2011-02-05T17:46:24 assuming decent map gen and/or map mutation 2011-02-05T17:46:57 well my preference is with the more complicated rule 2011-02-05T17:47:13 It's not just hallways of width two we need to avoid. There is a serious risk that someone does a bunch of simulations and discovers complex ways or arranging and moving ants such that it's futile to attack them. 2011-02-05T17:47:14 it's still pretty straight forward 2011-02-05T17:47:41 j3camero: there is always a weakness or at worst an even tradeoff 2011-02-05T17:47:49 j3camero: in the worst case, just use the same formation 2011-02-05T17:47:51 j3camero: that's what would make a good game, the ability to run such simulations 2011-02-05T17:48:01 even if you found some mega structure, it wouldn't always be implementable 2011-02-05T17:48:15 and people would ruin you while trying etc. 2011-02-05T17:48:23 it would be lots of fun 2011-02-05T17:48:33 If there's a way to make an impregnable structure under any circumstances then I would consider the game broken. 2011-02-05T17:48:40 agreed 2011-02-05T17:48:47 i don't see how that would be possib;e 2011-02-05T17:48:49 *possible 2011-02-05T17:48:52 only if one could always ensure they can build that structure and win 2011-02-05T17:48:54 both players can just do the same thing 2011-02-05T17:48:56 and i find that highly unlikely 2011-02-05T17:49:01 jmcarthur: but it would break the game,no? 2011-02-05T17:49:13 McLeopold: it would just mean that combat is an even tradeoff, no? 2011-02-05T17:49:29 that's like saying you shouldn't play any game because someone might find an optimal strategy :\ 2011-02-05T17:49:46 No, it means that every rational player would just camp waiting for the others to move first so that they can collect a trivial win. 2011-02-05T17:50:13 camping is not a great strategy when there is food to collect 2011-02-05T17:50:13 you can't camp without first forming this mega structure 2011-02-05T17:50:16 j3camero: i think the scoring should punish camping 2011-02-05T17:50:19 You have to watch out that you won't get into situations in the game where combat is disincentivized massively. 2011-02-05T17:50:27 j3camero: why is camping not such a great idea with 1:1? 2011-02-05T17:50:31 you need to get the ants to make it, the space in which to create it and before anyone else comes in and wrecks you 2011-02-05T17:50:31 so, point per kill 2011-02-05T17:50:32 exacty! 2011-02-05T17:50:51 j3camero: combat is severely disincentivized with 1:1 so long as you have fewer ants. 2011-02-05T17:51:21 which quickly turns into a permanent situation until the end of the game 2011-02-05T17:51:23 jmcarthur: combat is also disincentivized with the other method 2011-02-05T17:51:24 you never want to combat anyone if there's more than 2 players and it's 1:1 do you? 2011-02-05T17:51:38 Zannick: at least with the other method you have a chance to outmicro 2011-02-05T17:51:48 It's not the same thing. I'm talking about arranging ants in clever ways such that you guarantee yourself better odds. It would be like Risk with weighted dice. Nobody would ever attack. 2011-02-05T17:52:14 you can attack with these structures moving though 2011-02-05T17:52:16 j3camero: it's not at all like risk with weighted dice. everybody has the same opportunities here 2011-02-05T17:52:16 Nobody has proven that that's not possible with these complex rules. 2011-02-05T17:52:20 risk does have weighted die 2011-02-05T17:52:25 tie goes to defender 2011-02-05T17:52:31 j3camero: i don't see how it would be possible. seems a trivial proof to me 2011-02-05T17:52:32 nobodies proven your game doesn't have a simple strategy 2011-02-05T17:52:38 j3camero: formations are moveable 2011-02-05T17:53:09 if the enemy has more ants, it's still possible for them to mirror you when you attack them 2011-02-05T17:53:15 it may be harder if they're more spread out 2011-02-05T17:53:19 j3camero: nobody has made similar proofs about planet wars either 2011-02-05T17:53:39 Zannick: yeah, part of the challenge 2011-02-05T17:53:48 even when you have a number advantage you have to be on your toes 2011-02-05T17:53:55 can we go with jmcarthurs rules for the moment? and people can spend time at the start trying to see if it's easy to break 2011-02-05T17:54:07 i like the idea but i'm worried about the execution 2011-02-05T17:54:16 i've started making a starter c++ bot 2011-02-05T17:54:16 i might not be understanding the rule fully, though 2011-02-05T17:54:30 It's a question of likelihood. With the 1:1 death rule the two sides trivially have the same odds. With the complex rules, I am not sure if maybe there is some way to force an attacker to give up two ants for every one you give up or something. 2011-02-05T17:54:45 j3camero: it's that trivialness that makes it so pointless to me 2011-02-05T17:55:01 Zannick: for each ant, count the number of adjacent enemies, including diagonals, then if any ant has an adjacent ant with enemy count >= then the ant dies 2011-02-05T17:55:17 i think the rule could be states more intuitively 2011-02-05T17:55:20 *stated 2011-02-05T17:55:20 Zannick and j3camero: I have spend the better part of 2 days playing with combat rules. I can 99% garentee what jmcarthur and I came up with will not allow for blocking of the map, and only a slight advantage to greater numbers if used correctly 2011-02-05T17:55:36 It would still be micro, but it is good 2011-02-05T17:55:57 It is not as intuative as 1:1, but it isn't that hard 2011-02-05T17:56:06 *** amriedle has joined #aichallenge 2011-02-05T17:56:07 j3camero: that wouldn't necessarily be bad if you could set up a defense structure that was costly to penetrate 2011-02-05T17:56:16 ...and 1:1 death ratios will never be deterministic 2011-02-05T17:56:18 ah, >= 2011-02-05T17:56:38 the = part of that makes deaths 1-1 in my blocking scenario 2011-02-05T17:56:45 Question: >= what? 2011-02-05T17:56:51 the rule is basically this: 2011-02-05T17:57:08 each ant is given a number equal to the number of neighboring allies 2011-02-05T17:57:19 jbroman: a and b are adjacent ants, a has e adjacent enemies and b f, if f>= e, a dies 2011-02-05T17:57:54 a and b die if f == e, but that isn't sufficient for a and b dying 2011-02-05T17:58:00 an ant A will only live if it's fighting fewer enemies than all of it enemies are fighting 2011-02-05T17:58:03 then, for each ant, if it neighbors an enemy ant with a number greater or equal to its own, it dies 2011-02-05T17:58:04 s/A // 2011-02-05T17:58:09 Ah, that makes sense. 2011-02-05T17:58:09 all simultaneous 2011-02-05T17:58:15 bleh, that last comment is messed up 2011-02-05T17:58:22 let me clean that up... 2011-02-05T17:58:24 okay, hold on 2011-02-05T17:58:33 antimatroid: that is a different rule entirely 2011-02-05T17:58:38 move the the etherpad, it is explained there with examples 2011-02-05T17:58:50 Sounds reasonable, though I can't say whether there's a degenerate solution. We probably have enough time to ensure that there at least isn't a trivial one. 2011-02-05T17:59:05 Zannick: ? 2011-02-05T17:59:22 oh, i misunderstood you again 2011-02-05T17:59:23 dang it 2011-02-05T17:59:25 An ant lives to the next turn if all the enemies it's fighting are fighting more enemies than it itself is fighting. 2011-02-05T17:59:49 good grief, it's a mouthful, despite the intuition i have in my head 2011-02-05T18:00:01 i have exactly the wrong intuition about it 2011-02-05T18:00:01 once you play around with it, it's really cool and neat 2011-02-05T18:00:07 i still think there is probably a good way to phrase it 2011-02-05T18:00:19 Zannick: it took a while for me to understand it from McLeopold 2011-02-05T18:00:28 If we use this rule, we need a good explanation. Perhaps even a short video with examples. 2011-02-05T18:00:44 yes, otherwise people will get the wrong idea about it 2011-02-05T18:00:53 just a few example gifs should do 2011-02-05T18:00:55 What if there is a hallfway or width 2 that narrows to width 1. Can that be blocked? 2011-02-05T18:01:15 no 2011-02-05T18:01:18 can't be blocked 2011-02-05T18:01:21 no blocking 2011-02-05T18:01:27 WaaW 2011-02-05T18:01:27 WbbW 2011-02-05T18:01:28 all 4 die 2011-02-05T18:01:32 you just have to have enough ants 2011-02-05T18:02:12 aa 2011-02-05T18:02:13 a 2011-02-05T18:02:13 bb 2011-02-05T18:02:14 b 2011-02-05T18:02:31 bottom a dies 2011-02-05T18:02:33 single a row dies only 2011-02-05T18:02:34 The way I misunderstood your rule, each ant has a 2, so the three ants in the center die 2011-02-05T18:02:34 A lives if A.opponents.length < A.opponents.map(.opponents.length).minimum 2011-02-05T18:03:02 i think i got that right 2011-02-05T18:03:04 The way it actually works, is the lower a has a -2 and the upper b's have -1 2011-02-05T18:03:55 yeah, this is a better rule than i thought before 2011-02-05T18:04:05 just translate to occupied numbers then calculate 2011-02-05T18:04:07 Zannick: it's really neat when it clicks :P 2011-02-05T18:04:16 Wait what? I still don't see it. 2011-02-05T18:04:18 what McLeopold said is the easiest to implement 2011-02-05T18:04:22 .a 2011-02-05T18:04:22 b. kills both, so they can't walk into the same square ever 2011-02-05T18:04:22 00 2011-02-05T18:04:23 2 2011-02-05T18:04:23 11 2011-02-05T18:04:23 0 2011-02-05T18:04:26 In the Zannick situation there what happens? 2011-02-05T18:04:31 the 1's kill the 2 2011-02-05T18:04:36 the 2 can't kill the 1's 2011-02-05T18:04:48 yeah, that's what i was doing 2011-02-05T18:05:11 j3camero: the a in the second row dies, and that's it 2011-02-05T18:05:11 except i was representing with negative numbers 2011-02-05T18:05:17 *** amriedle has left #aichallenge 2011-02-05T18:05:29 j3camero: my situation was not their rule, fyi 2011-02-05T18:05:33 i think i quoted my e,f thing wrong before :O 2011-02-05T18:05:38 but it was 2011-02-05T18:05:39 22 2011-02-05T18:05:40 2 2011-02-05T18:05:41 22 2011-02-05T18:05:41 2 2011-02-05T18:05:56 Zannick: it should be occupied by enemy ants 2011-02-05T18:05:59 yeah that would have been bad 2011-02-05T18:06:06 which is not very interesting and promotes heavy clustering 2011-02-05T18:06:16 So if we have 2011-02-05T18:06:16 X.XX 2011-02-05T18:06:16 X.XX 2011-02-05T18:06:16 X.XX 2011-02-05T18:06:16 XAAX 2011-02-05T18:06:18 X..X 2011-02-05T18:06:21 X..X 2011-02-05T18:06:23 Then can't I block this tube by putting two ants where the A's are? 2011-02-05T18:06:32 j3camero: no 2011-02-05T18:06:42 XAAX 2011-02-05T18:06:42 XBBX 2011-02-05T18:06:42 all four ants die 2011-02-05T18:06:59 no i think j3camero is right, which i say again is why i was also wanting a mutable map 2011-02-05T18:06:59 no, j3camero is right 2011-02-05T18:07:11 Okay but 2011-02-05T18:07:11 X.XX 2011-02-05T18:07:11 X.XX 2011-02-05T18:07:11 XBXX 2011-02-05T18:07:11 XAAX 2011-02-05T18:07:14 X..X 2011-02-05T18:07:16 oh, i see 2011-02-05T18:07:16 X..X 2011-02-05T18:07:17 hmmm 2011-02-05T18:07:18 j3camero: you're right 2011-02-05T18:07:19 what happens here? 2011-02-05T18:07:31 mutable map would fix it 2011-02-05T18:07:32 jmcarthur: depends on what mutates the map 2011-02-05T18:07:42 does it matter if people block paths? 2011-02-05T18:07:46 Zannick: have you heard the bodies idea? 2011-02-05T18:07:49 if no mutation, this can be avoided by having no hallways 2011-02-05T18:07:49 *seen 2011-02-05T18:07:50 that means we don't need to introduce moving dead bodies 2011-02-05T18:08:01 That's only the beginning. This should scale such that I can block off a chokepoint of any width. I can effectively build a wall. 2011-02-05T18:08:12 well, no that's not true 2011-02-05T18:08:20 there's no way to block a larger one 2011-02-05T18:08:22 jmcarthur: without understanding it. it sounded complicated and i was at work 2011-02-05T18:08:37 once you scale to 2, in breaks down, because you will start to lose ants in the center 2011-02-05T18:08:53 but yes, that above would block 2011-02-05T18:08:54 and on the ends 2011-02-05T18:09:13 you could either enforce gaps of at least 2 in the map gen or allow such blockages to be fair game 2011-02-05T18:09:23 XXAAXX 2011-02-05T18:09:26 XBBBBX 2011-02-05T18:09:32 that is the biggest wall 2011-02-05T18:09:32 *** Palmik has quit IRC (Remote host closed the connection) 2011-02-05T18:09:59 fixing the map gen would be the easiest. map mutation would be the most fun, IMO, but i understand complaints about complication 2011-02-05T18:10:14 wait hang on... 2011-02-05T18:10:21 and could agree that map mutation could be too much 2011-02-05T18:10:22 XBXX 2011-02-05T18:10:22 XAAX 2011-02-05T18:10:22 don't all 3 die? 2011-02-05T18:10:25 no 2011-02-05T18:10:38 why not? 2011-02-05T18:10:39 X2XX 2011-02-05T18:10:40 X11X 2011-02-05T18:10:50 oh yes, i'm retarded :) 2011-02-05T18:11:25 * antimatroid thinks it has a kind of game of life appeal to it 2011-02-05T18:11:31 yes it does :) 2011-02-05T18:11:37 Say you have a wider opening. You could plug it up pretty good by building a line of ants across it. 2011-02-05T18:11:40 X.....X 2011-02-05T18:11:42 X.....X 2011-02-05T18:11:45 XAAAAAX 2011-02-05T18:11:47 X.....X 2011-02-05T18:11:50 Is attacking this thing futile unless you bring an identical wall of your own? 2011-02-05T18:11:51 j3camero: defense structure that's penetrable but costly 2011-02-05T18:11:55 all comonad-expressible games are automata at heart 2011-02-05T18:12:01 XAAAAAX 2011-02-05T18:12:03 XBBBBBX 2011-02-05T18:12:07 is also 2011-02-05T18:12:12 X23332X 2011-02-05T18:12:16 X23332X 2011-02-05T18:12:30 all ants die 2011-02-05T18:12:44 no, you can send a few in the center and take out some 2011-02-05T18:12:49 X.AAA.X 2011-02-05T18:12:51 XBBBBBX 2011-02-05T18:12:55 is: 2011-02-05T18:13:01 X.333.X 2011-02-05T18:13:02 Yes Zannick. But you have to attack it that exact way, am I right? If you come with only four ants then you lose everything. 2011-02-05T18:13:06 X12321X 2011-02-05T18:13:17 so, it's futile if you don't send something at least 3 wide 2011-02-05T18:13:19 j3camero: no, you can send just three and manage to kill one 2011-02-05T18:13:34 3:1 odds I would define as futile. 2011-02-05T18:13:41 ...bbb.. 2011-02-05T18:13:41 aaaaaaaa 2011-02-05T18:13:41 ...333.. 2011-02-05T18:13:41 00123210 2011-02-05T18:13:41 one in the center dies 2011-02-05T18:13:49 j3camero: the idea is you are supposed to be smarter than that of course 2011-02-05T18:13:49 The onyl way to get a fair shake there is to advance a wall of five ants right? 2011-02-05T18:13:54 j3camero: that's the point, if you want to attack, you better be prepared to bring it 2011-02-05T18:13:57 but you would lose 2 more than your opponent unless you match 2011-02-05T18:13:57 j3camero: your rules have the same odds 2011-02-05T18:14:05 you are fighting for land area for food/ants 2011-02-05T18:14:12 well, the same result 2011-02-05T18:14:15 all your ants would die 2011-02-05T18:14:26 er, 1 more if you ride the wall 2011-02-05T18:14:35 ah yeah 2011-02-05T18:14:39 XAA...X 2011-02-05T18:14:42 XBBBBBX 2011-02-05T18:14:58 X23...X 2011-02-05T18:15:02 see how fun this is? how can we not implement this rule? 2011-02-05T18:15:05 *** dr`away is now known as dr- 2011-02-05T18:15:07 X22100X 2011-02-05T18:15:34 that's a 1:1 kill 2011-02-05T18:15:37 unless i did it wrong 2011-02-05T18:15:52 XAA.AAX 2011-02-05T18:15:57 XBBBBBX 2011-02-05T18:16:09 looks right to me 2011-02-05T18:16:21 it will also be fun running the simulations to see what does fair best for this 2011-02-05T18:16:24 j3camero: so there, an even tradeoff! 2011-02-05T18:16:24 23.32 2011-02-05T18:16:24 22222 2011-02-05T18:16:33 so, the edges die 2011-02-05T18:16:37 i think the rule is awesome, i'm surprised you don't love it jeff :\ 2011-02-05T18:16:42 4:2 kill ratio 2011-02-05T18:16:53 McLeopold: no, all but the center B 2011-02-05T18:16:53 McLeopold: nice 2011-02-05T18:17:10 ah right 2011-02-05T18:17:34 What happens if I surround a group of enemy ants with a closed loop of my own ants? 2011-02-05T18:17:44 hmm 2011-02-05T18:17:49 Is there some way for me to force the enemy to give me 3:1 odds? 2011-02-05T18:18:02 to force it 2011-02-05T18:18:04 i doubt 2011-02-05T18:18:08 Zannick: the edges of a and all of b 2011-02-05T18:18:11 there may be scenarios that work though 2011-02-05T18:18:15 you can't physically surround them all at once can you? 2011-02-05T18:18:16 if the enemy plays into your hand 2011-02-05T18:18:27 with orthogonal movement 2011-02-05T18:18:32 antimatroid: you can if you're actually coming from all angles instead of from a single location 2011-02-05T18:18:37 McLeopold: see why i suggested negative numbers? the smaller numbers win 2011-02-05T18:18:55 the smaller numbers win in this notation, i mean 2011-02-05T18:19:18 there is still no known example that would allow two enemy ants to land on the same square 2011-02-05T18:19:19 so the 3s kill nothing, and the corner As take out their neighbors 2011-02-05T18:19:27 sure 2011-02-05T18:19:29 a.b 2011-02-05T18:19:37 both move toward each other 2011-02-05T18:20:05 in which case i think it's fine for them to just both die unconditionally 2011-02-05T18:20:46 McLeopold: hehe :P 2011-02-05T18:21:07 they fuse into a neutral ant 2011-02-05T18:21:08 so how is that to be resolved? unique player with the most ants on that square has an ant otherwise all die? 2011-02-05T18:21:14 j3camero: if you have a 2x2 group of A surrounded completely by a group of 12 B then all the A die and all the B live 2011-02-05T18:21:21 There is an advantage to advancing in a straight line. I see two fighting forces scrambling to see who can build the longest straight line the fastest. Then the ants just march towards one another as a large rectangle like a phalanx. 2011-02-05T18:21:39 j3camero: that would be cool :P 2011-02-05T18:21:41 j3camero: tough scramble, but yeah 2011-02-05T18:21:51 j3camero: but that makes you *very* vulnerable from other angles 2011-02-05T18:21:57 flanking becomes a good tactic 2011-02-05T18:22:49 the thing about blocking a corridor is, it works both ways 2011-02-05T18:23:11 and by blocking, I mean giving yourself a better than 1:1 ratio 2011-02-05T18:23:13 yeah. if you manage to find and block a strategically valuable corridor, more power to you 2011-02-05T18:23:32 *** javagamer has quit IRC (Ping timeout: 240 seconds) 2011-02-05T18:23:47 if you use something like my generator, then every player will have a similar corridor they can block 2011-02-05T18:23:58 and will similarly leave themselves vulnerable to players from other angles 2011-02-05T18:24:13 antimatroid: well, if they all have a blockable corridor then that could lead to turtling 2011-02-05T18:24:16 which might be bad 2011-02-05T18:24:23 i'd rather just avoid generating such corridors in the map gen 2011-02-05T18:24:34 easy to check i suspect 2011-02-05T18:24:39 i'd say leave them there for the moment and take it out if it's an issue 2011-02-05T18:24:45 sure that'd work 2011-02-05T18:25:01 but turtling will lose you score 2011-02-05T18:25:09 it's costly to do nothing 2011-02-05T18:25:17 and it takes what 3-4 ants? 2011-02-05T18:25:19 McLeopold: depends on how you get points of course 2011-02-05T18:25:22 you should also be off doing other stuff 2011-02-05T18:25:34 okay, turtling should lose you points 2011-02-05T18:25:39 i agree that it's not a problem unless it's a problem, and then it's still easy to solve 2011-02-05T18:26:05 BBBBB 2011-02-05T18:26:07 BAAAB 2011-02-05T18:26:09 BAAAB 2011-02-05T18:26:10 BAAAB 2011-02-05T18:26:13 BBBBB 2011-02-05T18:26:14 BB.BB 2011-02-05T18:26:17 B...B 2011-02-05T18:26:19 ..A.. 2011-02-05T18:26:21 B...B 2011-02-05T18:26:22 BB.BB 2011-02-05T18:26:25 should have put a gap hthere 2011-02-05T18:26:33 oh, does an ant have to move? 2011-02-05T18:26:36 i won't go any larger and paste it here 2011-02-05T18:26:39 hmm? 2011-02-05T18:26:44 i don't think so 2011-02-05T18:26:44 that might be complicated for people if they box their ants together 2011-02-05T18:26:58 i was thinking they could be stationary 2011-02-05T18:27:21 would suck to get cornered and still have to keep moving everything 2011-02-05T18:28:18 Is there really much strategy in this though? Wouldn't you generally just go around with a huge rectangle of ants? 2011-02-05T18:28:39 j3camero: only if you don't mind being attacked diagonally and losing a lot of ants 2011-02-05T18:28:52 and there's not always room for a big rectangle, either 2011-02-05T18:29:09 j3camero: you want to maximise visibility for resources other ants etc, maximise your army by getting resources etc. 2011-02-05T18:29:13 But in general, it seems like making big straight lines is the way to go. 2011-02-05T18:29:25 j3camero: only for fighting against a *particular* front 2011-02-05T18:29:29 j3camero: it might be favourable, but it wont just be straight forward 2011-02-05T18:29:30 i giant glob will be effective with either set of combat rules 2011-02-05T18:29:32 *** mega1 has quit IRC (Ping timeout: 240 seconds) 2011-02-05T18:29:34 i like McLeopolds ant hills too 2011-02-05T18:29:38 j3camero: a straight line *kills* you from any but the most optimal angle 2011-02-05T18:29:54 err, if you form one i mean 2011-02-05T18:30:29 yeah optimal tactic would probably be to just have a big glob that you can reshape as you meet other forces 2011-02-05T18:30:37 but you still don't want to get caught in the middle of things 2011-02-05T18:30:45 being a big glob doesn't make you at all invulnerable 2011-02-05T18:30:56 It's just that the top 50 players who *bother* to implement this stuff are going to be going around *wrecking* the other players 3:1. So it doesn't start being any fun until you commit a few hours and are already a seasoned programmer. 2011-02-05T18:31:18 it's a lot of fun against other people of your skill level. that's all that matters 2011-02-05T18:31:24 since we have a ranking/matching algorithm anyway 2011-02-05T18:31:38 jmcarthur: you're going to have other players on all sides of you, one big blob in one direction will leave you very vulnerable 2011-02-05T18:31:41 s/it's/it could be/ 2011-02-05T18:31:43 particularly if you have ant hills to protect 2011-02-05T18:31:48 antimatroid: right 2011-02-05T18:31:49 If you are numerically inferior, isn't already enough punishment that you lose the battle? The numerically superior force should generally be able to force better than 1:1 odds on the routed force. 2011-02-05T18:32:06 j3camero: that holds in any set of rules 2011-02-05T18:32:31 Not in a 1:1 scheme. 2011-02-05T18:32:32 j3camero: what's nice is that an inferior force can still outwit a superior force 2011-02-05T18:32:38 the only way around that is to kill nearby ants, so your 1 ant can take out 2 2011-02-05T18:32:39 which is not the case in 1:1 2011-02-05T18:32:44 Then it's 1:1. If I show up with 6 ants and you have 5, then 1 will remain. 2011-02-05T18:32:44 then there is really no blocking 2011-02-05T18:32:54 j3camero: yeah, and there's no skill in that at all 2011-02-05T18:32:59 only sending interceptors to prevent big losses 2011-02-05T18:34:12 *** Meatkat has joined #aichallenge 2011-02-05T18:34:16 plus, moves are simultaneous, so you can never really be sure you are going to hit your configuration 2011-02-05T18:34:18 j3camero: your rules effectively turn the game into a food race. these rules make it much deeper 2011-02-05T18:34:44 These rules are too much like chess. I don't think people are going to care. 2011-02-05T18:34:54 i do 2011-02-05T18:35:02 and i think i'm not the only one 2011-02-05T18:35:13 You can't make your ants do anything interesting at all unless you have a CS degree and are willing to spend two or three evenings on it. 2011-02-05T18:35:21 that's not true at all 2011-02-05T18:35:33 newbs can still haphazardly crash their forces together none the wiser 2011-02-05T18:35:41 these rules got me interested in the game again 2011-02-05T18:35:50 i find 1:1 quite boring strategy wise 2011-02-05T18:36:35 these defense structures wont be trivial to construct on the fly and should make it quite interesting micro wise 2011-02-05T18:36:43 and the game still requires a lot of work on the macro scale 2011-02-05T18:36:56 yeah, this doesn't remove *any* of the macro challenges either 2011-02-05T18:36:59 The thing is that a newb moving ants around will get mauled by a top50 person 3:1. In order to have a hope, the only option is to sit down and figure out all kinds of hard algorithms. The punishment is way too harsh. 2011-02-05T18:37:28 the top 50 will maul them anyway 2011-02-05T18:37:32 that was pretty true of planetwars 2011-02-05T18:37:43 once they converge on the leaderboard, they should be playing people like them 2011-02-05T18:38:00 j3camero: newb vs. newb will be as fun as it would be with your rules 2011-02-05T18:38:09 j3camero: and newb vs. top50 the same 2011-02-05T18:38:18 Yeah but there has to be some sort of proportionality. The reality is that the bottom 6000 people from last time don't believe that they can figure this stuff out. That's why we don't do chess. It's too tactical. 2011-02-05T18:38:28 no it's not 2011-02-05T18:38:32 it's to bookable 2011-02-05T18:38:34 *too 2011-02-05T18:38:40 chess is just minimax 2011-02-05T18:38:44 this is nothing like chess 2011-02-05T18:38:52 *** javagamer has joined #aichallenge 2011-02-05T18:39:20 it's simple for people to get started and still interesting for people at the top 2011-02-05T18:39:52 allowing these different odds for attacking/defending will make it harder for people to work out the best move to make 2011-02-05T18:40:00 i don't think a stratified leaderboard is a bad thing 2011-02-05T18:40:09 nor do i think it's an avoidable thing 2011-02-05T18:40:31 unless you make the silliest most pointless game ever (would have to be even more pointless than basic simpleants) 2011-02-05T18:40:35 You're not hearing me. The advantages enjoyed by proficient programmers under the complex rules are so steep that in a game with N novice players and 1 top50 players, the top50 player will almost always win without breaking a sweat. There would be two camps separated by a wide skill gap: those who have figured out "the trick" and those who have not. 2011-02-05T18:40:51 i addressed that directly 2011-02-05T18:40:55 i don't think a stratified leaderboard is a bad thing 2011-02-05T18:41:21 high levels of contrasts marks a clear path of improvement 2011-02-05T18:41:42 yeah, i would expect a top 50 bot to mostly always beat them 2011-02-05T18:41:47 which is the whole point of the contest, IMO 2011-02-05T18:41:51 too much fuzzyness is bad 2011-02-05T18:41:52 improvement, that is 2011-02-05T18:41:54 uncertainty is bad :P 2011-02-05T18:42:42 a stratified leaderboard is also more attractive to newcomers 2011-02-05T18:42:51 and leaders 2011-02-05T18:43:12 it's always more fun to play bots of a similar quality 2011-02-05T18:43:12 it shows that a wide range of programmers find the game interesting 2011-02-05T18:43:46 if every bot is close to the same level of play, it looks like it's just a bunch of equally good/bad/bland programmers moving some pixels around 2011-02-05T18:43:56 *** amriedle has joined #aichallenge 2011-02-05T18:44:41 there won't be many games with N novice players and 1 top50 player anyway 2011-02-05T18:44:53 *** amriedle has joined #aichallenge 2011-02-05T18:45:00 unless there's not a big difference in the first place 2011-02-05T18:45:06 I don't think he's arguing against a stratified leader board... more that making rules unnecessarily complex creates an even bigger (and unnecessary) barrier for a newbie to ever do well. 2011-02-05T18:45:21 Meatkat: and i'm saying that doing well is relative to those you are playing 2011-02-05T18:45:30 That's what I'm saying yeah. 2011-02-05T18:45:31 you can still feel accomplishment by climing in the lower ranks 2011-02-05T18:45:36 *climbing 2011-02-05T18:45:54 Right and they can climb faster with unnecessary complex rules 2011-02-05T18:45:56 only 10% of players are in the top 10%. that doesn't mean 90% of players aren't having fun 2011-02-05T18:46:01 thus being more fun for them 2011-02-05T18:46:36 Meatkat: so you see these rules as unnecessarily complex? 2011-02-05T18:47:22 oh you missed the conversation 2011-02-05T18:47:25 If you were trying to make a game for CS graduates I'd say no 2011-02-05T18:48:01 (I can read context) 2011-02-05T18:48:07 Meatkat: A lives if A.opponents.length < A.opponents.map(.opponents.length).minimum 2011-02-05T18:48:10 Talking about rules for ant deaths 2011-02-05T18:48:12 that's the rule in question 2011-02-05T18:48:33 I participated in a cool IBM ai contest once 2011-02-05T18:49:07 hm, a 1-1 death rule is hard 2011-02-05T18:49:20 they had this really simple game where you start with cells that grow/divide and specialize (3 which counter eachother like RPS and then 1 that is mediocre but can specialize at any time) 2011-02-05T18:49:22 .A. 2011-02-05T18:49:24 BBB 2011-02-05T18:49:27 who dies? 2011-02-05T18:49:33 .3. 2011-02-05T18:49:35 111 2011-02-05T18:49:38 A dies 2011-02-05T18:49:40 whichever b was spawned first 2011-02-05T18:49:42 no, silly 2011-02-05T18:49:51 1:1 rule, it is harder 2011-02-05T18:49:55 McLeopold: that seems really arbitrary 2011-02-05T18:50:00 oh you mean in 1:1 2011-02-05T18:50:02 serial numbers 2011-02-05T18:50:06 yeah i agree, that's silly 2011-02-05T18:50:07 abc 2011-02-05T18:50:08 ddd? 2011-02-05T18:50:12 Zannick: you can't have 1:1 be deterministic 2011-02-05T18:50:16 it won't work 2011-02-05T18:50:24 You have to chose which ant somehow 2011-02-05T18:50:28 exactly 2011-02-05T18:50:28 The problem is that there are going to be all these newbs, and then a really wide empty gap, and then there will be the people who have put in the work to create bots that take account of the tricks in the rules for gaining better odds in battle. It's true that people can have some fun within the lower ranks. But this wide gap will make people acutely aware the there is a kids' table and a grown-up table. This I believe would be a big downer. Compare thi 2011-02-05T18:50:33 333 2011-02-05T18:50:35 232 2011-02-05T18:50:43 antimatroid: two Ds live 2011-02-05T18:51:02 j3camero: I don't think you can avoid this unless you make the game too non-deterministic (i.e. dice-rolling). 2011-02-05T18:51:03 oh i got B's number wrong 2011-02-05T18:51:07 j3camero: do you want the game to have depth? 2011-02-05T18:51:11 jmcarthur: we're talking about 1:1 rule, not yours 2011-02-05T18:51:12 should be 353 2011-02-05T18:51:14 ah 2011-02-05T18:51:29 I'm asking seriously 2011-02-05T18:51:29 in 1:1 abc/ddd everyone should die 2011-02-05T18:51:39 How much depth should there be? 2011-02-05T18:51:40 but it might be difficult to achieve that 2011-02-05T18:51:55 j3camero: you got cut off at Compare thi 2011-02-05T18:51:56 j3camero: the wide gap is just part of an interesting game. its absense means your good programmers are basically not interested at all, so it's still going to just be newb vs. newb 2011-02-05T18:52:11 *or* 2011-02-05T18:52:27 its absense means there is no difference between good and bad and therefore no path for improvement 2011-02-05T18:52:39 either way, it's just newb vs. newb 2011-02-05T18:52:53 so if you were thinking of a rule where death occurs if any neighbor is any enemy, it has the opposite effect 2011-02-05T18:53:10 since you can go 1:3 on deaths by sending lone ants into clumps 2011-02-05T18:53:26 so being spread out becomes better 2011-02-05T18:53:39 strict 1-1 will actually not be intuitive 2011-02-05T18:53:46 so 1:1 is complicated too, at least with the serial numbers rule 2011-02-05T18:53:58 jbroman: in Galcon we achieved this. When we mapped the elo levels, we saw one major cluster (starter packages), about six to eight smaller clusters, with the vast majority of bots in between the clusters. That's different from having two groups with a wide gap in between. The gap would also be seen with chess, that's why we don't do it. Because you have to put in many hours of skilled programming in order to move from the top of the kids table to the bo 2011-02-05T18:53:59 i think it could possibly be made simpler somehow though 2011-02-05T18:54:01 Zannick: it will be intuative that 1 ant kills another, just not which ant 2011-02-05T18:54:03 because of special cases 2011-02-05T18:54:21 j3camero: i think you are sensationalizing the significance of this change 2011-02-05T18:54:32 i very stongly doubt there would just be one huge gap and that's it 2011-02-05T18:54:58 *strongly 2011-02-05T18:55:34 I'm okay with 1:1 if it could somehow be deterministic, I just don't think it's achievable. If it is, it has to be pretty complex, and not intuative. 2011-02-05T18:55:47 j3camero: One thing you could do is de-emphasize the absolute leaderboard and instead emphasize individual progress (as opposed to "you are in place #4681", it becomes "Your new bot has skill 21 an improvement of 5 points on your old bot's skill of 16"). But that moves away from the contest format, and I don't think we want to do that. 2011-02-05T18:56:11 jbroman: true skill will give us both 2011-02-05T18:56:12 something i *loved* about the tron contest was the graph you got of your progress as you climbed the ranks 2011-02-05T18:56:16 j3camero: ^^ 2011-02-05T18:56:19 we need to bring that back 2011-02-05T18:56:29 some people may not be encouraged by gaining rank, though 2011-02-05T18:56:29 http://dl.dropbox.com/u/9140666/elo-draw-chart.png the only apparent cluster of elo ratings from galcon was the straight starter bot cluster 2011-02-05T18:56:33 McLeopold: You can have both, yes, but you can only emphasize one. 2011-02-05T18:56:48 jbroman: yeah actually I have thought of making the site into a social network where you have friends, possibly assigning people a random group of 25 friends when they join. The main leaderboard would default to just your friends. 2011-02-05T18:56:49 well, and the crash bots 2011-02-05T18:56:51 if you do 1:1, then consider the following examples 2011-02-05T18:56:51 abc abc abc 2011-02-05T18:56:51 ddd dd d 2011-02-05T18:56:55 each case all ants die? 2011-02-05T18:57:12 no 2011-02-05T18:57:24 1:1 means 1 from each group dies 2011-02-05T18:57:25 we have no idea which ones would die, but some of them would 2011-02-05T18:57:37 so, 2 d's left in the first scenario 2011-02-05T18:57:45 (but which 2?) 2011-02-05T18:57:50 +1 to the graph from tron, i was about to mention that 2011-02-05T18:58:21 actually, 1-1 raises the question of who fights whom? 2011-02-05T18:58:26 especially in the first scenario 2011-02-05T18:58:28 Zannick: exactly 2011-02-05T18:58:39 which is what the serial numbers thing was suppose to "solve" 2011-02-05T18:58:51 Zannick, start with any 2, then expand to include 1 of as many bots as possible 2011-02-05T18:58:55 I don't like how nondeterministic that feels. 2011-02-05T18:58:59 nor i 2011-02-05T18:59:05 unless you interpret the fight as a group and say 1 from each dies 2011-02-05T18:59:12 j3camero: can we just go with the number of adjacent enemies for the moment? 2011-02-05T18:59:19 Zannick: but which one? 2011-02-05T18:59:44 the one that spawned first of a bot dies first 2011-02-05T18:59:51 :( 2011-02-05T19:00:04 yeah, you'd knock off one from each team with the lowest serial number 2011-02-05T19:00:12 and be left with 2 from d 2011-02-05T19:00:12 not *entirely* nondeterministic i guess. it's actually like a crazy stratego rule 2011-02-05T19:00:23 maybe we could make choosing the one to die deterministic? 2011-02-05T19:00:30 like, the most occupied ant dies first? 2011-02-05T19:00:34 but ad, bd, cd they would all die 2011-02-05T19:01:01 The serial number thing would not be a big deal in practice. The rule operates in such a small local radius that it won't change the outcome of a battle. 2011-02-05T19:01:08 Zannick: not necessarily i think 2011-02-05T19:01:19 Zannick: what if a and the second d cancel, then b and the third d? 2011-02-05T19:01:26 Zannick: that would leave c and the first d 2011-02-05T19:01:39 jmcarthur: right, but those ants are fighting 2011-02-05T19:01:47 huh? 2011-02-05T19:02:11 they are too far apart 2011-02-05T19:02:19 it's a knight's move 2011-02-05T19:02:20 no, they are in a fight before 2011-02-05T19:02:23 not against each other 2011-02-05T19:02:32 but their opponent's died 2011-02-05T19:02:35 -' 2011-02-05T19:02:50 The high-level outcome of a battle will still be "player A attacks player B's chokepoint with three more ants, now player A occupies the area with three ants" 2011-02-05T19:02:59 that seems nonintuitive to me 2011-02-05T19:03:23 Zannick: but i think that's what could happen with the serial numbers thing 2011-02-05T19:03:29 since each of them had two opponents that died but it did not 2011-02-05T19:03:30 depending on spawn order 2011-02-05T19:03:42 jmcarthur: only if you don't take teams into account first 2011-02-05T19:04:02 how would you do that? 2011-02-05T19:04:14 determine how large the fight is 2011-02-05T19:04:22 a is fighting b, d, and d, etc 2011-02-05T19:04:28 oh i see, knock them off in parallel 2011-02-05T19:04:46 what about dbd? 2011-02-05T19:04:48 i wonder if that's stable 2011-02-05T19:04:52 1-1 does get a bit tricky when you start having multiple teams, and even trickier if you say you want one ant from each 'group' to die 2011-02-05T19:04:57 or if there could still be an ambiguous case 2011-02-05T19:05:41 if you can order it so that you're left with c and d like that 2011-02-05T19:05:43 i think 1:1 would be messy and horrible as well as boring now 2011-02-05T19:05:51 you could also order a and b to fight, and c and d to fight 2011-02-05T19:05:55 and 2 ds are left 2011-02-05T19:05:58 yeah 2011-02-05T19:06:01 that would suck 2011-02-05T19:06:13 so there'd have to be some sort of team-aware combat algorithm 2011-02-05T19:06:23 well, okay, trying to pair ants off doesn't work 2011-02-05T19:06:24 whatever the rule would be would have to be synchronous and be calculable with just the surrounding squares 2011-02-05T19:06:36 yeah like automata 2011-02-05T19:06:36 There is a really elegant resolution algorithm for 1:1 battles. Make the graph of all the ants that are attacking each other. Find all complete subgraphs. Remove complete subgraphs in order such that the maximum number of ants die. That would be totally intuitive. 2011-02-05T19:06:43 which is how i came up with my algorithm 2011-02-05T19:06:54 this seems like a graph theory algorithm in the engine 2011-02-05T19:07:04 It is 2011-02-05T19:07:04 j3camero: i thought you wanted it to be easy for beginners? :P 2011-02-05T19:07:12 that is not very intuitive 2011-02-05T19:07:15 nor efficient 2011-02-05T19:07:33 and is probably equivalent to something much simpler 2011-02-05T19:07:50 The people don't have to know this algorithm or anything about it. The results of the algorithm are intuitive, even thought its operation is not. 2011-02-05T19:08:02 The result is "if my ant goes too close to other ants, it dies" 2011-02-05T19:08:06 okay that's silly. of course you want to know the algorithm 2011-02-05T19:08:21 on the other hand, complete subgraph on a 2d plane is only K3 2011-02-05T19:08:34 With fog of war it will be impossible for the players to run this algorithm anyways. They don't know all the inputs in general. 2011-02-05T19:08:39 you need to be able to test the result of moves to see how good they are 2011-02-05T19:08:42 j3camero: you can't argue that when you argued the other rule was too complicated 2011-02-05T19:08:46 that involves implementing that algorithm 2011-02-05T19:09:12 they can implement it to their best knowledge for their current attacking ants 2011-02-05T19:09:17 so now it's between my algorithm and an algorithm so massively complex that we don't even want to say what it is? 2011-02-05T19:09:20 hm, you're right about the fog of war, though 2011-02-05T19:09:27 holy moly this room is active 2011-02-05T19:09:44 * pgpaskar_ looks at the backlog 2011-02-05T19:09:45 I agree. 2011-02-05T19:10:03 Hmmm.... well I don't really like the ideal about paying attention to the global min or whatever, but I think the count neighbors and if there are more enemies than friends dies would be my preference at the moment 2011-02-05T19:10:09 pgaskar_: :P 2011-02-05T19:10:10 Zannick: with the complex rule, the complexity of the rule directly affects how many ants you get to keep. Unless you understand it, you may get mauled 3:1. With the simple rule, it's good enough to know that when you approach another ant, they both die. The complex battle resolution algorithm is only for handling the really weird corner cases. 2011-02-05T19:10:13 my algorithm works in the presence of fog of war too as long as you can see two cells away 2011-02-05T19:10:24 j3camero: what simple rule? 2011-02-05T19:10:40 Meatkat: I think it's "more enemies than their enemies", not "more enemies than friends". 2011-02-05T19:10:45 (distinction important) 2011-02-05T19:10:58 j3camero: the simple rule includes when you approach two ants, one of them dies 2011-02-05T19:11:27 watching themselves get mauled gives them something to improve on 2011-02-05T19:11:33 a.b 2011-02-05T19:11:34 .c. 2011-02-05T19:11:37 and i think even top players may find it hard to work out what is optimal to do 2011-02-05T19:12:12 all die, right? 2011-02-05T19:12:16 wouldn't be fair otherwise 2011-02-05T19:12:19 a.a 2011-02-05T19:12:21 .c. 2011-02-05T19:12:23 jbroman: why? 2011-02-05T19:12:27 same has to apply here 2011-02-05T19:12:45 and yet, now it's not fair 2011-02-05T19:13:13 voila, yes indeed 2011-02-05T19:13:16 j3camero: I can work on a 1:1 fair battle resolution, if you want to focus on bot communication 2011-02-05T19:13:30 from what we discussed this morning 2011-02-05T19:13:49 Meatkat: Consider aab. In the "more enemies than their enemies" case, the "ab" pair kill each other. In the "more enemies than friends" case, only the b dies. 2011-02-05T19:14:16 McLeopold: what would happen with aba? 2011-02-05T19:14:26 "more enemies than friends" can lead to deadlocks 2011-02-05T19:14:34 that's why we aren't promoting it 2011-02-05T19:14:41 aabb 2011-02-05T19:15:11 right 2011-02-05T19:16:00 So the adage "the enemy of my enemy is my friend" critically does not apply here. :) 2011-02-05T19:16:27 Well I think a 1-1 system can be found, though having more players makes it more complicated 2011-02-05T19:17:07 i can't imagine it'll be any less "complicated" than jmcarthurs rule 2011-02-05T19:17:09 this one is 1-1 where it really counts, like: ab;cd 2011-02-05T19:17:19 and it's not as awesome, so why not just use jmcarthur's rule? 2011-02-05T19:19:27 This one? -> A lives if A.opponents.length < A.opponents.map(.opponents.length).minimum 2011-02-05T19:19:34 yes 2011-02-05T19:20:11 A lives if the number of A's opponents is less than the number of your opponents global minimum opponents 2011-02-05T19:20:55 if any of your opponents is fighting fewer or the same number of people than you, they kill you 2011-02-05T19:21:16 (what does the .map mean?) 2011-02-05T19:21:29 it maps for each element in the array apply the operation to it 2011-02-05T19:21:34 *it means 2011-02-05T19:21:44 Meatkat: http://en.wikipedia.org/wiki/Map_%28higher-order_function%29 2011-02-05T19:22:04 the rule is simple, doesn't require "picking" an ant arbitrarily to kill and leads to interesting game play 2011-02-05T19:22:08 i don't understand where the issue is 2011-02-05T19:22:11 Meatkat: a practical algorithm could do a prepass on the game map that makes it look like a trivial automata rule: 2011-02-05T19:22:28 AAA;BBB ==> 232;232 2011-02-05T19:22:35 ^^ they all die there 2011-02-05T19:22:41 the numbers are the number of people each is fighting 2011-02-05T19:23:03 Let me take another stab at this. Nothing could be simpler to understand than the 1:1 elimination rule: "3 ants attack 7, now 4 remain". With the complex rule, you could end up with situations like "6 ants attack 10 and somehow win without losing a single ant". Figuring out how this could happen requires pretty careful study of the rules. And imagine how daunting it would be for most people to program a bot that exploits these rules! 2011-02-05T19:23:13 j3camero: which 4 remain? 2011-02-05T19:23:43 j3camero: Macroscopically, but the positioning of the remaining ants could be strategically important. 2011-02-05T19:23:44 j3camero: and really, is this really that complex? 2011-02-05T19:23:50 +1 to j3camero's last sentence 2011-02-05T19:23:58 j3camero: aba, which a dies? 2011-02-05T19:24:01 Yes, yes it is 2011-02-05T19:24:38 antimatroid: the a that was spawned first 2011-02-05T19:25:05 Or another rule, I don't think an algorithm needs to be provided right now 2011-02-05T19:25:07 McLeopold: I hate how arbitrary that seems. I should be able to look only at a map of the current state and predict the outcome of combat. 2011-02-05T19:25:17 you just kill the ants fighting more than their neighbors are 2011-02-05T19:25:19 acb..aba 2011-02-05T19:25:29 i don't like that either 2011-02-05T19:25:31 This is what the other 23 hours when we discussing on IRC is to figure out ;) 2011-02-05T19:25:54 I claim that it won't matter *that* much. Of course, it does matter. But the worst that can happen is that your remaining ant is a few pixels over from where it could have been on an otherwise empty battlefield after the battle. It's not a big deal. In 90% of cases he can move to where you want him to be before more enemies show up. Whereas with the micro rules, the difference can mean getting mauled 3:1 or worse in almost all cases. 2011-02-05T19:26:22 j3camero: and that's a good thing. the moves you choose should matter 2011-02-05T19:26:28 otherwise, what's the point? 2011-02-05T19:26:54 Okay, so let's do chess. 2011-02-05T19:26:59 bullshit 2011-02-05T19:27:01 There are other criteria man. 2011-02-05T19:27:04 it's not chess 2011-02-05T19:27:07 you're attacking a strawman by comparing this to chess 2011-02-05T19:27:09 it's nothing like chess 2011-02-05T19:27:11 I know it's not chess. 2011-02-05T19:27:36 it's nothing like chess at all 2011-02-05T19:27:39 I'm just pointing out that "the moves you make should matter" is not a well-formed response to the concern that I raised. 2011-02-05T19:27:45 what concern? 2011-02-05T19:27:55 you want to level the playing field 2011-02-05T19:28:01 fine 2011-02-05T19:28:02 Not at all. 2011-02-05T19:28:34 i understand having the games be simple for people to get started with a bot 2011-02-05T19:28:50 it should even be a goal for them to be able to make some easy noticable improvements 2011-02-05T19:29:06 I would take that as he wants the competition to be about programming not exploiting complex rules. 2011-02-05T19:29:09 but i don't think it's important that they will necessarily be competitive at the top without some serious thought/work 2011-02-05T19:29:14 Meatkat: then it's not about AI 2011-02-05T19:29:32 programming isn't about AI? 2011-02-05T19:29:35 Meatkat: ai is about solving complicated problems 2011-02-05T19:29:42 it's an ai contest 2011-02-05T19:29:46 not exploiting complex rules 2011-02-05T19:29:55 it's not exploiting rules 2011-02-05T19:29:58 it's playing hte game 2011-02-05T19:29:59 it's not that complex. it is intuitive with a diagram 2011-02-05T19:30:09 *** bhasker has joined #aichallenge 2011-02-05T19:30:10 which is more than i can say about combat resolution with 1:1 2011-02-05T19:30:16 a complicated problem is where and when to engage the enemy, not "which haxxorz formation can I throw together not to loose an ant" 2011-02-05T19:30:24 Meatkat: it's both 2011-02-05T19:30:47 Meatkat: where and when isn't even that helpful if the numbers game means you always win or always lose 2011-02-05T19:30:59 my worry is that 1:1 resolves two situations differently 2011-02-05T19:31:01 and it's even worse with it's nondeterministic 2011-02-05T19:31:05 That may be, but back to our original argument of creating barriers for noobies 2011-02-05T19:31:05 favorite IDE (just widespread question) 2011-02-05T19:31:05 *when it's 2011-02-05T19:31:08 acb and aba 2011-02-05T19:31:20 Meatkat: i don't see a path for improvement as a barrier 2011-02-05T19:31:29 Zannick: that will be the case, jeff is arguing that the difference is mute 2011-02-05T19:31:30 i see the lack of such a path as a barrier though 2011-02-05T19:32:22 The more complicated rule creates a big barrier to entry because there is this graduate-level algorithmic insight that you have to solve in order to progress beyond a very basic level. 2011-02-05T19:32:36 bullshit. the same applies to the nondeterministic 1:1 rules 2011-02-05T19:32:39 one of the only complaints people had with planet wars was that it was hard to really make noticable improvements 2011-02-05T19:32:49 Best way I can see to resolve 1:1 is to use non-simultaneous turns and have combat occur when two ants occupy the same space. 2011-02-05T19:32:56 i think being able to make noticable improvements encourages people 2011-02-05T19:32:58 and what's so graduate-level about it? 2011-02-05T19:33:07 Then you have someone going first, which we're trying to avoid 2011-02-05T19:33:09 it isn't moot, though 2011-02-05T19:33:15 jbroman: don't want to move away from simultaneous 2011-02-05T19:33:22 it's non-intuitive 2011-02-05T19:33:41 j3camero: it's not graduate level at all 2011-02-05T19:33:41 and i think the graph algorithm won't handle it specifically so we have more special cases 2011-02-05T19:33:43 antimatroid: I can't think of a way to make 1:1 non-arbitrary with simultaneous moves. 2011-02-05T19:34:00 jbroman: agreed, i don't like 1:1 :) 2011-02-05T19:34:31 yeah it's easy. I laid out the algorithm above. 2011-02-05T19:34:49 j3camero: The subgraph elimination algorithm? 2011-02-05T19:34:50 1:1 is deterministic for those who need that property. 2011-02-05T19:35:01 j3camero: aba? which a? 2011-02-05T19:35:38 the subgraph elimination algorithm sees o-o-o 2011-02-05T19:35:49 j3camero: but what the hell it's the most complicated algorithm discussed so far dude 2011-02-05T19:36:12 you want to talk about a gap between levels of players... 2011-02-05T19:36:18 *that's* how you make one 2011-02-05T19:36:34 for the acb case, also o-o-o 2011-02-05T19:37:13 j3camero: 1:1 is simple on a basic level, but I haven't heard a simple deterministic algorithm for resolving these fairly common cases. (I may have missed it if you stated one.) 2011-02-05T19:37:47 We need to separate the complexity of the battle resolution algorithm with the complexity of a game-playing algorithm that plays well under the sceme. The micro rule is simple but a bot that does not get demolished under it needs to be pretty complicated. The 1:1 battle resolution algorithm is graduate-level, but a bot that does well under it can be very simple. 2011-02-05T19:38:00 *** Meatkat has quit IRC (Ping timeout: 240 seconds) 2011-02-05T19:38:15 if combat is nondeterministic unless you apply graduate-level analysis to it (your words) we're even worse off than with a deterministic and less difficult algorithm 2011-02-05T19:38:41 j3camero: it's not graduate level and a player needs to have it if they expect to do well 2011-02-05T19:38:49 j3camero: All of the rules should be simple. 2011-02-05T19:38:52 they need to be able to determine what will happen if they make any particular move 2011-02-05T19:38:52 j3camero: you mean all bots perform equally well in randomized games 2011-02-05T19:39:12 a good bot should kick the shit out of a bad bot 2011-02-05T19:39:24 let's just place flip a coin 2011-02-05T19:39:26 *play 2011-02-05T19:39:38 okay i'll be more fair 2011-02-05T19:39:41 contestbot flip coin 2011-02-05T19:39:42 McLeopold: No! 2011-02-05T19:39:43 i never won a single game against mega1, i got excited when i made it 100 turns against him 2011-02-05T19:39:45 let's resolve combat by flipping a coin 2011-02-05T19:40:04 that's not helpful. clearly neither scheme is remotely equivalent to flipping a coin. If there isn't going to be a basic level of respect then we can't have this discussion. 2011-02-05T19:40:12 a simple rule means a bot can implement it simply 2011-02-05T19:40:25 where was there any lack of respect? 2011-02-05T19:40:30 j3camero: nondeterminism is flipping a coin 2011-02-05T19:40:33 there is nothing wrong with differing preferences 2011-02-05T19:40:33 j3camero: whoa, I'm still in this discussion 2011-02-05T19:41:13 j3camero: i apologize if my tone is too harsh 2011-02-05T19:41:31 so the algorithm being simple means a bot can implement it and look ahead 2011-02-05T19:41:45 jmcarthur: at some level you'd have to agree the randomness of killing ants will not affect the outcome too much 2011-02-05T19:41:53 trying to not look ahead will make it complicated 2011-02-05T19:41:59 McLeopold: that's kind of the point 2011-02-05T19:42:05 how so? 2011-02-05T19:42:14 McLeopold: i want combat to have an effect on the outcome 2011-02-05T19:42:30 err 2011-02-05T19:42:39 i want your approach to combat to have an effect on it 2011-02-05T19:42:59 i don't want to just throw shit at each other and see if it hits 2011-02-05T19:43:15 if all you get is to choose how many to send, it isn't so bad 2011-02-05T19:43:34 no, but it's not fun 2011-02-05T19:43:47 a macro-only game would be epicly boring to me 2011-02-05T19:43:59 because of a lack of tactics? 2011-02-05T19:44:19 there are going to be micro and macro tactics regardless 2011-02-05T19:44:22 because i don't think macro is sustainable without micro in a game like this 2011-02-05T19:44:36 did planet wars have micro? 2011-02-05T19:44:51 if all battles resolve roughly the same then why have individual ants at all? why not just do planet wars again, with fleets? 2011-02-05T19:44:58 McLeopold: yes, single planet decisions/defense 2011-02-05T19:45:17 no micro means we're just doing needless extra code to manage tons of ants 2011-02-05T19:45:25 redistribution and redirection 2011-02-05T19:45:27 Zannick: that would be like the macro in ants, how much for attack, how much for resource 2011-02-05T19:45:40 yes 2011-02-05T19:45:42 i agree, planet wars was almost all macro 2011-02-05T19:45:54 but the macro in planet wars was multi-planet efforts 2011-02-05T19:45:58 it was also actually very hard to improve upon 2011-02-05T19:46:41 making simple micro improvements should really provide good macro improvements 2011-02-05T19:46:54 i think i may have offended j3camero away from the discussion :\ 2011-02-05T19:47:00 sorry 2011-02-05T19:47:01 No not at all. 2011-02-05T19:47:04 okay good 2011-02-05T19:47:12 we should get mega1's opinion :P 2011-02-05T19:47:30 I think 1:1 can still be made fun with good depth, but we would need more maze like maps 2011-02-05T19:48:05 *** bhasker has quit IRC (Quit: bhasker) 2011-02-05T19:48:22 the other rule is so perfect though :| 2011-02-05T19:48:34 we should have better maps anyway 2011-02-05T19:48:37 it is quite nice :) 2011-02-05T19:48:39 wide-open isn't very exciting 2011-02-05T19:48:56 Zannick: I'm working on that 2011-02-05T19:49:02 Zannick: it would be with micro management, but then it's a different game 2011-02-05T19:49:37 So with 1:1 conflict, the focus becomes path finding and resource allocation, rather than ant tactics 2011-02-05T19:50:44 with food as the scoring, it becomes about holding onto territory 2011-02-05T19:50:49 There's still lots of micro with the 1:1 rule. I disagree with the characterization that 1:1 has less micro than the neighbor rule. For example, trying to distract a bunch of ants away from a chokepoint so you can charge through with a smaller force and start collecting food behin enemy lines. There are lots of little "plays" that people can come up with. The difference is that the micro is more accessible to novices. It's more macro-ey micro :-) 2011-02-05T19:51:09 It's not so incredibly tactical that you need to explicitly represent future game states. 2011-02-05T19:51:13 so, the larger your territory, the more borders you need to defend, and the more ants you'll get to defend it 2011-02-05T19:52:18 I worry that a small lead in the beginning will be unstoppable, regardless of bot skill 2011-02-05T19:52:57 It won't be that unstoppable, since the bots have imperfect information. 2011-02-05T19:52:59 I'll need to come up with a truce dance and hope others will respect it. :) 2011-02-05T19:53:21 So a strong bot doesn't know whether his neighbor is small or big. It's still a big risk to try to steamroll him. 2011-02-05T19:53:51 j3camero: it will be *more* unstoppable with imperfect info, because no one will know who to gang up on 2011-02-05T19:54:02 doesn't matter. strong bots already have map dominance. they can just sit on their haunches 2011-02-05T19:54:03 But if you just sit around, you take the risk that another player will gain control of more than 50% of the map while you wait, ensuring you get steamrolled. 2011-02-05T19:54:32 Camping will be a very bad strategy, in other words. 2011-02-05T19:54:35 if you don't have map dominance, you can *only* attack. if you have it, your best bet is to do nothing 2011-02-05T19:55:07 you can wait for others to kill each other 2011-02-05T19:55:10 If you control, say, 25% of the map, and you start camping, then when do you spring from your hiding spot? You can't know unless you go out into the world (ie: dont camp) 2011-02-05T19:55:22 I think there is enough depth here that 1:1 will still be fun. 2011-02-05T19:55:29 jmcarthur: I hope you can agree. 2011-02-05T19:55:32 McLeopold: well okay, but then that last one will have map dominance by the time you even step in 2011-02-05T19:55:41 The game moves more into diplomacy style tactics 2011-02-05T19:55:45 Say there are 3 players. How will you know when the other two are killing each other? You can't see the site of their battle. You don't know. 2011-02-05T19:55:48 j3camero: i'm saying that camping with only 25% map control is just suicide 2011-02-05T19:56:17 j3camero: there's no decision to make. fight or die 2011-02-05T19:56:23 abc 2011-02-05T19:56:24 ..d 2011-02-05T19:56:42 Zannick dies, a b c and d live 2011-02-05T19:56:51 :( 2011-02-05T19:57:18 i am trying to figure out an algorithm for 1:1 resolution 2011-02-05T19:57:31 the graph theory one seems ill-fitting 2011-02-05T19:59:27 which is more accurate? "1:1 means you lose as many as each opponent" or "1:1 means you lose as many as all opponents you fight" 2011-02-05T19:59:51 i was thinking 1:1 meant that pairs of ants died at a time 2011-02-05T20:00:02 right but that's problematic for abc 2011-02-05T20:00:05 yeah 2011-02-05T20:00:10 is the latter less problematic? 2011-02-05T20:00:14 The problem with the graph theory algorithm is that there may be a few pairings that kill the same number of ants. So you have to choose one. I claim that it will very rarely make any difference at all, but still you need some deterministic way to choose one of the possible outcomes. Keep in mind that you will only very rarely get multiple solutions anyways. The vast majority of battles will be 1-vs-1 ant, even in a big confrontation involving many ants. 2011-02-05T20:00:44 j3camero: yeah, i agree that such situations would be rare 2011-02-05T20:00:59 well, not extremely common, anyway 2011-02-05T20:01:06 i need a better definition of the graph theory algorithm before i can really make sense of it 2011-02-05T20:01:21 so far it's "make a graph, remove complete subgraphs" 2011-02-05T20:01:24 If three different-colored ants step within each others' fighting radii simultaneously, they all die. In this case, it's 1:1:1. Keep in mind that this case is quite contrived, and will almost never occur. 2011-02-05T20:01:31 Zannick: basically it's just "find a way to kill the absolute maximum number of ants" 2011-02-05T20:01:31 *** dr- is now known as dr`away 2011-02-05T20:01:37 jmcarthur: kill them all? 2011-02-05T20:01:39 :P 2011-02-05T20:01:49 Zannick: well, the maximum based on pairings that you can find 2011-02-05T20:01:53 well 2011-02-05T20:01:56 cycles maybe 2011-02-05T20:01:59 i agree that the 3way case is contrived 2011-02-05T20:02:12 and rare 2011-02-05T20:02:17 i also agree 2011-02-05T20:02:21 good bots will avoid it 2011-02-05T20:02:30 it would be less rare for weird, 3-front battles though 2011-02-05T20:02:32 but i want it to be handled 2011-02-05T20:02:36 just not common for 1v1v1 2011-02-05T20:02:44 Yeah the 3-way matching will almost never happen. It would have to almost be intentionally done by three players. It's even possible to get a four-way matching, but I don't think 5 is possible. I guarantee the four-way will never happen once. 2011-02-05T20:02:50 i agree, McLeopold 2011-02-05T20:03:06 abc is less good if all die, when c or a can hold back 2011-02-05T20:03:11 and let the other two fight 2011-02-05T20:03:13 j3camero: well, i bet it will happen multiple times, but not by top bots 2011-02-05T20:03:47 A 3-way matching is different from a 3-way battle. 3-way battles should happen every now and then. But even in a 3-way battle, most of the deaths will be pairs of ants of two of the colors. 2011-02-05T20:04:14 j3camero: you're thinking of 4-way as ab;cd (eg. a square), as opposed to abc;de (almost a square) 2011-02-05T20:04:28 what about: if you have an adjacent enemy, you die? 2011-02-05T20:04:29 i think it would be much more common for a 3-way matching to come up in the midst of a 3-way battle 2011-02-05T20:04:38 A four-way battle might happen a few times, but I almost guarantee that a four-way death matching will never happen. It would have to be so carefully choreographed. 2011-02-05T20:04:57 antimatroid: that's not 1:1 2011-02-05T20:05:02 yeah i bet a few will happen, still 2011-02-05T20:05:12 j3camero: it is better to decide a way to handle it than crash the engine when it occurs 2011-02-05T20:05:25 Yeah the algorithm will handle it. 2011-02-05T20:05:26 antimatroid: that means 1 ant could theoretically kill 8 other ants at once 2011-02-05T20:05:35 that would never happen of course 2011-02-05T20:05:37 but it could 2011-02-05T20:05:45 jmcarthur: But 3 could happen easily. 2011-02-05T20:05:48 yes 2011-02-05T20:05:48 meh, i still like jmcarthur's rule by far 2011-02-05T20:05:59 remember, if we have a million games 1 in 10000 occurs 2011-02-05T20:06:03 The algorithm only seems complicated because it's built to handle these crazy corner cases. Since 99.9% of matching will be pure 1:1, the algorithm is very simple in practice. 2011-02-05T20:06:17 i don't think the percentage is anywhere near that high 2011-02-05T20:06:20 but what is the algorithm? 2011-02-05T20:06:27 unless you pull your forces waaaay apart 2011-02-05T20:06:27 we 2011-02-05T20:06:33 will find out soon enough 2011-02-05T20:06:48 i think i have an idea what you want it to be 2011-02-05T20:06:53 but i want that to be clear 2011-02-05T20:07:18 i'm curious to run some statistics with hunterbot to count the frequency of these situations 2011-02-05T20:07:27 i know it's not the final game, but it could be an indicator 2011-02-05T20:08:08 It might be easier to implement both, run a bunch of sample games and see what happens before deciding. 2011-02-05T20:08:12 jmcarthur: actually you're right. The second-most common case will be 2-vs-1, in which case one of the ants will die according to some ranking score (like serial numbers). But even this case will be pretty rare, since the three ants would all have to step into each others' radii at the same instant. 2011-02-05T20:08:12 like, say: "every ant is a node, adjacent enemies get edges between them. while edges remain, remove the largest complete subgraph" 2011-02-05T20:08:20 Whoops, jmcarthur already said that. 2011-02-05T20:09:02 j3camero: depends on your definition of rare though. in a 2-way battle, it might be pretty common, actually 2011-02-05T20:09:05 more likely a group of ants will be attacked by 1 ant, in which case the bot should know which one of their ants will die first 2011-02-05T20:09:47 Zannick: that's one way to do it. I claim that complete subgraphs should be removed in an order that maximizes the number of dead ants. Picture a K-4 with one node sticking off of one of its corners. Should the loner live? I claim not. 2011-02-05T20:09:49 Zannick: largest complete with unique ants 2011-02-05T20:10:20 ah, right 2011-02-05T20:10:35 So it's actually NP-complete. 2011-02-05T20:10:40 well, i certainly don't want to write the engine now o_O 2011-02-05T20:10:47 haha, no 2011-02-05T20:10:56 It's NP-complete, but dont worry its all good. 2011-02-05T20:10:57 it's O(n^4) 2011-02-05T20:11:05 or 5 or something 2011-02-05T20:11:14 rank 2011-02-05T20:11:21 let's go with the other option :P 2011-02-05T20:11:31 hm 2011-02-05T20:11:46 Zannick: I believe the "remove complete subgraphs in an order that maximizes the number of removes vertices" part is NP-complete, or at least exponential. 2011-02-05T20:12:59 But in practice, it's all good. 2011-02-05T20:13:25 finding the largest complete subgraph is np-complete 2011-02-05T20:13:36 okay, then, yes finding all of them must be np-complete 2011-02-05T20:13:50 you don't need to connect ants of the same bot 2011-02-05T20:13:58 well, you don't 2011-02-05T20:14:04 Yeah you wouldn't. 2011-02-05T20:14:37 it becomes a lot of little subgraphs, with maybe a couple options in a congested area 2011-02-05T20:15:07 The algorithm would run in a blink because in practice this graph will consist of mostly isolated components with two vertices. 2011-02-05T20:15:07 it also means lots of combinations of 2 ant graphs 2011-02-05T20:15:15 i think this is pretty simple to explain... https://gist.github.com/812989 2011-02-05T20:15:25 i'm thinking about what writing the spec would look like 2011-02-05T20:15:43 This algorithm is not complicated. It's a few short lines of Python. 2011-02-05T20:15:53 (the language in that gist would not be what's used in the spec) 2011-02-05T20:15:59 seems complicated to me 2011-02-05T20:16:12 i can't see it being done in a few lines 2011-02-05T20:16:35 nor i, without a nice graph library of some sort 2011-02-05T20:16:55 even with that 2011-02-05T20:16:59 Presumably we would use such a library. 2011-02-05T20:17:06 in the spec we wouldn't 2011-02-05T20:17:24 no in the spec we'd use pseudcode 2011-02-05T20:17:37 well-defined psuedocode, preferably 2011-02-05T20:17:39 *** chris__0076 has joined #aichallenge 2011-02-05T20:17:43 for subgraph h in g.all_complete_graphs 2011-02-05T20:17:44 *pseudocode 2011-02-05T20:17:44 etc 2011-02-05T20:18:13 eek 2011-02-05T20:18:26 i guess that could be a rigorous enough definition 2011-02-05T20:18:46 for enemy in ant.neighbors: recusively, pretty easy 2011-02-05T20:19:25 the subgraph thing? 2011-02-05T20:19:32 yeah 2011-02-05T20:19:52 i can't really imagine it would be a simple 10-liner recursive algorithm 2011-02-05T20:20:03 For the public spec, we probably just need to say: 2011-02-05T20:20:04 (1) If two enemies come within 3 units of each other, they both die. 2011-02-05T20:20:04 (2) If three enemies step within 3 units of each other at the same moment, all three die. 2011-02-05T20:20:04 challenge accepted 2011-02-05T20:20:07 (3) If two of your ants and one enemy ants all come within 3 units of each other at the same moment, then your older ant dies along with the enemy. 2011-02-05T20:20:10 (4) For other cases, check out the complete battle resolution process [link]. 2011-02-05T20:20:31 that's the kind of situation i didn't want to introduce in the spec 2011-02-05T20:20:37 where we just say the spec is the source code 2011-02-05T20:20:45 *** Chris_0076 has quit IRC (Ping timeout: 240 seconds) 2011-02-05T20:21:23 the spec should say, in general, it is a 1:1 loss ratio for all bots, but the individual ant that dies is not predictable 2011-02-05T20:21:23 Those three cases will be the most common, and anything else will be very rare, I predict. 2011-02-05T20:21:25 time to eat. i expect a ton of reading material when i get back :) 2011-02-05T20:21:39 McLeopold: yeah that's about all i would be willing to put in the spec 2011-02-05T20:22:12 ... or we could use jmcarthur's simpler rules 2011-02-05T20:22:15 j3camero: so, I will work on fair battle resolution if you want to focus on other parts 2011-02-05T20:23:08 so, how about this 2011-02-05T20:23:13 a.a.a 2011-02-05T20:23:14 oh, oh, oh 2011-02-05T20:23:15 ..... 2011-02-05T20:23:17 b.b.b 2011-02-05T20:23:29 Yep go for it. I will just make an engine that resolves battle by removing pairs in arbitrary order (like the demo I created) if you want to do the resolution algorithm. 2011-02-05T20:23:34 assuming only two players are fighting 2011-02-05T20:23:46 the maximal complete subgraph is K_2, i.e. an edge 2011-02-05T20:23:48 ok 2011-02-05T20:24:19 *** chris___0076 has joined #aichallenge 2011-02-05T20:24:22 K_3 and larger all contain odd cycles which are only possible with more than two players 2011-02-05T20:24:53 if the same bot is run, i think it should always end as a draw without randomness 2011-02-05T20:26:21 *** chris__0076 has quit IRC (Ping timeout: 240 seconds) 2011-02-05T20:26:24 you can have even cycles, sure... 2011-02-05T20:26:43 In a two-player conflict, supposing you get a case where a bunch of ants all hit each other all at the same time, then the pairs would get killed off from youngest to oldest or somesuch. Seems arbitrary, but would not matter much in practice, since the site of the ambiguous conflict is only a few pixels wide anyways, surrounded by less crowded space. All the possible outcomes are so tactically similar that I doubt it will matter much. 2011-02-05T20:27:20 no, in a two-player conflict the graph is bipartite so you just want a maximal mathcing 2011-02-05T20:27:23 matching * 2011-02-05T20:28:05 i would say if any 3-cycles exists mark all those ants as "going to die" then remove that 3-cycle's edges 2011-02-05T20:28:14 You can create contrived You can create contrived cases where it might matter, like 2011-02-05T20:28:17 .aaaaaaaaaaaaaa 2011-02-05T20:28:19 bbbbbbbbbbbbbbb 2011-02-05T20:28:21 Deciding which b gets to live *might conceivably* matter. 2011-02-05T20:28:35 j3camero: ... 2011-02-05T20:28:47 j3camero: that is a complete 180 on what you said earlier 2011-02-05T20:28:49 j3camero: i've got an idea for that 2011-02-05T20:29:03 Waht's that Zannick? 2011-02-05T20:29:11 stick with our "most occupied" metric for choosing pairs first. 2011-02-05T20:30:07 < j3camero> I claim that it won't matter *that* much. Of course, it does matter. But the worst that can happen is that your remaining ant is a few pixels over from where it could have been on an otherwise empty battlefield after the battle. It's not a big deal. 2011-02-05T20:30:26 okay, not a complete 180 2011-02-05T20:30:28 I don't understand the conflict. 2011-02-05T20:30:37 I think I'm still saying the same thing. 2011-02-05T20:30:37 it doesn't matter 2011-02-05T20:30:39 if you cared, as a bot, keep some back at where you want the one to live 2011-02-05T20:30:48 we can't wipe that away 2011-02-05T20:31:18 it's going to be arbitrary no matter what 2011-02-05T20:32:15 Or if you really really care about the pixel-precise positioning of your ants at the end of a big battle, you can implement the actual battle resolution procedure in your bot so it will know. But the majority of people I think won't care, because it makes little difference. In most cases you can reposition your ants as you want them before more enemies arrive anyways, so who cares. 2011-02-05T20:32:16 resolving those ties should be deterministic with all the information in the game 2011-02-05T20:33:06 actually, i'm not even sure what you're talking about 2011-02-05T20:33:09 Yeah, it is deterministic. We just have to choose some way to resolve the ambiguous cases. 2011-02-05T20:33:12 we're going to need to be given the age of their ants 2011-02-05T20:33:20 i was talking about an implementation of the 1:1 algorithm 2011-02-05T20:33:31 using maximal matchings 2011-02-05T20:34:04 and ants in 3-cycles all die regardless 2011-02-05T20:34:12 Well maximal matchings won't quite work because you need to handle the K4's and K3's. 2011-02-05T20:34:32 I understand what you're saying. But if you pre-remove te K4's and K3's, it won't quite work properly. 2011-02-05T20:34:38 K4s are 4-player battles 2011-02-05T20:34:42 K3s are 3-player battles 2011-02-05T20:34:45 Yep 2011-02-05T20:34:53 a K3 is a 3-cycle 2011-02-05T20:34:57 a K4 is 4 3-cycles 2011-02-05T20:35:21 i was suggesting marking those as going-to-die, then removing only the edges 2011-02-05T20:35:24 Picture a K3 with one edge hangin off one of its vertices. How should we resolve that? All four ants should die I think. But if you remove the K3 in advance then the loner would live. 2011-02-05T20:35:47 so in this situation we have x x x-o 2011-02-05T20:35:56 where the x's were a K3 that are now marked 2011-02-05T20:36:04 and the x-o is a remaining edge 2011-02-05T20:36:19 so now we kill the x and o 2011-02-05T20:36:20 Oh so mark the vertices of all K3's and remove their intra-K3 edges. 2011-02-05T20:36:24 and have no edges left 2011-02-05T20:36:25 yes 2011-02-05T20:36:47 We could probably try to prove that it's equivalent, but I believe it probably is. 2011-02-05T20:37:35 equivalent to finding all maximal subgraphs and ordering them? 2011-02-05T20:37:43 that's probably really hard 2011-02-05T20:37:45 Yes. 2011-02-05T20:38:37 Sometimes there will a few different maximal matchings. Most notably in the case where ABA. So we have the same problem. How to resolve these? 2011-02-05T20:39:10 we have this problem regardless 2011-02-05T20:39:21 Yeah it's the same problem. 2011-02-05T20:39:40 the best suggestion has been to give every ant a unique increasing id 2011-02-05T20:39:54 Yeah just prefer to kill older ants. 2011-02-05T20:39:59 that's the only suggestion :) 2011-02-05T20:40:01 and then we can break ties by removing the edge with the ant with the lowest id 2011-02-05T20:40:46 or rather, the maximal matching which removes the ant with lowest id that is not removed by any of the others 2011-02-05T20:40:53 We have to log it somewhere if there is ever a K4 in the graph. I would bet money that we will never see one. 2011-02-05T20:41:11 how much? 2011-02-05T20:41:25 $) 2011-02-05T20:41:28 ab 2011-02-05T20:41:28 cd 2011-02-05T20:41:30 K4 2011-02-05T20:41:39 Hmmm.... $5? 2011-02-05T20:41:40 i'll take that bet 2011-02-05T20:41:43 me too 2011-02-05T20:42:07 I have one caveat. This applies only if the attack radius is not 1. 2011-02-05T20:42:25 if the attack radius is 2 it's just the same 2011-02-05T20:42:52 unless we try to make diagonals not the same 2011-02-05T20:42:55 a.b 2011-02-05T20:42:55 ... 2011-02-05T20:42:57 c.d 2011-02-05T20:43:05 Oh another obvious caveat. The bet only starts after 100 non-test bots have been submitted :-P 2011-02-05T20:43:50 so if I put a "bug" in the map generator, I don't see how I can lose 2011-02-05T20:43:57 lol. 2011-02-05T20:44:10 Whoopsie! 2011-02-05T20:44:24 how much for a k5? 2011-02-05T20:44:25 With that approach you could even have a K5 or a K9 if you wanted. 2011-02-05T20:45:23 i don't really like removing the oldest ant 2011-02-05T20:45:39 How should we resolve it? 2011-02-05T20:45:44 i don't know 2011-02-05T20:45:58 do we just get the actual ant id for each seen ant? 2011-02-05T20:46:37 We could put something in that lets people assign priorities to their ants so they can effectively choose whichever outcome suits them best. If you have one ant with a special pixel-critical mission you can give him a high number and he will be ever-so-slightly more likely to live. 2011-02-05T20:46:52 hate that 2011-02-05T20:47:02 it's even harder to predict what might happen with your moves then 2011-02-05T20:47:07 Novices would never use it. Then again, they probably dont need it either. 2011-02-05T20:47:19 maybe for their own ants, we should give bots the ids 2011-02-05T20:47:37 for the enemy ants, it would make it easy to estimate their army size 2011-02-05T20:47:52 unless it was remasked 2011-02-05T20:47:53 hm 2011-02-05T20:48:06 yeah 2011-02-05T20:48:17 Even then I don't like the idea of handing out the IDs, because it would allow people to recognize the same ants later. 2011-02-05T20:48:24 you see three enemy ants with ids 1 2 and 3 2011-02-05T20:48:36 but the engine is keeping track of them as 4, 27, and 319 2011-02-05T20:48:37 Oh this would work. 2011-02-05T20:48:44 If they get resorted every turn. 2011-02-05T20:48:55 resorted, not really 2011-02-05T20:48:58 reassigned 2011-02-05T20:49:31 j3camero: if people know their own ant ids, which the should know relatively, they can move the ant with the highest number into the priority spot 2011-02-05T20:49:32 although it might matter how they compare with your ants 2011-02-05T20:49:40 so, they kinda already have priorities 2011-02-05T20:49:47 This is seeming increasingly complicated (that we need to provide this much information to bots in order for them to emulate the combat algorithm). Isn't that a sign that it's too complex? 2011-02-05T20:50:27 if you send 1 ant to attack 2, should you care which one dies? You're still outnumbered. 2011-02-05T20:50:43 if you do care, send him on the correct flank 2011-02-05T20:50:49 As I said before, I doubt it will truly affect the outcome of a battle, even for power users. But if people are really fussy about it, we can show them the relative ordering of their own and enemy ants so they are able to predict completely deterministically. 2011-02-05T20:51:14 a 2011-02-05T20:51:15 ab 2011-02-05T20:51:43 can the bottom a be chosen since it is "closer" distance 1 as opose to distance sqrt(2) 2011-02-05T20:51:57 If you send 2 ants to attack 1, the overall result is you'll have one ant standing way out by himself. 2011-02-05T20:52:12 this is actually really easy to implement in communication 2011-02-05T20:52:27 I think distance might be slightly better than ant id, and we can still fall back on ant id 2011-02-05T20:52:30 send them the blank map, with what squares they can see 2011-02-05T20:52:42 then the list of ants 2011-02-05T20:53:07 eg. each ant is player, locatio[4~n 2011-02-05T20:53:14 location * 2011-02-05T20:53:23 so, the graphs are ordered by lowest average distance first, then by the id sums 2011-02-05T20:53:44 j3camero: ^^ that idea is gold! 2011-02-05T20:53:50 so the order in which they get the ants is the relative ordering the engine knows 2011-02-05T20:53:54 McLeopold: I like this idea. I bet it would resolve the majority of the ambiguities in a pretty slick way. 2011-02-05T20:53:55 *** iFire has quit IRC (Ping timeout: 240 seconds) 2011-02-05T20:54:10 yes, even in a way that bots can try and influence 2011-02-05T20:54:22 predictably 2011-02-05T20:54:28 hm 2011-02-05T20:54:32 i wonder how that would work 2011-02-05T20:54:54 that would work for the 2 lines of ants as well 2011-02-05T20:55:00 weight the edges? 2011-02-05T20:55:15 it would mostly garrentee the middle set of ants fight 2011-02-05T20:55:22 2011-02-05T10:32:40 What I don't like is "non-visible" state in the game. A non-computer-scientist should be able to learn the rules in less than 10 seconds by glancing at a YouTube video of a game in progress. 2011-02-05T20:55:25 and try to get a maximal matching of minimal cost? 2011-02-05T20:55:33 i just don't see the argument in favor of this at all... "That combat resolution is too complicated. Let use this even more complicated and arbitrary one instead. It will appear random unless you're a grad student; isn't that great?" 2011-02-05T20:56:04 jmcarthur: from a micro level, yes, but from the macro strategy, no 2011-02-05T20:56:19 send x against y and you are left with x-y ants 2011-02-05T20:56:24 jbroman: I grant you that. What we're talking about here is how *precisely* to resolve rare corner cases. I have argued that none of this precision affects the overall outcome of a battle. 2011-02-05T20:56:39 McLeopold: is that what you mean by order by distance? 2011-02-05T20:56:45 yes 2011-02-05T20:56:48 but average distance 2011-02-05T20:56:50 i don't like the idea that only grad students will be able to use micro to his advantage. isn't this precisely what was being claimed about my algorithm? 2011-02-05T20:57:08 so 2 competing k3 graphs will choose the tighter formation 2011-02-05T20:57:15 so maximal matching of smallest average distance rather than smallest total distance? 2011-02-05T20:57:20 jmcarthur: the difference here is that the advantage gained by milking the rule is infinitessimal. 2011-02-05T20:57:32 Whereas the advantage gained by milking your rule is overwhelming. 2011-02-05T20:57:39 but much easier to break into 2011-02-05T20:57:47 much much much easier 2011-02-05T20:57:55 and distance will be visual and somewhat easy to grasp. "These ants died because they were closest." 2011-02-05T20:57:57 path of improvement and all that 2011-02-05T20:58:14 That's debatable. The set of people able to exploit both rules is very similar. 2011-02-05T20:58:26 i like it 2011-02-05T20:58:54 it is an algorithmically definable rule 2011-02-05T20:58:57 The only weird ambiguity left is if two red ants approach a blue ant at perfect right angles. 2011-02-05T20:59:17 well, that will happen alot because this is on a grid 2011-02-05T20:59:30 I don't know that it will happen a lot. 2011-02-05T20:59:30 that's not an ambiguity because red doesn't fight itself 2011-02-05T20:59:51 which red dies? 2011-02-05T20:59:55 namely, wrt the right angle 2011-02-05T20:59:56 Well it's ambiguous because the two red-blue distances will be exactly the same. 2011-02-05T21:00:04 aba also 2011-02-05T21:00:12 it's ambiguous at any angle 2011-02-05T21:00:24 with a distance of 3, as oppose to 1, it will happen less 2011-02-05T21:00:40 i would go with distance of 2, actually 2011-02-05T21:01:46 Also keep in mind that we had almost this same ambiguity in Planet Wars. 2011-02-05T21:02:01 really, how? 2011-02-05T21:02:21 the 3-player fights, red blue and neutral 2011-02-05T21:02:29 *** iFire has joined #aichallenge 2011-02-05T21:02:43 it didn't matter which ship survived then 2011-02-05T21:02:56 as long as you knew which fleet won and with how many ships 2011-02-05T21:03:00 I was thinking what happens when two players attack the same enemy planet which has an odd number of ships on it. Which attacker fights the last ship? 2011-02-05T21:03:17 right 2011-02-05T21:03:25 Some people really cared, but few people really cared overall. 2011-02-05T21:03:27 we resolved that on a macro scale 2011-02-05T21:03:37 by #1 - #2 2011-02-05T21:03:48 we can't apply the same trick here 2011-02-05T21:03:56 You know it does make a difference, and some might argue that that one ship could make all the difference. They're right, but cmon. It's not going to change the rankings at the end of the day. 2011-02-05T21:04:06 unless we want to continue to downplay micro 2011-02-05T21:04:28 I thought it was pretty clear what would happen in that game. 2011-02-05T21:04:38 I don't remember a controversy. 2011-02-05T21:05:02 no, the algorithm in that case was buggy 2011-02-05T21:05:06 i'm not even interested in playing the game we're talking about right now. it's just kill or be killed. 2011-02-05T21:05:18 Yeah there were three different battle resolution algorithms in the end, and the debate was fierce. 2011-02-05T21:05:40 I missed it. The one chosen was pretty good. 2011-02-05T21:05:43 in that case, mine won, but i later wished it has been a different one 2011-02-05T21:05:46 jmcarthur: submit a suicide bot and see how it does :-) 2011-02-05T21:05:47 *had been 2011-02-05T21:06:15 i don't remember why i changed my mind anymore 2011-02-05T21:06:39 *** delt0r_ has joined #aichallenge 2011-02-05T21:06:39 because it made your haskell harder... 2011-02-05T21:06:40 The differences were subtle, and were limited to rare corner cases, as I remember. The most serious differences would only come up when two or more fleets arrived at a hostile planet at the same moment. We ended up just having 1v1 games anyways. 2011-02-05T21:06:46 McLeopold: ha 2011-02-05T21:06:53 i really don't remember 2011-02-05T21:06:54 anyway, you make a graph where each ant is a node, and two nodes have an edge of weight w if the ants are w apart and w <= d. 2011-02-05T21:07:12 any ant in a 3-cycle is marked, and all edges in 3-cycles are moved 2011-02-05T21:07:23 Well the first sort criteria is still that you want to kill as many ants as possible. 2011-02-05T21:07:31 j3camero: at a neutral planet you mean 2011-02-05T21:07:34 which was not uncommon at all 2011-02-05T21:07:39 then we find a maximal matching of lowest average edge weight 2011-02-05T21:07:43 i'd say it was a very important decision 2011-02-05T21:07:49 i don't know why you're downplaying it 2011-02-05T21:07:54 But if there's more than one maximal matching you go by average cartesian distance. 2011-02-05T21:08:03 which kills off the ant with lowest id not killed in another maximal matching 2011-02-05T21:08:13 *** delt0r___ has quit IRC (Ping timeout: 250 seconds) 2011-02-05T21:08:31 j3camero: if we use distance, we may be able to avoid looking for the maximal subgraphs, no? 2011-02-05T21:08:47 j3camero: yes, the priority is maximal size, minimum average weight, and id 2011-02-05T21:08:52 priority order * 2011-02-05T21:09:04 in the case where 3 ants come together, the closer to get killed, even though the 3rd is in range? 2011-02-05T21:09:21 at no point in this algorithm do we need maximal subgraphs 2011-02-05T21:09:52 McLeopold: Zannick came up with a more efficient algorithm that accomplishes the same thing: mark all K3's for removal, remove the intra-K3 edges, then find a maximal matching. 2011-02-05T21:10:30 can I get a picture? 2011-02-05T21:10:48 *** dlila has quit IRC (Quit: Leaving) 2011-02-05T21:10:58 .a. 2011-02-05T21:10:59 b.b 2011-02-05T21:10:59 .c. 2011-02-05T21:11:06 wouldn't that have 2 k3's? 2011-02-05T21:11:53 Yes. Mark all the K3's (even overlapping ones) for removal, and remove the intra-K3 edges. Then find a maximal matching with the remaining edges. 2011-02-05T21:11:56 so, you can't just mark the first one found as being chosen? 2011-02-05T21:12:15 You mark the vertices but don't remove them right away. 2011-02-05T21:12:35 what's an intra-k3 edge? 2011-02-05T21:12:48 an edge in the k3 2011-02-05T21:13:19 so the above, all ants would die 2011-02-05T21:13:26 that's not right 2011-02-05T21:13:39 it should be 1:1:1 with a leftover b 2011-02-05T21:14:04 unless, you considered it 2 1:1 fights 2011-02-05T21:14:09 it's nearly the same as ab.......bc 2011-02-05T21:14:45 granted, the k3 part of that algorithm could and probably should be improved 2011-02-05T21:15:07 this has just become arbitrary in my mind again 2011-02-05T21:15:38 i still don't see the point of working so hard and making things so complicated just to cripple micro AI 2011-02-05T21:15:50 i guess this is fitting more into the "i lose as many as all opponents" 1:1 2011-02-05T21:15:52 why can't micro and macro both be a part of it? why just macro? 2011-02-05T21:16:06 jmcarthur: if you can't add to the conversion, then please don't detract from it 2011-02-05T21:16:35 Well that example is inherently ambiguous. You could look at it as a triangle and a loner, or you could look at it as two 1-on-1 battles. I don't think one is more right than the other, except that all four ants dying seems a little fairer to me. 2011-02-05T21:16:49 jmcarthur: we haven't decided. i'm just trying to define a suitable algorithm for the 1:1 method 2011-02-05T21:17:09 i know it hasn't been decided. that's why i don't think i'm as off topic as McLeopold seems to think i am 2011-02-05T21:17:32 .a.. 2011-02-05T21:17:32 .b.b 2011-02-05T21:17:32 .c.. 2011-02-05T21:17:36 once we have algorithms it will be more testable 2011-02-05T21:17:40 the b is a little farther now 2011-02-05T21:17:54 Hmmm good point 2011-02-05T21:17:56 could the average distance save it's life? 2011-02-05T21:18:12 Under our scheme it would get removed. 2011-02-05T21:18:15 so, what if we looked for all distance 1 pairs first, including k3 2011-02-05T21:18:18 i haven't seen a great argument for downplaying micro, that's all. it's AI. i'll just shut up though. i understand that the 1:1 algorithm is getting a little love, that's fine. 2011-02-05T21:18:27 then remove the ants, and look for furthur distance ants 2011-02-05T21:18:57 jmcarthur: thanks, I still agree, I just want to have this conversation 2011-02-05T21:19:36 before, j3camero said, "what if there's a k4 and one edge off it? the loner shouldn't survive" 2011-02-05T21:19:50 Hmm yeah. 2011-02-05T21:20:12 Maybe in this example all four ants should still die. They're all "attacking" each other. 2011-02-05T21:20:38 ah, but when we add ants we can't have them all die 2011-02-05T21:20:42 And that would fit with the general intuition of "approach other ants means you die" 2011-02-05T21:21:00 but it removes the 1:1 aspect somewhat 2011-02-05T21:21:23 I kinda like killing distance 1 first, then working on longer distances 2011-02-05T21:21:26 again, it depends on the flavor of 1:1 we want 2011-02-05T21:21:42 i think that will work 2011-02-05T21:21:52 i have to make myself dinner, bbl 2011-02-05T21:22:03 as we remove ants, the graph finding becomes faster 2011-02-05T21:22:17 cause they're *DEAD* 2011-02-05T21:22:56 So basically we could move cartesian distance to be the first priority in the sort order. 2011-02-05T21:23:11 That jives with intuition. Why did those two ants die instead of those two? Because they were closer. 2011-02-05T21:23:27 yes, which means even if ants are within distance, they may not be killed, cause there is a closer pair 2011-02-05T21:23:37 Yep. 2011-02-05T21:23:38 that is still fair and intuative 2011-02-05T21:23:47 I think that would be fair yeah. 2011-02-05T21:23:54 I mean, it's consistent and intuitive. 2011-02-05T21:24:12 then you can try and steer through a battle field unharmed, think of the fun! 2011-02-05T21:24:32 call them, "scout ants" 2011-02-05T21:24:38 So the closest ants die first. What if three ants are all equal distance (impossible?)? Then they all die. 2011-02-05T21:24:48 it's a k3 at distance 1 2011-02-05T21:25:18 I don't think you can get an equilateral triangle on a square lattice. 2011-02-05T21:25:23 and in that case, with the 4 in a diamond, they all die 2011-02-05T21:25:25 So that solves that problem. 2011-02-05T21:25:29 no, 2011-02-05T21:25:31 abc 2011-02-05T21:25:35 ab distance 1 2011-02-05T21:25:38 bc distance 1 2011-02-05T21:25:43 ac distance 2 2011-02-05T21:25:49 but still part of the k3 2011-02-05T21:26:02 Yeah but cartesian distance is first in the sort order. 2011-02-05T21:26:06 yes 2011-02-05T21:26:11 So ab or bc would have to be eliminated first. 2011-02-05T21:26:32 well, no, you'd still look for k3's just at distance 1 first 2011-02-05T21:26:47 bleh, so much conversation 2011-02-05T21:26:56 more cowbell? 2011-02-05T21:27:32 you can't get an equilateral triangle with integer lattice points 2011-02-05T21:27:41 MORE COWBELL 2011-02-05T21:28:02 Yeah so we never have to worry about K3s or K4s. 2011-02-05T21:28:33 The closest pairs get eliminated first. The only ambiguity is if there are overlapping pairs with the same distance, like ABC. 2011-02-05T21:29:15 i don't think this is going to be more intuitive to jmcarthur's rule 2011-02-05T21:30:02 antimatroid: i think the main reason this is being considered is that it downplays micro, not because it's simpler 2011-02-05T21:30:36 but the micro is there still, but even harder 2011-02-05T21:30:37 I don't think it downplays micro. 2011-02-05T21:30:50 and not as cool 2011-02-05T21:31:07 antimatroid: j3camero says that it's because if you do manage to exploit something about it then the payoff is still small 2011-02-05T21:31:20 which i see as downplaying micro 2011-02-05T21:31:29 The problem with jmcarthur's rule is that it's too hard to exploit. You will all wipe the floor with the novices so badly that they won't want to play. 2011-02-05T21:31:41 i disagree 2011-02-05T21:31:42 j3camero: there are very easy tips to give about it 2011-02-05T21:31:53 j3camero: "attack with a straight line" for example 2011-02-05T21:32:06 If you do manage to exploit jmcarthur's rule the payoff is too huge. You can get 3:1 odds or even better. 2011-02-05T21:32:36 yes but you have to leave ants there not doing anything else 2011-02-05T21:32:50 so you're basically paying for defending a path by doing nothing else 2011-02-05T21:33:10 the hard part is not being to exploit it at all. the hard part is choosing the fronts you want to prioritize 2011-02-05T21:33:17 in a sense, that's actually a macro decision 2011-02-05T21:34:12 being able to exploit it at all is easy. newbs can get it 2011-02-05T21:34:55 when you see an opposing force, pull your closest ants back such that they form a line, then push the line at the opposing force to attack it effectively 2011-02-05T21:35:18 j3camero: I still think we need to look for k3's and k4's and such. 2011-02-05T21:35:23 How many lines would an algorithm be that can recognize when it's being attacked by a group of ants, and to line up all its ants. It's pretty non-trivial. 2011-02-05T21:35:33 I'll work on one that does to see if I can make it work. 2011-02-05T21:35:47 it sounds like you're saying you don't want this to be an AI competition 2011-02-05T21:36:10 AI is non-trivial 2011-02-05T21:53:45 *** amstan has joined #aichallenge 2011-02-05T21:53:45 *** ChanServ sets mode: +o amstan 2011-02-05T21:54:01 what up amstan 2011-02-05T21:54:13 got 5 min early before my parents 2011-02-05T21:54:17 and shoveled snow for them 2011-02-05T21:54:26 and then they came when i was 50% done 2011-02-05T21:54:29 so i hurried 2011-02-05T21:54:31 and now i'm all tired 2011-02-05T21:54:33 lol 2011-02-05T21:55:50 http://en.wikipedia.org/wiki/Sanctum_(film) : good movie 2011-02-05T21:59:41 amstan you missed a lively debate about battle resolution 2011-02-05T21:59:49 haha 2011-02-05T21:59:53 lively 2011-02-05T21:59:56 * jmcarthur hugs j3camero 2011-02-05T22:01:41 j3camero: so.. what's going on? can we launch this? lol 2011-02-05T22:01:46 i prefer 1024x768 battle resolution 2011-02-05T22:01:51 ;) 2011-02-05T22:01:53 *** tapwater has joined #aichallenge 2011-02-05T22:02:01 yeah amstan we're launching tomorrow. Is the website done yet? 2011-02-05T22:02:09 Zannick: 1080p :P 2011-02-05T22:02:21 j3camero: an all nighter should fix that part 2011-02-05T22:02:22 Zannick: AI Contest 3D 2011-02-05T22:02:23 lol 2011-02-05T22:02:50 :) 2011-02-05T22:04:20 j3camero: did you seriously spend the whole day since 1pm on irc? lol 2011-02-05T22:04:30 Pretty much. 2011-02-05T22:04:41 cool 2011-02-05T22:04:42 so.. 2011-02-05T22:04:44 what's going on then? 2011-02-05T22:04:49 like, this is tldr 2011-02-05T22:05:13 i see no commits in the repo 2011-02-05T22:05:32 hehehe 2011-02-05T22:05:40 amstan: i'm not sure if we have NP complete battle resolution or not 2011-02-05T22:05:45 *** Mathnerd314 has quit IRC (Ping timeout: 255 seconds) 2011-02-05T22:05:51 :) 2011-02-05T22:06:08 my mom asked me if i wanted a beer 2011-02-05T22:06:13 i answered "I probably should" 2011-02-05T22:06:19 lol 2011-02-05T22:06:21 i think j3camero was joking about the tomorrow thing 2011-02-05T22:06:22 :P 2011-02-05T22:06:25 man i want one 2011-02-05T22:06:30 lol 2011-02-05T22:07:47 Hmm beer you say. 2011-02-05T22:08:03 There is some kind of pirate party happening at the brewery next to my house 2011-02-05T22:08:03 haha oh j3camero 2011-02-05T22:08:08 lol 2011-02-05T22:08:22 j3camero: you should go for me, lol 2011-02-05T22:08:34 amstan where are you now? 2011-02-05T22:08:37 Hamilton? 2011-02-05T22:08:39 hamilton 2011-02-05T22:08:40 yeah 2011-02-05T22:08:50 Get on the go train, meet at union in one hour? 2011-02-05T22:08:58 nah 2011-02-05T22:09:03 it's impossible to drive here 2011-02-05T22:09:12 20cm of snow everywhere, unshoveled 2011-02-05T22:09:32 I love not having to care about the snow. 2011-02-05T22:10:04 k, so what happened? 2011-02-05T22:10:25 Nothing really. No concrete decisions. Much discussion of battle resolution. 2011-02-05T22:11:02 cool 2011-02-05T22:11:10 but we should get some plan going 2011-02-05T22:11:13 make a checklist 2011-02-05T22:11:18 of what we have to do 2011-02-05T22:11:49 Oh snap. Yo guys. I got a third proposal of an even simpler algorithm. How about all connected components die? 2011-02-05T22:12:04 So simple. If a bunch of ants get close together, they all die. 2011-02-05T22:12:43 The intuition is that they're all suicide bombers. 2011-02-05T22:12:46 "all connected" including aab? 2011-02-05T22:12:54 or would that just be a and b die 2011-02-05T22:13:12 Nope all three would die there. 2011-02-05T22:13:17 aaaaaaaaaaaaaaaaaaaaaaaab 2011-02-05T22:13:22 all As die there as well? 2011-02-05T22:13:30 Can that happen? 2011-02-05T22:13:33 why not? 2011-02-05T22:13:49 Because there's only one b. The graph would have to be spokes all connected to b. 2011-02-05T22:14:01 *** Mathnerd314 has joined #aichallenge 2011-02-05T22:14:16 oh, i meant by "aab" that it was a<->a<->b, not a<->b<->a 2011-02-05T22:15:00 There are only edges between enemy ants. 2011-02-05T22:15:02 In this case. 2011-02-05T22:15:07 okay that's what i was asking 2011-02-05T22:15:15 in that case, sure, it's simple 2011-02-05T22:15:20 i would say fair 2011-02-05T22:15:47 you can benefit from a *little* more micro than with the 1:1 thing, but not as much as with my algorithm 2011-02-05T22:15:47 The only shitty part is that if you suck, you might occasionally lose two ants to the enemy's one. 2011-02-05T22:15:54 or three, even 2011-02-05T22:16:05 You would have to get pretty unlucky haha. 2011-02-05T22:16:08 aaa; -b- 2011-02-05T22:16:18 Ah true. 2011-02-05T22:16:21 or even more, but then you *really* suck 2011-02-05T22:16:44 What if we do a distance sort on all the pairs then only delete edges that tie for closest? 2011-02-05T22:16:53 That way aaa;-b- would be 1:1 2011-02-05T22:16:55 at maximum you could lose 8:1, but you'd have to do that intentionally, pretty much 2011-02-05T22:16:59 The wya people would expect it to be. 2011-02-05T22:17:17 I was thinking having an attack radius greater than 1 so you couldn't get 8:1 2011-02-05T22:17:30 ah 2011-02-05T22:18:14 so the trick with this would be to attack with only one ant at a time 2011-02-05T22:18:24 and try to get near as many enemy ants as possible with that one 2011-02-05T22:18:31 It discourages big rectangles, which I sort of like. 2011-02-05T22:18:46 it would discourage any large group 2011-02-05T22:18:56 spread out to minimize losses 2011-02-05T22:19:46 Because of the simultaneous moves, it would be hard to suicide bomb a large number of enemy ants using one ant. 2011-02-05T22:20:09 right, but if you have *many* ants that you can just send in one at a time... 2011-02-05T22:20:14 j3camero: No teleporting kamikaze ants? :'( 2011-02-05T22:20:22 but like i said, the defense against that is to not have large groups 2011-02-05T22:20:26 Those are the best kind of ants! 2011-02-05T22:21:24 the point is that with the one-at-a-time attack you stand to lose the least. it may be 1:1 or it may be 3:1, but in the end you at least aren't losing more than your opponent is that way 2011-02-05T22:21:57 so the best you can do is split up to guarantee that it's 1:1 only 2011-02-05T22:22:20 Yeah it definitely discourages the lame and uninteresting strategy of going around with a big rectangle of ants. Everybody knows that zombies cannot move in formation, unless they are nazi zombies. 2011-02-05T22:22:56 i think you're oversimplifying the nuances of formation tactics possible with the enemies of enemies rule 2011-02-05T22:23:53 zombies are probably a poor subject for an AI contest in the first place. they aren't smart ;) 2011-02-05T22:24:07 smart zombies? 2011-02-05T22:24:09 oh man.. 2011-02-05T22:24:14 we'd be screwed 2011-02-05T22:24:18 if we actually do get a zombie apocalipse.. 2011-02-05T22:24:19 The Borg. Centrally controlled, but individually stupid and controllable. 2011-02-05T22:24:22 dude they're android zombies 2011-02-05T22:24:34 reanimated android corpses? 2011-02-05T22:24:37 we need to make a kill switch for all bots, if zombies do come, they won't have AIs to guide them 2011-02-05T22:24:56 haha android. It's so googley 2011-02-05T22:25:33 When I was at Google Marissa Mayer gave me a tshirt after I spread a rumor that she ran the entire Gmail backend off her Android phone. 2011-02-05T22:26:22 j3camero: Ha ha, good one. Everyone knows it's an iPhone. :) 2011-02-05T22:26:28 ouch 2011-02-05T22:27:34 Pretty awesome shirt I still have it. It's a YouTube shirt that says "Player", but it's written like |>er, like the YouTube "play" button. 2011-02-05T22:30:27 What sort of web traffic could seriously be served off an iphone? 2011-02-05T22:30:38 Like two requests per second maybe? More? 2011-02-05T22:31:55 j3camero: Eh, enough for all the Android users out there anyhow. 2011-02-05T22:32:37 oof 2011-02-05T22:33:16 I wonder if there's some low-traffic aspect of hte contest we could serve off an iphone, just to prove that we doesn't afraid of anything. 2011-02-05T22:34:03 j3camero: The OCaml starter package? :P 2011-02-05T22:34:13 OHHHHH SNAP 2011-02-05T22:34:16 CBC ... needs to kick themselves... 2011-02-05T22:34:30 "Slain Ont. teen argued with alleged attackers" 2011-02-05T22:34:40 This will never work actually. As soon as we tell anybody what we're doing, they'll put the link on Reddit. 2011-02-05T22:34:56 j3camero: Let them come. 2011-02-05T22:35:08 (Just make sure that it is *not* on your cellular connection.) 2011-02-05T22:35:25 Unless you <3 paying your carrier. 2011-02-05T22:35:27 why would you use an iphone ... 2011-02-05T22:36:34 jbroman: you are a harsh person 2011-02-05T22:36:37 ;) 2011-02-05T22:37:46 jmcarthur: I try. 2011-02-05T22:43:27 *** Frontier has joined #aichallenge 2011-02-05T22:50:37 Meh I supposedly have unlimited free data. 2011-02-05T22:50:55 j3camero: For some definition of "unlimited". 2011-02-05T22:51:02 Indeed. 2011-02-05T22:51:12 Teh employer picks up the tab anywways. 2011-02-05T22:51:37 That would be an interesting conversation when they figure out that I racked up a $5000 phone bill. 2011-02-05T22:53:27 I just got an interesting craving for the Tron Legacy soundtrack. 2011-02-05T22:53:58 Oh man I love my internet. I just downloaded the whole thing in less than ten seconds. 2011-02-05T22:54:05 Oh baby. 2011-02-05T22:54:53 j3camero: what isp, also did you sign that petition? 2011-02-05T22:55:07 I didn't sign the petition yet. 2011-02-05T22:55:12 j3camero: http://openmedia.ca/meter 2011-02-05T22:55:30 I am on a special thing with Telus. We've got a direct fiber connection to 151 Front Street :-D 2011-02-05T22:56:36 amstan: I will have to read more about the issue before I sign it. Intuitively I'm like "boo slower internet". But I don't know if maybe there are good reasons for the new rules. 2011-02-05T22:56:43 I just have to find out more about it. 2011-02-05T22:56:58 j3camero: the fun part is that the law has already been passed out 2011-02-05T22:57:04 j3camero: because people did not take notice of it 2011-02-05T22:57:16 Was it not a CRTC decision? 2011-02-05T22:57:25 Or was it actual new legislation? 2011-02-05T22:57:40 the website should explain stuff 2011-02-05T22:57:52 gosh it feels weird to actually handle DVDs again 2011-02-05T22:57:59 i just swapped discs to finish Return of the King 2011-02-05T22:58:03 it feels so.... vintage :D 2011-02-05T22:58:21 Holy fuck this is a good record. 2011-02-05T22:58:24 pgpaskar_: i never touch the stuff myself actually 2011-02-05T22:58:28 pgpaskar_: all on the server 2011-02-05T22:58:40 Tron gives good headphone. 2011-02-05T23:00:18 j3camero: you're new battle proposal make for an easier algo 2011-02-05T23:00:38 although it does away with 1:1 ratio stuff 2011-02-05T23:02:16 and it opens up the door for micro management again 2011-02-05T23:03:59 j3camero: so, that means your back to 2 camps of bot levels 2011-02-05T23:08:32 McLeopold: it doesn't produce the huge imbalance that the other proposal produces. 2011-02-05T23:09:31 There's no real way to force a newb to give you better than 1:1 odds. You can blunder yourself into worse than 1:1 odds occasionally, but it won't happen very often. 2011-02-05T23:10:06 So we won't get a situation where novices don't bother player because they're getting wiped so hard. 2011-02-05T23:11:15 *** amriedle has quit IRC (Quit: leaving) 2011-02-05T23:12:49 *** Kingpin13 has quit IRC (Ping timeout: 255 seconds) 2011-02-05T23:17:55 k amstan I am a github n00b. How do I check this repo out? 2011-02-05T23:18:20 I am digging through all kinds of hit cheat sheets and none of them says "here's how to checkout a repo from github" 2011-02-05T23:18:26 j3camero: (I'm not amstan, but alas). Do you want to make a fork in github, or just clone it locally? 2011-02-05T23:18:44 I don't know. What do you think I want to do (serious question)? 2011-02-05T23:18:52 jbroman, j3camero: i would advise a clone locally, since this is the official repo 2011-02-05T23:18:53 I want to pull it down, make changes, then push them back. 2011-02-05T23:19:00 git clone https://bla 2011-02-05T23:19:01 j3camero: If that's all, clone directly. 2011-02-05T23:19:01 no need to fork 2011-02-05T23:19:10 Ah okay. 2011-02-05T23:19:12 Coolio. 2011-02-05T23:19:14 then... 2011-02-05T23:19:14 git clone, then copy the URL from the github page 2011-02-05T23:19:16 https://github.com/amstan/aichallenge 2011-02-05T23:19:29 j3camero: git clone git@github.com:amstan/aichallenge.git 2011-02-05T23:19:33 (on that page, you can choose an SSH, HTTP, or Git protocol line) 2011-02-05T23:19:35 j3camero: but.. 2011-02-05T23:20:14 git checkout -b simpleants remotes/origin/simpleants 2011-02-05T23:20:24 so... your new rule is any ant within range of an enemy ant dies? 2011-02-05T23:20:27 j3camero: goto https://github.com/account , ssh public keys, add one, follow the instructions from: http://help.github.com/linux-key-setup/ 2011-02-05T23:20:35 antimatroid: not quite 2011-02-05T23:20:45 resolve the closest distances first 2011-02-05T23:21:52 is that trivial? 2011-02-05T23:22:01 I guess take all pairs of conflicting ants, sort by distance, and eliminate starting with the closest. 2011-02-05T23:22:30 what do you want the max distance to be? 2 or 3? 2011-02-05T23:23:40 it sounds harder than jmcarthurs rule 2011-02-05T23:23:44 nah 2011-02-05T23:23:50 it's simple too 2011-02-05T23:24:00 i still like mine more, but this definitely beats that 1:1 thing on simplicity 2011-02-05T23:24:14 it's simpler than 1:1, but still not as simple 2011-02-05T23:24:37 what does sorting by closest do? 2011-02-05T23:24:43 i'm not sure i understand that part 2011-02-05T23:25:06 because if you grab all the pairs up front before sorting then you're just going to end up removing all pairs anyway 2011-02-05T23:25:11 Does anybody know what the point of SSH passphrases are? I only set up ssh keys so that I don't have to enter my password anymore. It seems like having a passphrase defeats the purpose. 2011-02-05T23:25:20 or do you mean don't remove pairs where one of the ants has been removed already? 2011-02-05T23:25:22 j3camero: Two-factor authentication 2011-02-05T23:25:35 jmcarthur: exactly. 2011-02-05T23:25:38 j3camero: it's so that if somebody gets your keyfile they still can't use it 2011-02-05T23:25:47 j3camero: You might use a passphrase so that someone with only a keylogger or only your files can't get in. 2011-02-05T23:25:51 So why not just not have keys? 2011-02-05T23:26:14 j3camero: With just keys, I steal your keys, I have access. 2011-02-05T23:26:22 j3camero: keys are stronger than passwords 2011-02-05T23:26:24 With keys with passphrases, I need both the keys and your memory. 2011-02-05T23:26:32 the keyfile is so that somebody can't just brute force your password. the password is so that somebody can't just use a keyfile from a lost thumb drive or something 2011-02-05T23:26:53 If you prefer the convenience of no password entry, use that. 2011-02-05T23:27:10 keyfile with no password is still better than password with no keyfile, unless on a public machine 2011-02-05T23:27:24 hmm... if one creates the graph, removes each ants 2011-02-05T23:27:32 I should point out that ssh-agent solves the "typing in passwords too often" problem. 2011-02-05T23:27:33 ffs, enter is not backspace 2011-02-05T23:27:34 keyfile with a passphrase on a thumb drive that you never lose is best 2011-02-05T23:27:46 yay for ssh-agent 2011-02-05T23:27:55 or use an SSH key with passphrase and an SSH agent so you only have to enter the passphrase once per login 2011-02-05T23:28:04 distance? 2 or 3? can I get a vote? 2011-02-05T23:28:04 right 2011-02-05T23:28:23 McLeopold: doesn't make a big difference to me in isolation of map size 2011-02-05T23:28:37 7 it is 2011-02-05T23:28:44 you offered 2 or 3 :P 2011-02-05T23:29:07 but still, even 7 could be sensible on a huge map 2011-02-05T23:29:23 even 1000 could (but the map would need to be impossibly huge of course) 2011-02-05T23:29:33 so would the ants 2011-02-05T23:30:13 the larger the combat range in proportion to the map size, the more emphasis on macro there is 2011-02-05T23:30:40 since you can't weave around with as much payoff 2011-02-05T23:30:55 actually, i mean the less emphasis on micro there is 2011-02-05T23:31:02 they aren't mutually exclusive things 2011-02-05T23:31:28 I think we should make the attack range and sight range configurable and fiddle with it and see what people are liking best. I vote definitely not 1. 2011-02-05T23:31:41 i don't want to say definitely not 1 2011-02-05T23:31:48 but i agree that we should fiddle with it 2011-02-05T23:32:33 *** Mathnerd314 has quit IRC (Remote host closed the connection) 2011-02-05T23:32:44 Oh and we should send it to the bots on startup. 2011-02-05T23:32:48 right 2011-02-05T23:32:56 We won't make that mistake again. 2011-02-05T23:33:15 we is be learning 2011-02-05T23:33:24 that is my turn 0 2011-02-05T23:33:28 don't forget it 2011-02-05T23:34:13 Okay, here's some gasonline to throw on the debate. Should we allow players to send freeform text messages? If yes, should you have to be able to see the recipient? 2011-02-05T23:34:51 what? 2011-02-05T23:35:03 j3camero: You mean between bots? I think that's unnecessarily complicating things. 2011-02-05T23:35:23 (Besides which it may induce cheating.) 2011-02-05T23:35:25 jbroman: it could change the nature of the game and make it into Survivor. 2011-02-05T23:35:34 j3camero: It could, but this game isn't Survivor. 2011-02-05T23:35:43 i agree, it would make it easier to cheat 2011-02-05T23:35:46 Yeah. Survivor would be a bad thing. 2011-02-05T23:35:46 j3camero: *Maybe* as a hypothetical future game. 2011-02-05T23:35:58 But that comes with gigantic asterisks. 2011-02-05T23:35:59 maybe if it was a team game 2011-02-05T23:36:02 Like fifty-foot asterisks. 2011-02-05T23:36:03 I think a neat candidate for a future contest would actually be survivor. 2011-02-05T23:36:17 Every five seconds, the bots cast a vote and vote one bot off the island. 2011-02-05T23:36:18 j3camero: i want survivor, but not survivor only 2011-02-05T23:36:22 as a FFA game, definitely not 2011-02-05T23:36:40 that would be neat 2011-02-05T23:36:45 I do think some sort of game involving alliances and deception would be neat. 2011-02-05T23:36:47 voting bots off like that 2011-02-05T23:36:49 yeah 2011-02-05T23:36:49 Wouldn't that be the ultimate AI challenge though? It's a game of pure negotiation. 2011-02-05T23:37:00 But that's an idea to store away for next time, in my humble opinion. 2011-02-05T23:37:07 you guys are getting distracted :P 2011-02-05T23:37:20 antimatroid: Ooooh, face recognition! Let's do face recognition! 2011-02-05T23:37:25 well, this is going to be on my mind now 2011-02-05T23:37:30 alliances and deception, that is 2011-02-05T23:37:32 Or maybe as a mini contest some time. It would only be fun for people who really know what they're doing. 2011-02-05T23:37:52 new programmers are amazingly resiliant, IMO 2011-02-05T23:38:04 i think we have a tendency to underestimate them 2011-02-05T23:38:17 i'm trying to work out how to remove ants with this "new" rule? 2011-02-05T23:38:36 What would be REALLY fun is to throw a human into the pool and see how they do. I bet machines would kick the dick off of human at Survivor. 2011-02-05T23:38:44 antimatroid: you just start with the closest fighting pair and eliminate them, rinse and repeat 2011-02-05T23:38:47 Completely unrelated: anyone know of a Python "memory buffer" file-like object? I want to write to it like a file, then reset to the beginning and read from it like a file? 2011-02-05T23:38:58 antimatroid: it's really simple, actually 2011-02-05T23:39:15 jbroman: a string 2011-02-05T23:39:20 antimatroid: actually i think it's *slightly* more involved 2011-02-05T23:39:25 I think StringIO does it, but I'm having trouble determining if it barfs on stuff that's invalid Unicode. 2011-02-05T23:39:35 jbroman: you could do open("/tmp/somefile") if you can't find anything 2011-02-05T23:39:40 antimatroid: i think it's such that you have to group each fighting pair by distance, and *then* start eliminating groups at a time 2011-02-05T23:39:41 jmcarthur: yeah, it's not as simple as i first thought i don't think 2011-02-05T23:39:52 antimatroid: but then don't remove pairs where one of the ants has been removed already 2011-02-05T23:40:05 antimatroid: well, i think the variant i just gave works fine and is still pretty simple 2011-02-05T23:40:17 ab.c just a and b die yeah? 2011-02-05T23:40:18 amstan: Yeah. I guess I'll fiddle with StringIO for a little more, because I think it can do it. If not, then I'll go back to temp files. 2011-02-05T23:40:27 i still prefer mine over it, but if i have to compromise between mine and the 1:1 version, this is a decent compromise 2011-02-05T23:40:30 No no it's so simple. while pairs_left(): eliminate_closest_pair(); 2011-02-05T23:40:42 j3camero: that's nondeterministic 2011-02-05T23:40:59 abc, for example 2011-02-05T23:41:06 Can't happen. 2011-02-05T23:41:12 can't? 2011-02-05T23:41:15 a.b.c then 2011-02-05T23:41:23 oh range. moot point. a.b.c indeed 2011-02-05T23:41:23 Oh I gotcha. 2011-02-05T23:41:25 Sorry. 2011-02-05T23:41:43 Yeah so in that case all three get nuked. 2011-02-05T23:41:45 j3camero: i think pair groups would still work though 2011-02-05T23:42:04 If there are many pairs at the same distance, they all get nuked at once. 2011-02-05T23:42:16 make graph, remove all nodes attached to shortest edge, remake graph repeat, that would work yes? but is horribly slow... 2011-02-05T23:42:33 shortest edges* 2011-02-05T23:42:58 remaking is unnecessary. just keep an accumulator of ants that have been removed already and don't remove pairs with those ants 2011-02-05T23:43:05 you can just do the grouping in one pass that way 2011-02-05T23:43:22 yeah that was what i was thinking before 2011-02-05T23:43:30 actually, there's an even better way 2011-02-05T23:44:01 Wait for McLeopold to finish the algo. 2011-02-05T23:44:02 It's like four lines of Python yeah? 2011-02-05T23:44:23 Maybe not. 2011-02-05T23:44:26 Maybe like 6. 2011-02-05T23:44:49 jmcarthur: for your idea, if the fighting region was the 2 square diamond around the player (manhatten metric with d=2) then would that mean no opponent ants can ever land in the same square? 2011-02-05T23:47:34 antimatroid: sounds right to me 2011-02-05T23:48:22 *** Frontier has quit IRC (Ping timeout: 240 seconds) 2011-02-05T23:51:27 Anybody interested in creating a complete functional simulation of a human brain? 2011-02-05T23:51:49 is the brain affected by alcohol? 2011-02-05T23:51:59 j3camero: Depends whose brain. Sarah Palin's, for instance, would be trivial. 2011-02-05T23:51:59 That would be so much easier haha. 2011-02-05T23:52:06 Two neurons. Three, tops. 2011-02-05T23:52:20 Mah-Ve-Rick 2011-02-05T23:52:44 We don't have all the blueprints yet, but at this rate it won't take long. 2011-02-05T23:53:10 mapM_ (mapM_ killPair . mapMaybeM bothUnkilled) . groupOn distance . sortOn distance . filter (liftA2 (&&) ((<=2) . distance) areOpponents) . join (liftA2 (,)) -- given killPair, bothUnkilled, distance, and areOpponents 2011-02-05T23:53:17 I think we already have all the tools and equipment that we need off the shelf. We just don't have all the plans. We do have a lot of plans though. 2011-02-05T23:53:44 jmcarthur: It's code like this that convinces me Haskell is the new Perl. 2011-02-05T23:53:48 :) 2011-02-05T23:53:53 (I kid, I kid.) 2011-02-05T23:53:54 Yeah what is that. 2011-02-05T23:53:56 Christ. 2011-02-05T23:54:04 simple, that's what :P 2011-02-05T23:55:06 That reminds me of how much I love Python. 2011-02-05T23:55:33 Haskell: all the readability of assembly, with all the performance of Lisp. 2011-02-05T23:55:46 I've heard Haskell performance is actually decent. 2011-02-05T23:55:48 16 lines of python 2011-02-05T23:55:51 C-like, even 2011-02-05T23:56:02 (Compiles down to native code that runs all fast-like.) 2011-02-05T23:56:30 without any real effort i can get haskell to run within around 10% of C code, most of the time 2011-02-05T23:56:42 err 2011-02-05T23:56:44 Also, monads are to Haskell as XML is to Java: if your code doesn't work, just add more. 2011-02-05T23:56:48 as in about 10% slower 2011-02-05T23:58:22 Is that for non-CPU-bound tasks? 2011-02-05T23:58:26 whoops, i did friendly kills 2011-02-05T23:58:46 it's easy code too, honestly. the far right just take every possible pair of ants. to the left of that we filter out the ants too far apart and ants of the same team. then we sort and group by distance, then loop over each group one at a time, checking each pair to make sure we should still delete them and then deleting the ones that are left 2011-02-05T23:58:56 j3camero: no, that's for cpu-bound tasks 2011-02-05T23:59:36 McLeopold: :P