--- Log opened Wed Sep 05 00:00:23 2012 20120905 00:09:18< CIA-59> Wesnoth-AI-Demos: Alarantalara master * rf18e6af / lua/recruit_filter_helper.lua : Use trolls to counter units with poison attacks - http://git.io/bHs1FQ 20120905 00:10:59< Alarantalara> At this point, Fred will recruit almost nothing but trolls and archers against undead (+ grunts if there are a significant number of adepts and walking corpses) 20120905 00:12:06< skyfaller> hooray! 20120905 00:12:24< skyfaller> goblins are also shockingly effective against DAs, so long as you have sufficient shields 20120905 00:12:29< Alarantalara> The exception is turn one, where he doesn't know what's coming 20120905 00:13:01-!- Crendgrim [~crend@77-22-112-72-dynip.superkabel.de] has quit [Quit: ...] 20120905 00:13:09< skyfaller> the main problem with goblins in most situations is that they take retaliation and they have so little HP that even retaliation from shamans/mages adds up. No retaliation from DAs ever 20120905 00:14:06< skyfaller> the main problem with goblins when fighting Undead is their pierce is useless against all other Undead, and zombies make goblins very sad 20120905 00:14:34< skyfaller> ... so I guess what I mean to say is that if there are lots of DAs maybe get a goblin or two as well 20120905 00:15:14< skyfaller> their 3 strikes can be very useful for finishing units, kind of like a wolf 20120905 00:15:23< Alarantalara> At this point, Fred would probably send it in the direction of skeletons, and certainly wouldn't keep it back until it can attack a DA, so I think I'll pass for now 20120905 00:15:30< skyfaller> ok :) 20120905 00:17:20< Alarantalara> I'm basing this off the continual death of the one goblin that is recruited right now 20120905 00:17:46< skyfaller> yeah, I think you are right 20120905 00:17:58< skyfaller> we'll have to write special behavior for the goblin in the future 20120905 00:18:24< Alarantalara> anyway, I'll be gone for a bit, but you may want to watch a game against undead right now. It doesn't try to poison skeletons with its one initial assassin either 20120905 00:18:36< skyfaller> goblins are either a cheap way to hold villages that are only threatened by scouts, or a fragile damage dealer that should be treated like a mage/DA 20120905 00:18:41< mattsc> Alarantalara: nice. Do you want Fred to know what's coming on Turn 2? 20120905 00:18:44< mattsc> Turn 1? 20120905 00:19:12< mattsc> Because he can certainly know that the opponents are undead, even if not the exact units. 20120905 00:19:33< skyfaller> hm. Maybe we should just let the AI cheat, since it cheats all the time anyway 20120905 00:19:35< Alarantalara> I suppose it's worth changing the hard-coded recruit against undead 20120905 00:19:49< Alarantalara> anyway, bye for now 20120905 00:19:52-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20120905 00:20:02< mattsc> Personally I think that the AI absolutely should cheat. 20120905 00:20:19< skyfaller> but on the other hand having the initial recruit will give Fred some variety in his units even if he only buys trolls and archers from that point forward 20120905 00:20:25< skyfaller> i.e. starting turn 2 20120905 00:20:29< mattsc> Well, short of giving itself more gold etc. :) 20120905 00:21:05< skyfaller> yeah, let's just write an UD-specific turn 1 recruit 20120905 00:21:20< skyfaller> and have it start countering the UD from the get-go 20120905 00:21:37< mattsc> skyfaller: Just remember that if you watch a game at the moment, the village behavior is partially broken. 20120905 00:21:56< skyfaller> I might just wait until the next release to avoid massive disappointment :P 20120905 00:22:21< mattsc> Or, you could watch it, keep that in mind, and tell me what _specifically_ should be fixed. ;) 20120905 00:22:26< skyfaller> I guess in our initial recruit we do want enough grunts to hold all of the front line villages, so I would still want to have 4 grunts to start with 20120905 00:23:05< skyfaller> 2 in the east, 1 in the center, and 1 in the west 20120905 00:23:56< skyfaller> I would skip the assassin 20120905 00:24:02< mattsc> Why not use the leader for the one in the center? Isn't that what you've been trying to teach me/Dred? 20120905 00:24:06< skyfaller> and get an archer and a troll to start with instead 20120905 00:24:14< mattsc> Dred? 20120905 00:24:27< skyfaller> You mean Fred :P 20120905 00:25:11< skyfaller> hm, good point 20120905 00:25:16< skyfaller> maybe not in the initial recruit then 20120905 00:25:25< skyfaller> but I want to have 4 grunts on the map at all times 20120905 00:25:47< mattsc> Ok. I'll let Alarantalara deal with recruiting and the early-turn strategy, since he's really done all the recent work on that. 20120905 00:26:03< skyfaller> I don't want the center village to be held by a weak unit if the leader is off recruiting or something 20120905 00:26:23< skyfaller> nothing holds a village like a grunt 20120905 00:26:39< skyfaller> maybe a troll would do OK on the center village, it is a hill village 20120905 00:27:22< skyfaller> but grunts are cheaper and deal more raw damage 20120905 00:27:41< mattsc> Yep. That's why Ron does so amazingly well. 20120905 00:27:53< mattsc> He can even defeat pros when they don't expect it. :D 20120905 00:28:00< skyfaller> lol 20120905 00:28:31< mattsc> Only once, unfortunately! 20120905 00:28:54< skyfaller> how did we get Alarantalara, anyway? I never heard his origin story. 20120905 00:29:35< skyfaller> I wish his name were shorter, I keep copying and pasting it rather than typing it out 20120905 00:29:39< mattsc> He suddenly sent me a message that he'd tried to use a pull request on github, so I added him as a collaborator. 20120905 00:30:25< skyfaller> ha, nice 20120905 00:30:34< mattsc> For some reason he decided by himself to help out. We just got lucky, I guess. :) 20120905 00:31:11< skyfaller> are the comments I'm making on our Github commits helpful? 20120905 00:31:17< mattsc> Anybody else out here who wants to join? :D 20120905 00:31:32< mattsc> Yes, absolutely. Thanks much for doing that! 20120905 00:31:39< skyfaller> I want to start improving the comments in our code, but I've been unsure about what from my comments belongs in the code 20120905 00:31:59< skyfaller> so I've just been leaving comments on the commits until I feel more certain about that :P 20120905 00:32:24< mattsc> I know most of that right now because I have just written the code, but I bet you if we try to figure out wth happened 6 months from now, they'll be even more useful. 20120905 00:33:20< mattsc> I'd say anything that explains what we are coding there and why can go in. 20120905 00:33:37< mattsc> Explantions of how a location filter works are probably not necessary inside the code. 20120905 00:34:10< mattsc> But if in doubt, just add it in. Better add too much than leaving something out that should be there. 20120905 00:34:39< skyfaller> so on https://github.com/mattsc/Wesnoth-AI-Demos/commit/6c14d4efe8fedcdfb7640c49a5969f116c9d24aa 20120905 00:34:53< skyfaller> maybe my first comment should go into the code, but not the other two comments? 20120905 00:38:19< mattsc> I think both of the first two could go in (although I would shorten them a bit) 20120905 00:39:38< mattsc> Well, I guess of the second comment only the first sentence explains what's going on. 20120905 00:40:04< mattsc> The rest could be added as TODO, but we're keeping track of those things elsewhere already 20120905 00:40:09< skyfaller> ha, OK 20120905 00:42:07< mattsc> You've read lots of my comments, so you know how I do it for the most part. But admittedly, those are written mostly for myself. I really didn't expect this to turn into such a lively collaboration. 20120905 00:42:24< skyfaller> yeah, I was surprised when we became 3 people 20120905 00:42:49< skyfaller> who knows how many man-hours Fred will consume? :D 20120905 00:43:10< mattsc> Too many :) 20120905 00:43:20< mattsc> Talking about that, I need to get on with other things again. 20120905 00:43:33< skyfaller> lol, ok, have fun! 20120905 00:43:42< mattsc> I don't know yet if I'll have time to sort out that village thing tonight. 20120905 00:44:01< skyfaller> Just wait until Fred is finished, think of all of the people-time he'll consume as humans try to defeat him ;-) 20120905 00:44:20< mattsc> That's the hope! 20120905 00:45:35< skyfaller> someday you and I should play some Wesnoth together ;-) 20120905 01:00:14< mattsc> someday 20120905 01:22:49< mattsc> skyfaller, do you know if I can attach a file to a github issue? 20120905 01:23:02< skyfaller> I'm almost certain you can 20120905 01:24:02< mattsc> I don't seem to be able to figure out how... 20120905 01:24:05< skyfaller> hm... 20120905 01:24:07< skyfaller> bizarre 20120905 01:24:15< skyfaller> maybe you can't? 20120905 01:24:42< mattsc> I finally got a really good example of a blatant non-village-grabbing mistake and I know what causes it. 20120905 01:24:57< skyfaller> I guess you have to upload the files elsewhere and link to it 20120905 01:25:06< mattsc> But there are a couple of ways to go about it, so I'd like to show it to you and Alarantalara and discuss ir 20120905 01:25:07< mattsc> it 20120905 01:25:16< skyfaller> so much for me being almost certain, looks like Github doesn't support attachments in issues 20120905 01:26:18< skyfaller> http://feeding.cloud.geek.nz/2012/06/attaching-files-to-github-issues.html has one plausible workaround... 20120905 01:27:14< skyfaller> or we could upload files to the Wesnoth forums and link to those :P :P :P 20120905 01:28:09< mattsc> Can you read and start this?: http://pastebin.com/37jbJfKx 20120905 01:28:38< skyfaller> why don't you post about it on our forum thread for now, with attachments, and formalize it as an issue later? 20120905 01:28:49< skyfaller> I can visit that, but what is this wall of text? 20120905 01:29:06< mattsc> It's a savefile; un-gzipped 20120905 01:29:30< skyfaller> yeah, let's do this in the forum thread until we think of something better 20120905 01:29:52< mattsc> You don't need to re-zip it, Wesnoth can read it as is. 20120905 01:31:00< mattsc> Anyway, I'm off now. Will do that later. There are a couple really obvious wrong moves in here (T5&6, on the right) and I know what causes them and 20120905 01:31:12< skyfaller> ok, I loaded the save 20120905 01:31:23< mattsc> how to fix it, in several different way already, just want to discuss which way of fixing it is better. 20120905 01:31:36< mattsc> Ok, look at Turn 5 and 6 then, on the right. 20120905 01:32:21< skyfaller> hilarious! 20120905 01:32:43< mattsc> That's what I was talking about earlier. 20120905 01:33:02< mattsc> It's theoretically an easy fix, but I want to make sure we're doing it in a smart way. 20120905 01:33:05< skyfaller> when were you talking about it? 20120905 01:33:06< skyfaller> oh 20120905 01:33:07< skyfaller> ok 20120905 01:33:20< mattsc> When I said earlier that villag grabbing is partially broken. 20120905 01:33:23< skyfaller> right 20120905 01:33:30< skyfaller> well, tell us all about our options :) 20120905 01:33:41< mattsc> Ok, but don't have time right now. 20120905 01:33:54< skyfaller> no prob, I'll wait with bated breath 20120905 01:34:26< mattsc> Later tonight or maybe tomorrow. Just don't post a new AI-Demos release on the forum in the meantime. ;) 20120905 01:35:14< skyfaller> don't worry, I won't release anything without you, but I can't be held accountable for Fred's actions ;-) 20120905 01:35:43< mattsc> :D Bye for now. 20120905 01:36:00-!- mattsc [~mattsc@fw.hia.nrc.ca] has quit [Quit: bye] 20120905 01:39:37< skyfaller> github is so amazing, but they fail to support really basic stuff sometimes. Like searching your codebase through the web interface. Or files in issues. 20120905 01:52:04-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20120905 02:01:36< CIA-59> Wesnoth-AI-Demos: Nelson Pavlosky master * rfcd8a66 / lua/grunt-rush-Freelands-S1_engine.lua : add comments on code for retreating injured units - http://git.io/CPBHgg 20120905 02:08:10< Alarantalara> skyfaller: I'm looking into possibly replacing that first assassin recruit, but it's also serving the purpose of a turn 2 village capture, which would be likely postponed unless we get a lucky quick unit 20120905 02:11:39< CIA-59> Wesnoth-AI-Demos: Alarantalara master * rbb98e26 / lua/grunt-rush-Freelands-S1_engine.lua : Move wolf rider to back of castle for initial recruit - http://git.io/GcklQQ 20120905 02:13:28< skyfaller> I dunno, having an assassin with the initial assault is not obviously incorrect. 20120905 02:13:45< skyfaller> what makes you want to get rid of it? 20120905 02:13:49< Alarantalara> I was thinking if we knew the opponent was undead 20120905 02:14:02< skyfaller> oh, that's easy, if it's undead replace it with a wolf 20120905 02:14:26< skyfaller> wolves rule against Undead if they level 20120905 02:14:48< skyfaller> as long as you remember to level them into Pillagers when fighting Undead 20120905 02:15:04< skyfaller> does Fred even think about what lvl2 unit to choose? 20120905 02:15:31< Alarantalara> I'm not even sure the AI has the option 20120905 02:15:43< skyfaller> no??? that's terrible :( :( :( 20120905 02:16:13< Alarantalara> Let's find out, since that's a very easy change (and we'd probably want pillagers regardless of opponent) 20120905 02:16:22< Alarantalara> assuming it's even possible 20120905 02:16:56< skyfaller> no, goblin knights are OP in some matchups, I'd choose them against drakes for instance 20120905 02:17:51< skyfaller> the flame attack of the pillager is totally useless against drakes 20120905 02:18:19< Alarantalara> I think I'm biased because of the slow attack 20120905 02:18:44< skyfaller> but if you get a pillager against drakes it, like, can't deal damage 20120905 02:20:29< skyfaller> also I don't trust Fred to use slow properly, but I guess we'll get there :P 20120905 02:21:45< Alarantalara> It looks like the choice is forced to be random unless it's a player and they can pick 20120905 02:25:17< Alarantalara> We can probably force a choice at recruit time, though 20120905 02:27:09< skyfaller> Alarantalara: what do you mean? 20120905 02:27:53< Alarantalara> Anonymissimus wrote an era that let's players force advancement to a unit of your choice even if the level up happens on an opponent's turn 20120905 02:28:11< Alarantalara> It should be possible for us to do the same thing at recruit time 20120905 02:28:15< skyfaller> ah, so steal code from that? 20120905 02:28:17< skyfaller> ok 20120905 02:29:49< Alarantalara> I'd rather make the choice when recruiting rather than just before leveling (since attacks occur all over the place, and it would require checking for the chance of leveling everywhere) 20120905 02:29:59< Alarantalara> But we would then have less information 20120905 02:30:09< skyfaller> in many matchups that won't matter 20120905 02:30:18< skyfaller> e.g. against UD we will always prefer Pillagers 20120905 02:35:38< skyfaller> similarly we will always prefer Troll Rocklobbers against UD 20120905 02:35:46< skyfaller> since they can't be easily DA'd 20120905 02:37:05< Alarantalara> I think I'll have to change the current "no assassin vs undead" rule. I just switched in the Wolf Rider and Fred recruits an assassin anyway because with a Dark Sorcerer, there are no undead on the map 20120905 02:37:10< Alarantalara> (yet) 20120905 02:37:21< skyfaller> hahahha 20120905 02:37:23< skyfaller> nice 20120905 02:37:48< skyfaller> well, one assassin isn't a total disaster, it can be used to take out bats, but let's see if we can get rid of it 20120905 02:38:57< Alarantalara> I was trying to go by recruited units to make it possible to use against custom factions, but it seems I'll have to just do leader detection and suffer having bad play in the extreme general case 20120905 02:38:58-!- mattsc [~mattsc@d50-92-210-201.bchsia.telus.net] has joined #wesnoth-umc-dev 20120905 02:41:46< skyfaller> you couldn't test for both? :/ 20120905 02:42:14< Alarantalara> I could, but the second case is redundant in the current context 20120905 02:43:28< CIA-59> Wesnoth-AI-Demos: mattsc master * r1fb130b / ais/ai_grunt-rush-Freelands-S1.cfg : Fix minor bug in grab_villages CA handling - http://git.io/kM-FZQ 20120905 02:48:17< mattsc> We can add events to the era that levels wolves into pillagers for sides played by the AI if the opponent is undead. 20120905 02:48:30< mattsc> I'd have to think about that, but I am pretty sure it's possible. 20120905 02:48:41< mattsc> The problem is that that would be something outside the AI. 20120905 02:49:11< Alarantalara> The AI can't modify unit stats itself? 20120905 02:49:38< Alarantalara> Since it would be easy enough to edit advances_to as a command right after calling ai.recruit 20120905 02:49:39< mattsc> I don't think so. I'm pretty sure that would cause OOS errors. 20120905 02:50:29< mattsc> Oh, doing it that way. Hmm... I don't know. 20120905 02:50:40< mattsc> This would be something to ask Crab about. 20120905 02:52:32< CIA-59> Wesnoth-AI-Demos: Alarantalara master * r77c3741 / lua/grunt-rush-Freelands-S1_engine.lua : Improve starting recruit/village capture versus undead - http://git.io/8TdA8g 20120905 02:52:39< mattsc> Just read the end of your discussion. It sounds very much to me like what anonymissimus does would be event driven. 20120905 02:53:12< mattsc> The AI is not supposed to change the gamestate other than through the ai table functions. 20120905 02:53:35< mattsc> I don't know whether changing the advances_to of a unit would count as a change of gamestate. 20120905 02:53:37< Alarantalara> His is (it's off a menu). I was hoping I could issue the commands without an event (or have the AI init create the event too) 20120905 02:54:23< mattsc> Events created from inside the AI are not part of the savegame, and therefore cause OOS errors if they change the gamestate. 20120905 02:54:40< mattsc> That's why you cannot see the "oh, come on" message in replays. 20120905 02:55:27< mattsc> Oh, and worse, they cause OOS errors in MP... 20120905 02:56:01< mattsc> We should ask Crab next time we see him if there's a safe way to do this. 20120905 02:56:33< Alarantalara> I hope there is. If not — we have a new feature request for 1.11: Allow AI to choose advancement 20120905 02:57:05< mattsc> Indeed 20120905 03:00:27< mattsc> So, very briefly, what's happening in that replay up there ^ 20120905 03:00:58< mattsc> We set up village_grabbing to be less important that attacking at night. In particular also than the rush on the right. 20120905 03:01:38< mattsc> The rush_right CA, however, consists of both the attacks and then placing units on strong terrain afterward (those that cannot reach enemies any more). 20120905 03:02:40< mattsc> So that's what's going on: it's night, the rush does its attacks, then advances units as far south as it deems safe (which is far south in this case, because most enemies are defeated in that area). In that move, it misses two crucial villages. 20120905 03:02:50-!- loonybot [~loonybot@wesnoth/bot/loonybot] has quit [Remote host closed the connection] 20120905 03:02:51< mattsc> Hope that makes sense so far... 20120905 03:03:39< mattsc> There are different options to deal with this: teach the rush how to grab villages, etc., but they are all work-arounds of sorts. 20120905 03:04:16< mattsc> What I'd suggest is splitting the rush up into 2 CAs, one for attacking, one for placing units; and set the priority of village grabbing in between those two at night. 20120905 03:04:52< mattsc> I think that will be more versatile anyway, and lend itself better to things like the line forming action skyfaller keeps asking about. :) 20120905 03:04:59< mattsc> Any comments> 20120905 03:05:00< mattsc> ? 20120905 03:12:44< mattsc> Personally, I think this needs to be done anyway, so while it's a bit more work right now, it should be well worth it. 20120905 03:13:21< mattsc> The thing that I don't know: this means moving a bunch of things from the exec() to the eval() function, and I don't know what that'll do for evaluation time. 20120905 03:13:43< mattsc> We'll just have to see, I guess. 20120905 03:14:14-!- un214 [~un214@adsl-108-204-248-68.dsl.scrm01.sbcglobal.net] has joined #wesnoth-umc-dev 20120905 03:32:29-!- un214 [~un214@adsl-108-204-248-68.dsl.scrm01.sbcglobal.net] has quit [Read error: Connection reset by peer] 20120905 03:34:30< skyfaller> mattsc: your proposal makes sense to me, I guess the only way we'll find out if it makes sense is if you do it and we test it 20120905 03:36:39< mattsc> That's what I figure too. 20120905 03:37:03< mattsc> I've actually slightly changed my mind on one thing: I'll keep this in one CA with two different return scores for the time being. 20120905 03:37:51< mattsc> That saves some evaluation time (avoids duplication), but it'll be trivial to split up later if that turns out to be advantageous. 20120905 03:38:02< skyfaller> I feel like once Fred is finished we'll have to spend time going back and optimizing things to make him faster 20120905 03:41:13< mattsc> That's just one of many things we'll have to go back to and do then ... 20120905 03:45:15< skyfaller> what other things will we have to do? 20120905 03:45:35< skyfaller> examine our lives to figure out where we went wrong? ;-) 20120905 03:46:37< mattsc> Nah, it's way too late for that! 20120905 03:46:41< mattsc> Well, for me at least. 20120905 03:46:54< skyfaller> :) 20120905 03:47:23< mattsc> There's a lot of code duplication that needs to be cleaned up, and generalization of CAs. 20120905 03:47:41< mattsc> Although, by your definition, I think that's all part of "finishing Fred". 20120905 03:48:03< mattsc> Anyway, I've told Crab before that I am not concerned about efficiency at the moment. 20120905 03:48:09< skyfaller> yeah, generalization would be required to finish Fred, although I suppose he could survive code duplication 20120905 03:48:26< mattsc> I don't want to spend time to optimize code that gets trashed later anyway. 20120905 03:48:27< skyfaller> yeah, my computer is pretty fast, when Fred stops to think it makes him feel more human anyway ;-) 20120905 03:48:32< mattsc> I'm too lazu for that. 20120905 03:48:49< mattsc> I figure that you MP types wouldn't mind too much. :) 20120905 03:49:13< mattsc> Anyways, let me get back to this. I'm mostly done with it already and want to see if it works. 20120905 03:49:18< skyfaller> enjoy! 20120905 03:51:14< skyfaller> oh, mattsc did you approve of my comments here? https://github.com/mattsc/Wesnoth-AI-Demos/commit/fcd8a66b4c21d58894d9af3ac286b66f5667b984 20120905 03:51:36< skyfaller> just wondering if I'm messing up your commenting style ;-) 20120905 03:51:46< mattsc> I have a commenting style?? 20120905 03:51:59< skyfaller> sure, you're mad stylish 20120905 03:52:18< skyfaller> everyone wishes they had as much style as you 20120905 03:52:18< mattsc> Yeah, looks very good, thanks! 20120905 03:52:32< mattsc> Your comments, I mean, not my style... 20120905 03:52:37< skyfaller> :D 20120905 03:53:10< skyfaller> ok, I'll try to do more of that then 20120905 03:53:51< skyfaller> but I'm hoping to train you guys to put in adequate comments before I can get there ;-) 20120905 03:54:48< mattsc> :P 20120905 03:55:31< skyfaller> I've noticed that Alarantalara is a bit more... terse with his code comments than you are. 20120905 03:56:04< mattsc> That's because he's a real coder, not a pretender like I 20120905 03:56:17< skyfaller> but I'm happy that he is putting information into the commit messages like I asked him to 20120905 03:56:40< skyfaller> I can use that to write comments to put in the code 20120905 03:57:02< mattsc> Sounds like a good plan to get into all of this. 20120905 03:57:22< mattsc> Well, my mods don't crash Wesnoth, that's good. 20120905 03:57:35< skyfaller> hahaha, always nice to clear that bar 20120905 03:57:46< mattsc> They also never seem to execute the rush... But Fred still won against the RCA AI with 150 gold (Rebels). Phbt! 20120905 03:59:39-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has quit [Ping timeout: 276 seconds] 20120905 03:59:53-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20120905 04:00:30< skyfaller> I always give the AI additional income as well when handicapping, otherwise you just have to survive the initial onslaught and then things are more even 20120905 04:06:38< skyfaller> I'm really amazed by your ability to write all of this code, it is taking me all day just to understand all of the changes you guys are making >.< 20120905 04:06:50< mattsc> Alright, Fred deals with those two situations (Turns 5 & 6 of that replay) much better now. 20120905 04:07:14< mattsc> The more you do it, the easier it gets... :) 20120905 04:07:24< skyfaller> show me the commit! :D 20120905 04:07:34< mattsc> So, the change I made seems to be working, but I really don't have time for testing any more today. 20120905 04:07:42< mattsc> It also is indeed a bit slow at times. 20120905 04:08:11< mattsc> If you want to test it, I'll commit, but as I said, it's largely untested... 20120905 04:08:15< skyfaller> bah, just throw more CPU cores at the problem ;-) 20120905 04:08:38< skyfaller> I mean, it doesn't crash and it seems to grab the villages now, right? 20120905 04:08:39< mattsc> I'm pretty sure it won't crash, but I cannot tell you how well it plays right now. 20120905 04:08:56< mattsc> It grabs the villages in those two instances. 20120905 04:09:03< skyfaller> we haven't released anything in a while anyway, we can float in limbo for a bit longer ;-) 20120905 04:09:04< mattsc> I don't know what I screwed up in the process. 20120905 04:09:12< mattsc> Haven't had time for enough testing for that. 20120905 04:09:52< skyfaller> by "a while" I am measuring in number of commits, not time :) 20120905 04:10:09< mattsc> :) 20120905 04:10:24< mattsc> Yeah, if this works, we should probably put out another release for comments. 20120905 04:11:43< skyfaller> ok 20120905 04:11:54< mattsc> Hmm, but Fred just lost two games to the RCA :( 20120905 04:11:59< skyfaller> noooooo 20120905 04:12:03< mattsc> In nogui mode, so I have no idea what actually happened. 20120905 04:12:04< skyfaller> why? 20120905 04:12:06< skyfaller> hahaha 20120905 04:12:40< skyfaller> watch one game before you sleep / commit, maybe it's something easy and obvious? 20120905 04:13:04< mattsc> yeah... 20120905 04:13:31< mattsc> It's not sleep. I have to go do something else tonight... 20120905 04:13:42< mattsc> Well, he won the next 2... 20120905 04:14:04< skyfaller> heh. maybe it was just bad luck. I assume this is with 150 gold? 20120905 04:14:14< mattsc> yes 20120905 04:16:18< mattsc> Hmm, just watched a game and saw nothing obvious 20120905 04:16:32< mattsc> In fact, I thought Fred did quite well (as far as village grabbing is concerned, at least) 20120905 04:17:05< skyfaller> OK, commit it then! I'll tell you what you've done wrong ;-) 20120905 04:17:11< mattsc> So I'll commit and you can see if you find something tonight (other than what we know about already), or otherwise I'll test tomorrow. 20120905 04:17:17< mattsc> Good. 20120905 04:18:25< CIA-59> Wesnoth-AI-Demos: mattsc master * rf012662 / lua/grunt-rush-Freelands-S1_engine.lua : Restructuring of rush_right CA - http://git.io/1h_2uQ 20120905 04:18:31< mattsc> There you are. 20120905 04:18:41< skyfaller> w00t 20120905 04:18:50< mattsc> I can stay logged in for another 20min, but cannot stay in front of this thing. 20120905 04:18:57< mattsc> Later ... 20120905 04:41:38-!- mattsc [~mattsc@d50-92-210-201.bchsia.telus.net] has quit [Quit: bye] 20120905 05:10:26< CIA-59> Wesnoth-AI-Demos: Alarantalara master * ra086213 / lua/grunt-rush-Freelands-S1_engine.lua : Refer to race through __cfg - http://git.io/HKAqsg 20120905 05:15:54< CIA-59> Wesnoth-AI-Demos: Alarantalara master * r16f299b / lua/grunt-rush-Freelands-S1_engine.lua : Clarify some of the recruitment actions - http://git.io/zHod_Q 20120905 05:47:22-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20120905 05:56:41-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has quit [] 20120905 06:06:02< CIA-59> wesnoth-umc-dev: sigurdfdragon * r15890 /trunk/Custom_Campaign/ (3 files in 2 dirs): CC: Replace starting map. 20120905 06:28:02-!- ancestral [~ancestral@75-168-42-97.mpls.qwest.net] has quit [Quit: i go sleeps kthxbai] 20120905 06:43:15-!- mattsc [~mattsc@d50-92-210-201.bchsia.telus.net] has joined #wesnoth-umc-dev 20120905 07:03:43< CIA-59> wesnoth-umc-dev: sigurdfdragon * r15891 /trunk/Custom_Campaign/ (eras/era.cfg factions/): CC: Update to use external AoH Khalifate if present. 20120905 07:10:53< CIA-59> wesnoth-umc-dev: sigurdfdragon * r15892 /trunk/Random_Campaign/ (_main.cfg eras/ factions/ utils_sp/_sides.cfg): RC: Update to use external Age of Heroes Khalifate faction. 20120905 07:13:56-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-umc-dev 20120905 07:33:22< CIA-59> wesnoth-umc-dev: sigurdfdragon * r15893 /trunk/Random_Campaign/utils_sp/_sides.cfg: RC: Fix enemy gold bug made in commit #15805. 20120905 07:43:22-!- mattsc [~mattsc@d50-92-210-201.bchsia.telus.net] has quit [Quit: bye] 20120905 07:52:06-!- lobby [~wesnoth@wesnoth/bot/lobby] has joined #wesnoth-umc-dev 20120905 07:52:06-!- Topic for #wesnoth-umc-dev: Wesnoth-UMC-Dev Project discussion and support channel | http://wesnoth-umc-dev.ai0867.net | Staff: AI0867, Espreon | Blog: http://wesnoth-umc-dev.ai0867.net/blog/ | IRC logs: http://irclogs.wesnoth.org, http://irclogs.ai0867.net 20120905 07:52:06-!- Topic set by shadowm [] [Mon Aug 27 11:27:23 2012] 20120905 07:52:06[Users #wesnoth-umc-dev] 20120905 07:52:06[@ChanServ ] [ AI0867] [ Espreon] [ iwaim_ ] [ loonycyborg] [ skyfaller] 20120905 07:52:06[+shikadibot] [ CIA-59] [ esr ] [ janebot] [ melinath ] [ vultraz ] 20120905 07:52:06[+wesbot ] [ csarmi] [ fendrin] [ lobby ] [ shadowm ] [ zookeeper] 20120905 07:52:06-!- Irssi: #wesnoth-umc-dev: Total of 18 nicks [1 ops, 0 halfops, 2 voices, 15 normal] 20120905 07:52:06-!- Home page for #wesnoth-umc-dev: http://wesnoth-umc-dev.ai0867.net 20120905 07:52:21-!- Channel #wesnoth-umc-dev created Mon Mar 31 16:51:24 2008 20120905 07:53:26-!- Irssi: Join to #wesnoth-umc-dev was synced in 87 secs 20120905 08:54:25< CIA-59> wesnoth-umc-dev: sigurdfdragon * r15894 /trunk/Random_Campaign/_main.cfg: RC: Fix bug in commit #15892. 20120905 09:02:22-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20120905 10:12:08-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120905 11:02:20< CIA-59> wesnoth-umc-dev: shikadilord * r15895 /trunk/After_the_Storm/lua/common.lua: 20120905 11:02:20< CIA-59> wesnoth-umc-dev: AtS: implement [invert_direction] WML action 20120905 11:02:20< CIA-59> wesnoth-umc-dev: This should allow for simplifying decent amounts of existing and future 20120905 11:02:20< CIA-59> wesnoth-umc-dev: cutscene code. 20120905 13:27:20-!- loonybot [~loonybot@46.138.72.79] has joined #wesnoth-umc-dev 20120905 13:27:20-!- loonybot [~loonybot@46.138.72.79] has quit [Changing host] 20120905 13:27:20-!- loonybot [~loonybot@wesnoth/bot/loonybot] has joined #wesnoth-umc-dev 20120905 13:27:23-!- mode/#wesnoth-umc-dev [+v loonybot] by ChanServ 20120905 14:40:02-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20120905 14:56:24< CIA-59> Wesnoth-AI-Demos: Alarantalara master * rc83fa98 / lua/grunt-rush-Freelands-S1_engine.lua : Do not poison enemy if enemy could level up on its turn after being attacked - http://git.io/TPQ2og 20120905 15:14:17-!- mattsc [~mattsc@216.123.55.165] has joined #wesnoth-umc-dev 20120905 15:16:52< mattsc> Hi, Alarantalara 20120905 15:16:59< Alarantalara> hello 20120905 15:17:27< mattsc> Looking at your last commit, do you want to take on that whole no-taking-XP-into-account in attacks issue? 20120905 15:18:36< Alarantalara> If you don't, I'll proobably get around to it eventually 20120905 15:19:26< mattsc> Yeah, me too. So let's just see who gets to it first. I think it's close to highest priority by now. 20120905 15:19:52< mattsc> I do quite a bit of the in 'Prune Cart', so I have a general idea how to deal with it. 20120905 15:20:02< mattsc> * of that 20120905 15:20:28< mattsc> Or at least how I would deal with it. 20120905 15:21:30< mattsc> skyfaller: around? I'm curious to know how badly I screwed up the village grabbing thing. 20120905 15:21:45< Alarantalara> I'd probably make it a separate action for leveling our units in order to reduce the number of times it is checked. 20120905 15:22:11< Alarantalara> But that may not be the right way to do it 20120905 15:22:45< vultraz> is it possible to make a patrol AI? Like the ai moves units along a certain path in a repetitive pattern? 20120905 15:22:57< mattsc> I think I have a function called level_up_attacks or something in at least two of the AI-Demos scenarios 20120905 15:23:30< mattsc> vultraz: absolutely. Check out scenario 'Patrols' in AI Demos. :) 20120905 15:24:47< mattsc> Although, I would not recommend using it the way how the Konrad Impersonator does it. That was one of my very first AIs and it's really not very good. 20120905 15:25:30 * vultraz has basically no idea how ai or ai code works 20120905 15:25:38< mattsc> What Jabb does is much better (that's from A Rough Life from Elvish_Hunter, in fact) 20120905 15:26:36< mattsc> vultraz: Well, check out the scenario and test whether you like the behavior. And if you'd prefer something else, tell me. 20120905 15:26:57< vultraz> k 20120905 15:27:09< mattsc> And if you want to get a general feeling for how to mess with the AI: http://wiki.wesnoth.org/Practical_Guide_to_Modifying_AI_Behavior 20120905 15:33:29 * vultraz is getting a headache looking at the Lua Ai stuff 20120905 15:34:16< mattsc> :) It'll be somewhat easier with 1.11 20120905 15:36:23< vultraz> lol wut is Goblin Handler Jabb doing... 20120905 15:36:28< vultraz> he's off his path 20120905 15:36:49< mattsc> Did you put the thief in the way? 20120905 15:37:18< vultraz> yup, he's between two of his (Jabb's) waypoints 20120905 15:38:29< mattsc> So Jabb's trying to get around him then. 20120905 15:38:46< vultraz> yup 20120905 15:38:56< vultraz> but shouldn't he attack 20120905 15:39:45< mattsc> Depends on what the scenario designer wants. It's easy to change the code to make him do that. 20120905 15:40:09< mattsc> So this is intentional in this case. Whether it makes sense or not is a different question. :P 20120905 15:48:40< vultraz> and this orc isn't retreating... 20120905 15:49:05< mattsc> hmm? 20120905 15:50:40< vultraz> he didn't reach the edge until turn 10 20120905 15:51:23< vultraz> apparently he's easily distracted.. 20120905 15:51:32< mattsc> He isn't supposed to start retreating until Turn 5, I think (or when badly wounded) 20120905 15:51:48< mattsc> I think - I did all this quite some time ago. 20120905 15:51:58< vultraz> ah 20120905 15:52:19< mattsc> It should say so in the initial messages. If it doesn't, let me know and I'll add it. 20120905 15:53:36< mattsc> He does say so. :) 20120905 15:54:57 * vultraz goes to try Animals 20120905 15:58:56< CIA-59> Wesnoth-AI-Demos: mattsc master * raad8a8e / (2 files in 2 dirs): Reshuffled CA priorities - http://git.io/g_vd5w 20120905 16:01:05-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20120905 16:01:57< vultraz> the sheep/sheep dogs are impressive 20120905 16:06:11< mattsc> Thanks. I like those too 20120905 16:08:15< vultraz> It's sorta interesting that everyone here has a different code category they're good at 20120905 16:09:00< vultraz> you're good with ai, I'm good with lua gui, Espreon is good at translation stuff 20120905 16:10:59< CIA-59> Wesnoth-AI-Demos: mattsc master * r83818b6 / lua/grunt-rush-Freelands-S1_engine.lua : Small change to poisoner evaluation - http://git.io/841XgQ 20120905 16:11:21< mattsc> I guess you become better at things that you do a lot... 20120905 16:14:54-!- mattsc [~mattsc@216.123.55.165] has quit [Quit: I'm asleep] 20120905 16:15:51< CIA-59> wesnoth-umc-dev: vultraz * r15896 /trunk/NX-RPG/lua/gui/inventory.lua: NX: removed extra border around buttons 20120905 16:33:31-!- mattsc [~mattsc@fw.hia.nrc.ca] has joined #wesnoth-umc-dev 20120905 17:34:52-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20120905 17:53:12< CIA-59> Wesnoth-AI-Demos: mattsc master * r741b142 / lua/grunt-rush-Freelands-S1_engine.lua : Some more reshuffling of priorities - http://git.io/FjSE-g 20120905 18:14:17< CIA-59> Wesnoth-AI-Demos: mattsc master * rb20dea7 / lua/grunt-rush-Freelands-S1_engine.lua : Another change to pillaging threshold - http://git.io/eJXRHA 20120905 18:30:28< CIA-59> Wesnoth-AI-Demos: mattsc master * r669ce93 / lua/grunt-rush-Freelands-S1_engine.lua : Two different low score for grab villages - http://git.io/GiYdtg 20120905 18:41:40< CIA-59> Wesnoth-AI-Demos: mattsc master * r8bd83bc / lua/grunt-rush-Freelands-S1_engine.lua : Fixed a bug in gobo move - http://git.io/smY9Dg 20120905 18:42:35< mattsc> skyfaller, Alarantalara: ugh! I've been trying to get the different CAs balanced right and I am just not getting anywhere. 20120905 18:43:59< mattsc> This whole split into rush_right, protect_center and hold_left is pretty messed up. I always knew that I'd have to combine those someday and I think that point has come. I just don't think I can get where we want to go with Fred without doing that. 20120905 18:44:27< mattsc> That's a major refactoring of the code though, so I need to do some thinking. 20120905 18:45:01< vultraz> refactoring sux 20120905 18:45:25< vultraz> but it always looks better in the end, then you wonder why you never did it that way in the first place 20120905 18:45:38< vultraz> :P 20120905 18:46:23< mattsc> Actually, I do know why I did it this way in the first place. :) I just didn't know quite how complex this whole thing would become. 20120905 18:59:53< skyfaller> mattsc: yeah, I think combining is good anyway because I think we should rush on the left and center some small percentage of the time 20120905 19:00:12< skyfaller> in which case you would end up holding/protecting the other fronts 20120905 19:00:32< mattsc> That's a clear advantage as well, yes. 20120905 19:00:37< skyfaller> it's better to generalize. That'll make it easier on different maps in the future, too 20120905 19:00:48< mattsc> ... and that. :) 20120905 19:01:11< mattsc> It's also much easier to implement changes like taking XP into account across the board etc. 20120905 19:01:19< skyfaller> sounds logical 20120905 19:01:41< skyfaller> so let's refactor! What's the game plan? 20120905 19:01:50< skyfaller> how do you refactor? 20120905 19:03:02< mattsc> Well, we need a common attack_and/or_hold in a certain area CA. (Actually that might be two CAs, not sure yet) 20120905 19:03:29< mattsc> So I need to figure out what the elements of that CA are, and what parameters it needs to be given to apply to a certain area. 20120905 19:04:12< mattsc> Once I have that, I can write that CA and start with some sort of hard-coded criterion when it is applied to the left/center/right 20120905 19:04:34< skyfaller> well, we want to heavily prefer attacking the right b/c that front village is close to Fred's keep and far from the enemy keep 20120905 19:04:35< mattsc> At that point, we should all discuss how to adapt those criteria dynamically. 20120905 19:04:58< mattsc> Right, that will be part of it. 20120905 19:05:00< skyfaller> the left village is far from the enemy keep but also far from Fred's keep, so it's a poor target. 20120905 19:05:24< skyfaller> the center village is close to both keeps, and the enemy leader can pop in and out of that village in a single turn, too hard to attack 20120905 19:05:57< skyfaller> but we don't want to be completely predictable, so every now and then you rush those suboptimal villages just to keep the enemy on his toes 20120905 19:06:03< mattsc> So, I think I should just go ahead and do the refactoring with (roughly) the current behavior. 20120905 19:06:17< skyfaller> what I'd really like to see is for Fred to calculate the best target himself 20120905 19:06:51< mattsc> Yes, that what I mean with adapting the criteria dynamically. 20120905 19:06:53< skyfaller> and almost always go for that target, with some randomness thrown in to make him occasionally attack some other target, with gusto 20120905 19:07:05< mattsc> But we need to have the mechanism to allow that in place first. 20120905 19:07:07< skyfaller> ok 20120905 19:07:16< skyfaller> sorry, I was just trying to get my thoughts out 20120905 19:07:48< mattsc> No worries. In fact, it's great to see that we're thinking about it very similarly. 20120905 19:08:30< skyfaller> here's a tricky thing: 20120905 19:09:07< skyfaller> if you watch that one game where Ron beat me, he started with an assault on the center that I didn't expect, but followed up with attacks on BOTH the right AND the left 20120905 19:09:28< skyfaller> rather than just pouring all of his forces into a bottleneck 20120905 19:09:56< skyfaller> I have no idea how the AI decided to do that, but it was exactly the right thing to do 20120905 19:11:09< mattsc> I think with how I am imagining the refactoring to work, that will be relatively "easy" to realize. As you said, the decision making is the difficulty. 20120905 19:11:35< skyfaller> it is usually best to attack on a single front, especially as orcs who need to use many units in order to get real damage, but sometimes attacking on multiple fronts is optimal 20120905 19:12:20< skyfaller> a great time to attack on multiple fronts is if you're facing a highly dangerous leader like an elvish marksman. He'll drive off one of your attacks, but he can't be in two places at once so he'll have to choose 20120905 19:12:59< mattsc> Well, I'll let you think about that. I have my hands full with the coding aspect of it for the time being. 20120905 19:13:03< skyfaller> so I'm just pointing out that it's bad to assume that we'll attack on one front and hold/protect the others 20120905 19:13:16< skyfaller> we should build in the possibility of multiple attacks 20120905 19:13:20< mattsc> Right, that's absolutely not what I mean. 20120905 19:13:50< mattsc> Very simply speaking, I am imagining this: 20120905 19:14:25< mattsc> Hmmm... 20120905 19:14:41< mattsc> I guess there are three stages: 20120905 19:14:53< mattsc> 1. Evaluate which part of the map is most urgent to deal with 20120905 19:15:14< mattsc> 2. Evaluate what to do (attack, retreat, form line, ...) in that part of the map 20120905 19:15:22< mattsc> 3. Execute that action 20120905 19:15:46< skyfaller> ok, cool 20120905 19:15:53< mattsc> This is done for _one_ attack combination, or retreat, or defensive line formation 20120905 19:16:15< skyfaller> wait, what? 20120905 19:16:15< mattsc> Then we go back to 1. and see if another part of the map is now more urgent in need of dealing with 20120905 19:16:58< skyfaller> you mean we are not done dealing with that part of the map? we might come back to it? 20120905 19:17:26< mattsc> Could be either one or the other. That's for 1. to decide. 20120905 19:17:47< skyfaller> I'm a little confused 20120905 19:17:57< mattsc> That's ok. Me too. 20120905 19:18:06< skyfaller> if we have e.g. attacked on the right, how could we come back and do something else later? 20120905 19:18:13< skyfaller> on the same front? 20120905 19:19:06< mattsc> If you cannot, then you don't. 20120905 19:19:23< skyfaller> ... that's very tautological 20120905 19:19:39< mattsc> But you might only want to take care of the biggest threat on the right, then deal with the biggest threat on the left, then come back to the right. 20120905 19:19:47< mattsc> No, it's very modular. 20120905 19:19:54< skyfaller> tell me about a situation where we have executed an action on a front, and then come back and do another action on that same front later 20120905 19:20:48< mattsc> The thing is, it does not matter what that situation is. 20120905 19:21:01< mattsc> The strength of this method is that I _can_ do it. 20120905 19:21:23< skyfaller> I guess what I'm trying to understand is the nature of your "actions" 20120905 19:21:38< mattsc> If I decide that's not necessary, fine. But if we come up with a situation where we want to do it, we can also do that. 20120905 19:22:22< mattsc> An action could be an attack combo on a single enemy (by several AI units, but only on one enemy); or the taking of the village on the right; or the formation of a line. 20120905 19:22:31< skyfaller> I suppose one example would be if we've assaulted the front village on the right, and there were a bunch of units that couldn't reach any enemy units to attack. The next action could be them forming a defensive line 20120905 19:22:44< mattsc> For example. 20120905 19:23:06< skyfaller> OK, I guess we're on the same page now 20120905 19:23:11< skyfaller> what next? 20120905 19:23:29< mattsc> Or, we took that village, but there's a threatening enemy in the center. So we go for that enemy next, but get lucky and kill him right away, so we can use the rest of the units on the right again. 20120905 19:23:53< skyfaller> hm, interesting, ok 20120905 19:24:33< mattsc> I'm not saying that we'll actually end up doing it like that, but why not build in the capability, rather than having to do another refactoring later... 20120905 19:24:39< skyfaller> sure 20120905 19:24:49< skyfaller> but what you just described sounds really promising 20120905 19:25:52< mattsc> What next? I need to do some thinking and some coding. None of that will really change what you and Alaralalala are doing for the time being. 20120905 19:25:59< skyfaller> if you have a bunch of units that haven't committed to a front yet, it's great to resolve which front is highest priority before committing them 20120905 19:26:17< skyfaller> it would be sad to send a bunch of units to the center when you only needed one unit for the kill due to luck 20120905 19:26:28< mattsc> exactly 20120905 19:27:06< mattsc> So you keep doing what you're doing, and when I have something, I'm sure I'll have questions for you. 20120905 19:27:12< skyfaller> ok 20120905 19:27:53< mattsc> I just wanted to make sure first that, in general terms, this sounds good. And ask whether there are more urgent fires to put out. 20120905 19:28:18< skyfaller> nah, it sounds like this is what we need to move forward, sounds like it's getting hard to make fixes 20120905 19:28:26< mattsc> But I am getting the distinct feeling that I won't be able to get the relative priorities of everything straight the way things are set up at the moment. 20120905 19:28:41< mattsc> See, we're agreeing again. :) 20120905 19:33:59< skyfaller> is there a list of all of the AI demos in our add-on? I'm updating our README 20120905 19:35:04< skyfaller> mattsc: obviously I know about Fred and Ron, but I'm not familiar with all of the other stuff included in the add-on 20120905 19:35:29< mattsc> Not per se. You could look into the scenario/ directory, or start the Switchback scenario and look at all the signposts. 20120905 19:35:57< mattsc> The Switchboard scenario is really meant to be "the list" 20120905 19:36:19< mattsc> s/back/board ^^ 20120905 19:39:25< skyfaller> hm, have you noticed that when you go into "campaigns" our description is too wide for the window, so you have to scroll left to right? none of the other campaigns have that formatting problem 20120905 19:39:49< skyfaller> it's because our text is tabbed over to the right for some reason 20120905 19:41:55< mattsc> Yes, I've seen that. Let me try something really quickly... 20120905 19:44:23< skyfaller> hm, I've found some typos I'll go fix 20120905 19:46:13< mattsc> please 20120905 19:47:22< CIA-59> Wesnoth-AI-Demos: Nelson Pavlosky master * r31da77f / scenarios/healer_support.cfg : fixed typo, Mirco -> Micro - http://git.io/anGVug 20120905 19:47:54< skyfaller> so no other micro-AIs are playable yet besides healers? 20120905 19:50:49< CIA-59> Wesnoth-AI-Demos: mattsc master * r0e2fccb / _main.cfg : Scale background image in campaign menu - http://git.io/Xpsz3A 20120905 19:51:04< mattsc> skyfaller: ^ that should fix the scrollbar issue 20120905 19:51:09< skyfaller> great :) 20120905 19:51:27< mattsc> No, no other micro AIs exist. And healer_support doesn't work very well yet. 20120905 19:51:56< mattsc> It might not be part of the next release yet, as we'll just get ripped apart for it if we publish it like that. :) 20120905 19:53:00< CIA-59> Wesnoth-AI-Demos: Nelson Pavlosky master * r69bebc2 / README.md : Described the contents of our add-on - http://git.io/C7vntQ 20120905 19:55:11< mattsc> Cool! 20120905 19:55:41< skyfaller> mattsc: Have we ever discussed how the add-on is licensed? I assume GPL v2, same license as Wesnoth itself. 20120905 19:56:34< skyfaller> are all add-ons automatically GPLv2? 20120905 19:56:59< skyfaller> http://wiki.wesnoth.org/Wesnoth:Copyrights says "By contributing code or content to the project, you agree for it to be distributed under GPL or whatever other open-source license the project maintainers choose in the future." 20120905 19:57:15< mattsc> yes. everything Wesnoth has to be GPL. When you submit an add-on you have to click a button that you agree to that. 20120905 19:57:19< skyfaller> but I don't know if putting add-ons on the server counts as "contributing code or content to the project" 20120905 19:57:21< skyfaller> ah, ok 20120905 19:57:34< skyfaller> that's what I expected but I wasn't sure 20120905 19:57:52< skyfaller> so there's no need to put the GPL on our code / in the repository then? 20120905 19:58:34< mattsc> No, it's implicit 20120905 19:59:00< mattsc> Oh, hmm, good question. 20120905 19:59:22< CIA-59> wesnoth-umc-dev: dringuet * r15897 /trunk/World_Conquest/ (19 files in 3 dirs): Simple update before major changes 20120905 19:59:30< mattsc> If you have it in another repository, does it have to say it there as well? 20120905 19:59:47< skyfaller> I mean, it sounds like the copy of the code that goes on the Wesnoth server is GPL'd when you click that button 20120905 20:00:00< mattsc> yes, it is. 20120905 20:00:02< skyfaller> but that doesn't automatically GPL the copy we have sitting on Github 20120905 20:00:30< mattsc> Exactly. Does it have to be, since it's Wesnoth code? I have no idea. 20120905 20:00:49< skyfaller> in what sense is it Wesnoth's code? didn't we (mostly you) write it? 20120905 20:01:05< skyfaller> since we're probably not going to sue anyone for violating our copyrights, it probably doesn't matter, but I think maybe we should explicitly license the code in our repository 20120905 20:02:20< mattsc> Well, I am using images (they are actually in the local directory of AI-Demos) made by others and published for Wesnoth under GPL. 20120905 20:02:41< mattsc> As an example... 20120905 20:03:20< mattsc> So maybe the code on the repository needs to say that 20120905 20:03:24< skyfaller> ah. Well, there's a limit to how "viral" the GPL is, I don't know if simply using some images would GPL the rest of the surrounding code, I would expect not 20120905 20:03:49< skyfaller> I think it's simplest to just drop the GPL into the repository so it is very clear that everything there is GPL 20120905 20:04:04< mattsc> Probably not, but it needs to say this for the images at least. 20120905 20:04:12< mattsc> Yeah, sounds good. Just add it to the README? 20120905 20:04:32< skyfaller> well, traditionally it's a separate file named LICENSE but I'll also mention it in the README 20120905 20:06:21< mattsc> Yeah, when you download an add-on, there's a file COPYING.txt with it... 20120905 20:06:30< mattsc> (just checked) 20120905 20:11:48< skyfaller> OK, I'll put it in the repository too then 20120905 20:14:16< mattsc> Maybe rename it though. I don't know if it will conflict with uploading the add-on otherwise. 20120905 20:14:28< skyfaller> hmmmm 20120905 20:14:39< skyfaller> we could just try it and see if Wesnoth EXPLODES :D 20120905 20:14:49< mattsc> sure 20120905 20:14:54< mattsc> :) 20120905 20:15:01< skyfaller> it would be a bit silly for there to be 2 copies of the GPL when people download it anyway 20120905 20:20:14< CIA-59> Wesnoth-AI-Demos: Nelson Pavlosky master * rb85ad76 / COPYING.txt : Adding GPL to our repository - http://git.io/DNiTUQ 20120905 20:23:03< CIA-59> Wesnoth-AI-Demos: Nelson Pavlosky master * r8fef68d / README.md : Mention that we're GPLv2 - http://git.io/ss0WeA 20120905 20:24:23< skyfaller> I used the exact same file that you get when you download the add-on 20120905 20:26:33< mattsc> That sounds good. We'll see if Wesnoth complains the next time I try to update the add-on 20120905 20:26:42< skyfaller> ok 20120905 20:33:04-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120905 21:08:15< skyfaller> hey guys, have you seen this article on AI? It's a little interesting, and may be a good jumping off point for discussions about design decisions for our AI 20120905 21:08:16< skyfaller> http://www.altdevblogaday.com/2011/07/11/students-game-ai-vs-traditional-ai/ 20120905 21:12:21< skyfaller> mainly it suggests we should discuss when and how Fred should "cheat", in order to make the game as much fun as possible 20120905 21:13:14< skyfaller> it seems so far we have decided to have Fred cheat in his own favor as much as possible, with the end goal of presenting a challenge even to top human players 20120905 21:20:36< skyfaller> I guess we're not worried about "fun" right now, our goal is just to win :) 20120905 21:23:28-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20120905 21:27:24< mattsc> skyfaller: thanks for the link. I'll check it out later. 20120905 21:28:36< mattsc> In general, I think Fred should cheat as much as possible (as long as cheating means gathering information that the human opponent might not have etc.) 20120905 21:29:23< skyfaller> yeah, I guess we don't really expect to reach a point where Fred always wins due to cheating 20120905 21:29:45< mattsc> I doubt it 20120905 21:30:29< skyfaller> you can control how much of a challenge an AI is by giving it more or less resources anyway 20120905 21:33:45< skyfaller> our goal is to make Fred as challenging as possible with equal resources, to play a tactically and strategically good game to train humans to play better 20120905 21:34:10< mattsc> I'd agree with that. 20120905 21:34:12< skyfaller> it's not interesting if he wins simply by throwing units at you in a stupid way 20120905 21:34:39< skyfaller> because the tricks you would develop to deal with e.g. the overresourced RCA AI won't work against a human noob or pro 20120905 21:38:02-!- loonybot [~loonybot@wesnoth/bot/loonybot] has quit [Remote host closed the connection] 20120905 21:39:43-!- loonybot [~loonybot@wesnoth/bot/loonybot] has joined #wesnoth-umc-dev 20120905 21:39:46-!- mode/#wesnoth-umc-dev [+v loonybot] by ChanServ 20120905 22:12:11< CIA-59> Wesnoth-AI-Demos: mattsc master * r54784dd / lua/grunt-rush-Freelands-S1_engine.lua : Pulled rush_right eval functionality out into its own function - http://git.io/t_6olQ 20120905 22:16:04-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20120905 22:20:44< skyfaller> mattsc: I confirm that the scrollbar issue is fixed. What OS are you using, by the way? I'm on OS X Lion 20120905 22:21:23< mattsc> skyfaller: still using Snow Leopard 20120905 22:21:42< skyfaller> oh, so we're all Mac users? Interesting :) I know Alarantalara is using Adium which is a dead giveaway 20120905 22:22:26< skyfaller> Github for Mac is pretty sweet 20120905 22:24:04< skyfaller> mattsc: how hard would it be for us to set up a campaign scenario that uses Fred as your opponent rather than simply telling us how to use Fred in multiplayer? 20120905 22:24:48< skyfaller> it's a little disappointing to select grunt rush(es) with Grnk and then have him only talk about it 20120905 22:27:01< mattsc> Not very hard, but I don't want to mess with that right now... 20120905 22:27:25< mattsc> If you check out the right-click option for that sign post, it will tell you that it's "story-only" or something. 20120905 22:27:58< skyfaller> like, is this something I could easily implement? Is there a stumbling block? 20120905 22:28:24< mattsc> If you can come up with a better way to get the information to people, feel free to change it, but I think it needs to be explained somewhere that there are MP AIs available. 20120905 22:28:36< mattsc> ... and how to get to them. 20120905 22:28:57< mattsc> It's probably not very hard, but I honestly haven't thought about it. 20120905 22:29:49< mattsc> But to be honest, I'd like to keep Fred and Ron as MP AIs for the time being. I don't really see a problem with that. 20120905 22:31:32< skyfaller> well, I wasn't proposing creating a serious campaign, just making it easy to play against them from the Grnk menu 20120905 22:32:39< skyfaller> if someone is just casually screwing around with our add-on, I want to make it as easy as possible for them to try a game against Fred or Ron, be suitably impressed, and become one of our adoring fans ;-) 20120905 22:34:32< skyfaller> I became interested in this project b/c I played a game against Fred and was astonished by how much better it was than the RCA AI, even at that early stage 20120905 22:34:39< skyfaller> so I want as many people to play against Fred as possible 20120905 22:34:51< mattsc> Such noble intentions ... ;) 20120905 22:35:29< mattsc> It should be pretty easy to set up a game of, say, Loyalists on the Freelands map against Fred. 20120905 22:36:04< mattsc> But it won't have the same configurability as the MP game 20120905 22:36:16< mattsc> Or at least that would be much more work to set up. 20120905 22:36:33< skyfaller> ok 20120905 22:37:01< skyfaller> shouldn't be hard to make you play a random race 20120905 22:37:16< skyfaller> I remember one campaign that ends with endless games against different random players... 20120905 22:37:16< mattsc> If you want, I can look into it later. Or I could give you some pointers. 20120905 22:37:32< skyfaller> whoever gets to it first 20120905 22:37:46< skyfaller> if I get there first I'll just take a crack at it and ask for help when I get stuck 20120905 22:37:55< mattsc> It's not a question whether it's doable, but whether it's worth the effort, given that we get it automatically in MP :) 20120905 22:38:15< mattsc> All the options, I mean with that 20120905 22:38:20< skyfaller> sure 20120905 22:39:04< skyfaller> I think in the future we should support people adding Fred and Ron to their campaigns, so it wouldn't be a bad idea to have a simple demonstration campaign using Fred 20120905 22:40:00< mattsc> I think in the future we should make Fred the default AI for Wesnoth. :D 20120905 22:40:14< skyfaller> lofty goals :D 20120905 22:40:39< mattsc> "Future" is not a very well defined time ... 20120905 22:40:45< skyfaller> true 20120905 22:42:37< CIA-59> Wesnoth-AI-Demos: mattsc master * r46a2eef / lua/grunt-rush-Freelands-S1_engine.lua : Replace some hard-coded values in area_rush_eval() by variables - http://git.io/FdyTFw 20120905 22:43:44< mattsc> Alarantalara: do you know whether the advancement path is chosen already when the 'advance' event kicks in? 20120905 22:44:50< mattsc> skyfaller: None of that was meant to say that we shouldn't put together a simple demo scenario. 20120905 23:09:03< CIA-59> Wesnoth-AI-Demos: mattsc master * r6b22a92 / lua/grunt-rush-Freelands-S1_engine.lua : More generalization of area_rush_eval() - http://git.io/yF91Tg 20120905 23:16:24< Alarantalara> mattsc: I don't know. I haven't had to worry about advancement events before. 20120905 23:17:14< Alarantalara> skyfaller: The other clear sign that I use a Mac is found in my forum title. 20120905 23:18:41-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 246 seconds] 20120905 23:21:53< mattsc> I just watched Fred win a game against Drakes (150 gold) after being down 209:302 in total HP at some point due to a combination of bad luck and bad judgment... 20120905 23:22:27< mattsc> Alarantalara: if the advancement path is not set yet at that time, there might be a way of having the AI choose it without causing OOS errors. 20120905 23:23:04< mattsc> But since that's not the highest priority right now, I'll just wait for Crab to be back. 20120905 23:59:00-!- mattsc [~mattsc@fw.hia.nrc.ca] has quit [Quit: bye] --- Log closed Thu Sep 06 00:00:23 2012