--- Log opened Sat Sep 08 00:00:13 2012 20120908 00:22:15< mattsc> skyfaller: still around? 20120908 00:24:05-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20120908 00:24:15-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 252 seconds] 20120908 00:27:28< skyfaller> mattsc: sort of, what's up? 20120908 00:27:54< mattsc> I have the right-click thingy ready, if you want to test it 20120908 00:28:04< skyfaller> ok, sorry you got there first 20120908 00:28:34< mattsc> No, the testing individual CAs, I mean, not the "kill unit under cursor" thing 20120908 00:28:39< skyfaller> oh, ok 20120908 00:28:49< skyfaller> are you going to commit it? 20120908 00:28:51< mattsc> wanna test now, or later? 20120908 00:29:20< mattsc> I'll commit if you want to test it now. Otherwise I'll add a few more comments first 20120908 00:29:31< skyfaller> whichever is more convenient for you 20120908 00:29:39< mattsc> right now is good 20120908 00:29:57< skyfaller> ok 20120908 00:30:45<+CIA-59> Wesnoth-AI-Demos: mattsc master * re79a09e / (multiplayer/era.cfg lua/eval_exec_CA.lua): Added right-click option to evaluate individual CAs - http://git.io/N72u8w 20120908 00:31:10< mattsc> The beginning of the new file should tell you what you _have_ to do. 20120908 00:31:17< mattsc> Have a look and see if that makes sense 20120908 00:31:57< skyfaller> ok, one sec 20120908 00:33:50<+CIA-59> Wesnoth-AI-Demos: mattsc master * rea55290 / lua/eval_exec_CA.lua : Added some more comments - http://git.io/HERLxA 20120908 00:34:17< skyfaller> mattsc: maybe I need to change how I do this 20120908 00:34:36< mattsc> How so? 20120908 00:34:40< skyfaller> every time you make changes to the add-on, I copy it from my github directory 20120908 00:34:56< mattsc> Oh, just set a link to the github directory 20120908 00:35:04< skyfaller> how? 20120908 00:35:12< mattsc> go into the add-ons dir 20120908 00:35:36< mattsc> > mv AI-Demos xxx 20120908 00:35:46< mattsc> xxx being wherever you want it 20120908 00:35:51< mattsc> e.g. ~/Desktop/ 20120908 00:36:19< mattsc> > ln -s git-hub-dirname AI-Demos 20120908 00:37:15< mattsc> There's probably a GUI way of doing that too, but I don't know modern stuff like that :) 20120908 00:37:18< skyfaller> hold on 20120908 00:39:21< skyfaller> this is giving me a lot of trouble for some reason, one minute 20120908 00:39:45<+CIA-59> Wesnoth-AI-Demos: mattsc master * rb52497c / multiplayer/era.cfg : Added right-click menu option to kill unit under cursor - http://git.io/cwUjxQ 20120908 00:40:29< skyfaller> oh, there was a GUI way to do it 20120908 00:40:30< skyfaller> oh well 20120908 00:41:03< mattsc> of course 20120908 00:42:15<+CIA-59> Wesnoth-AI-Demos: mattsc master * rae7fe66 / lua/eval_exec_CA.lua : And yet a few more comments - http://git.io/2t9L3g 20120908 00:42:15< skyfaller> ok 20120908 00:42:25< mattsc> Ok, I'm done making commits :) 20120908 00:42:40< skyfaller> do I need to restart Wesnoth every time you update? 20120908 00:42:47< skyfaller> or is it enough to just sync with Github? 20120908 00:43:08< mattsc> If you have the link set, you can just sync with github 20120908 00:43:16< mattsc> otherwise it's not enough 20120908 00:43:24< skyfaller> right, ok 20120908 00:43:27< mattsc> So, look at the comments at the beginning of eval_exec_CA.lua 20120908 00:43:42< mattsc> See if that makes sense and works 20120908 00:43:47< mattsc> for you 20120908 00:44:58< skyfaller> wait, how can it not matter if you've started with Fred on Freelands side 1? 20120908 00:45:10< mattsc> Magical coding :D 20120908 00:45:22< skyfaller> I'm just really confused by that 20120908 00:45:27< mattsc> Let me demonstrate 20120908 00:45:42< mattsc> Launch wesnoth in debug mode and go into a local game MP lobby 20120908 00:45:46< skyfaller> ok 20120908 00:45:54< mattsc> select our era 20120908 00:46:00< skyfaller> ok 20120908 00:46:09< mattsc> then just hit 'i'm ready' on the next screen without changing anything 20120908 00:46:32< skyfaller> ok 20120908 00:46:40< mattsc> So you're in control of both sides now, right? 20120908 00:46:46< mattsc> with random factions? 20120908 00:46:47< skyfaller> oh uh I don't know 20120908 00:46:54< skyfaller> yes I am 20120908 00:46:59< mattsc> well, go forward to turn 4 20120908 00:47:03< mattsc> we want dusk 20120908 00:47:28< skyfaller> well, end of turn 3, but ok 20120908 00:47:30< skyfaller> now what? 20120908 00:47:49< mattsc> well, you actually want to be at the beginning of turn 4 20120908 00:48:11< mattsc> Oh, first, do you see the two right-click options? 20120908 00:48:24< skyfaller> I guess it doesn't matter if there isn't an AI that's going to start moving stuff at the beginning of turn 4 20120908 00:48:34< mattsc> exactly 20120908 00:48:50< skyfaller> now what? 20120908 00:48:55< mattsc> You do need to be in control of the side you are currently testing though 20120908 00:49:09< skyfaller> I'm in control of both sides 20120908 00:49:15< mattsc> First, just spawn any unit, anywhere and see if you can kill it 20120908 00:49:24< skyfaller> what do you mean? 20120908 00:49:32< mattsc> shift-C 20120908 00:49:41< mattsc> put a unit somewhere 20120908 00:49:50< mattsc> right-click on it and kill it 20120908 00:50:01< skyfaller> yay! 20120908 00:50:04< skyfaller> it died 20120908 00:50:06< mattsc> good 20120908 00:50:16< skyfaller> if I kill my leader can I get him back? 20120908 00:50:25< mattsc> yes 20120908 00:50:30< mattsc> put him back there 20120908 00:50:46< mattsc> then type 20120908 00:50:52< mattsc> :unit canrecruit=yes 20120908 00:51:08< skyfaller> hooray! 20120908 00:51:15< mattsc> Now, let's put 3 grunts onto the three castle hexes 20120908 00:51:33< skyfaller> ok 20120908 00:51:37< mattsc> and two spearmen around the village 20120908 00:51:42< mattsc> change the latter to side 2 20120908 00:52:01< mattsc> Save game 20120908 00:52:40< mattsc> Actually, you need 4 grunts... 20120908 00:52:59< skyfaller> ok 20120908 00:53:00< skyfaller> now what? 20120908 00:53:12< mattsc> choose the other new right-click menu option 20120908 00:53:37< skyfaller> ok, Evaluating rush_eval() 20120908 00:53:44< mattsc> yep, cool 20120908 00:53:49< mattsc> It's working 20120908 00:53:56< mattsc> And it gives you the score, right? 20120908 00:54:05< skyfaller> yup, 350000 20120908 00:54:23< mattsc> ok, I haven't done executing of the CA yet, but that's trivial now that I know it's working 20120908 00:54:32< skyfaller> w00t 20120908 00:54:37< mattsc> so let's just play with this a little... 20120908 00:54:41< mattsc> open the new file 20120908 00:55:01< skyfaller> what file? 20120908 00:55:13< mattsc> lua/eval_exec_CA.lua 20120908 00:55:31< skyfaller> ok 20120908 00:55:36< mattsc> change 'rush' to 'none' 20120908 00:55:50< mattsc> save the file, and right-click again 20120908 00:56:03< skyfaller> you mean return 'none' instead of rush in the first function? 20120908 00:56:16< mattsc> yes, inside CA_name() 20120908 00:56:34< skyfaller> ok 20120908 00:56:43< skyfaller> now what? 20120908 00:56:49< mattsc> right-click 20120908 00:56:59< skyfaller> it tries to evaluate none 20120908 00:57:06< skyfaller> finds no function of that name 20120908 00:57:10< mattsc> good 20120908 00:57:20< mattsc> now change that to 'hold' 20120908 00:57:46< mattsc> What I want to demonstrate here is that all of this works without having to reload anything 20120908 00:57:48< skyfaller> will this clutter up my git repository with changes in config files while testing? 20120908 00:58:00< skyfaller> that was partly why I was copying it over instead of trying to link it 20120908 00:58:11< mattsc> if you have linked to the dir, yes 20120908 00:58:34< mattsc> But git will tell you what you need to clean up later - and it's just a single line :) 20120908 00:58:44< skyfaller> well, it's linked now because you keep pushing changes, and I figure this will only get worse with 4 programmers involved 20120908 00:58:56< skyfaller> ok, fair enough 20120908 00:58:56< mattsc> sorry :) 20120908 00:59:22< skyfaller> ok, it works 20120908 00:59:25< mattsc> anyways, did you see that you can change it to 'hold' and it will give you the eval score for that? 20120908 00:59:26< skyfaller> this is pretty sweet 20120908 00:59:26< mattsc> ok 20120908 00:59:31< skyfaller> nice demonstration 20120908 00:59:36< mattsc> now, it goes even further than that... 20120908 00:59:42< skyfaller> oh goodness 20120908 00:59:48< mattsc> go back to 'rush' 20120908 00:59:48< skyfaller> you've outdone yourself this time 20120908 00:59:58< skyfaller> ok 20120908 01:00:04< mattsc> open Fred's engine file 20120908 01:00:16< skyfaller> k 20120908 01:00:28< mattsc> and find line ... 20120908 01:00:30< mattsc> umm 20120908 01:00:52< mattsc> Actually, just search for 350000 20120908 01:01:00< skyfaller> ok 20120908 01:01:07< skyfaller> 2048 20120908 01:01:19< mattsc> Before that line, enter this line: 20120908 01:01:30< mattsc> (this is a demonstration only, so it's silly) 20120908 01:01:38< mattsc> if 1 then return 11 end 20120908 01:01:56< mattsc> as the first line in rush_eval() 20120908 01:01:57< skyfaller> ok, save it and then evaluate it? 20120908 01:02:01< mattsc> yes 20120908 01:02:08< skyfaller> score 11 :P 20120908 01:02:12< mattsc> So... 20120908 01:02:25< mattsc> You can make changes on the fly and it takes effect immediately :D 20120908 01:02:29< skyfaller> that's scary 20120908 01:02:33< mattsc> Also 20120908 01:02:42< mattsc> End the game for a sec (after saving it) 20120908 01:02:48< mattsc> Then reload it 20120908 01:03:09< skyfaller> ok 20120908 01:03:27< skyfaller> now what? 20120908 01:03:30< mattsc> You should simply be able to pick up where you left off 20120908 01:03:42< skyfaller> in what sense? 20120908 01:03:59< mattsc> The right-click options are still there, all the debug stuff should work 20120908 01:04:09< skyfaller> yup 20120908 01:04:29< mattsc> In fact, you can now start the game without being in debug mode, and all the stuff should be there if you open that file 20120908 01:04:34< skyfaller> yup :) 20120908 01:04:43< skyfaller> I accidentally didn't start it in debug mode 20120908 01:04:45< mattsc> Good enough? 20120908 01:04:50< skyfaller> that's seriously awesome 20120908 01:05:02< mattsc> Cool :) 20120908 01:05:08< skyfaller> now let me tell you about the big project I want to do ;-) 20120908 01:05:18< mattsc> Phbt! 20120908 01:05:21< skyfaller> or that I want someone else to do, since it's probably not something I can handle :P 20120908 01:05:54< mattsc> Actually, let me tell you two of the (minor) down sides of the whole thing: 20120908 01:06:00< skyfaller> ok, you go first then 20120908 01:06:16< mattsc> 1. You need to change which CA you want to deal with manually in the file 20120908 01:06:32< mattsc> but I actually consider that equal than having to choose from 25 different options in the meny 20120908 01:06:34< mattsc> menu 20120908 01:06:40< skyfaller> yeah, that's fine 20120908 01:06:52< mattsc> 2. it's not trivial to display in the menu which CA will be eval/exec-ed 20120908 01:07:03< mattsc> so it isn't 20120908 01:07:03< skyfaller> ah, that is too bad 20120908 01:07:21< skyfaller> I mean the main downside to doing it manually in the file is if we start committing changes to that line repeatedly :P 20120908 01:07:55< skyfaller> aside from that I see no problem with it, we're up to our elbows in the code anyway 20120908 01:07:56< mattsc> yep - on the other hand, it doesn't really matter for anything but the testing itself 20120908 01:08:01< mattsc> exactly 20120908 01:08:21< mattsc> ok, let me add the exec option also, and then you can go ahead with testing 20120908 01:08:33< skyfaller> wait 20120908 01:08:41< skyfaller> So I was going to go and make savegames of all of Fred's bad decisions to use as test cases 20120908 01:08:54< mattsc> yes 20120908 01:09:02< skyfaller> so we can easily see if Fred's behavior is improving, or if we are regressing 20120908 01:09:15< mattsc> right, I remember 20120908 01:09:25< skyfaller> but I'm realizing it might be a huge pain in the ass to go through and run those test cases manually 20120908 01:09:59< skyfaller> if there is a single right answer, or set of right answers, is there any way we could run the test cases in nogui mode or something and automate a test suite? 20120908 01:10:59< skyfaller> I'd like to just push a button and run the latest version of Fred against our test suite 20120908 01:11:15< skyfaller> so we can see "oh, Fred is standing next to empty villages again, what did you do???" 20120908 01:11:30< mattsc> but how would you test what Fred is doing in nogui mode? You need to watch it to figure out if the new response makes more sense, don't you? 20120908 01:11:46< skyfaller> well, in simple cases if we know that there are only a few right answers 20120908 01:11:55< skyfaller> we can just check to see if Fred made one of the correct moves 20120908 01:12:23< mattsc> Ugh... That would mean that you also need to program what the correct moves are and everything. 20120908 01:12:28< skyfaller> or any move besides the wrong move 20120908 01:12:57< mattsc> That sounds like a lot of effort... 20120908 01:13:02< skyfaller> that's true, but just think how nice it would be to be able to run the suite every time you make changes to Fred rather than me having to play games against him to see stupid behavior 20120908 01:13:23< mattsc> ... and I wouldn't know how to do that right now 20120908 01:13:26< skyfaller> like, if you do it manually every time, you're going to either miss stuff, or spend a lot of time manually running the same stupid test cases 20120908 01:13:47< skyfaller> how many times do you want to watch Fred stand next to an empty village? 20120908 01:14:30< mattsc> I'll test that specifically for a given test case. Once it's fixed, I never need to go back to that same test case. 20120908 01:14:31< skyfaller> you have to go into "load game" and then search through the list of games... 20120908 01:14:42< skyfaller> mattsc: noooo, that's not how a test suite works 20120908 01:14:54< skyfaller> you know how you keep on breaking things when you refactor? :P 20120908 01:15:02< skyfaller> you say "stuff is broken for now, but it'll be better soon" 20120908 01:15:08< skyfaller> how do you know when it is better? 20120908 01:15:13< skyfaller> that's what a test suite is for 20120908 01:15:18< mattsc> yeah, but the mistakes now are different 20120908 01:16:12< skyfaller> whatevs, if you think it's just a bad idea, forget I said anything, but I think it would be good to know that we aren't falling back into old examples of bad behavior 20120908 01:16:40< skyfaller> there are a lot of reasons that Fred could start doing stupid things again, like if we fix some other problem but it has bad repercussions elsewhere 20120908 01:17:01< mattsc> I'm not saying that it's a bad idea in principle. 20120908 01:17:27< mattsc> But first, I don't know how to do that right now, 2. figuring it out is _a lot_ of work. And I'm not sure that it's worth the effort. 20120908 01:17:55< skyfaller> I think if we could figure out how to do it, it would be more fun than testing test cases manually 20120908 01:18:03< mattsc> I absolutely agree with that, I just don't know how to set this up to be done automatically 20120908 01:18:09< skyfaller> it's also helpful if we are trying to fix a bad behavior, and we're having trouble figuring it out 20120908 01:18:35< skyfaller> "is Fred still standing next to empty villages"? "Hold on, let me load up the test cases...." 15 minutes later, "Yup" 20120908 01:18:49< skyfaller> or "No, only some of the villages" "well which ones?" 20120908 01:18:54< mattsc> In particular also the decision process of whether the new move is any better than the old one. 20120908 01:19:14< skyfaller> heh, OK, maybe it is a bad idea 20120908 01:19:29< skyfaller> because I suppose if we know to specify where Fred should move 20120908 01:19:33< skyfaller> then we could just tell him to move there 20120908 01:19:40< mattsc> As I said, that's not what I am saying, I seriously don't know. 20120908 01:19:40< skyfaller> rather than writing a test suite to see if he moved there 20120908 01:19:56< mattsc> That's a good point... :) 20120908 01:20:00< skyfaller> but I guess these are very specific tests in very specific situations 20120908 01:20:10< skyfaller> so we could know the right answer in a given situation, but have a rough time generalizing it 20120908 01:20:40< skyfaller> like "Fred should move to 12,15 here" is not helpful outside of a test suite 20120908 01:21:02< mattsc> Right. But it would only be worth the effort if writing the testing suite is less work than just testing them manually 20120908 01:21:31< skyfaller> basically, I think we will be working on this AI for a long time, and it could start doing stupid things at any moment 20120908 01:21:45< skyfaller> that's been my experience so far in the development process ;-) 20120908 01:21:52< mattsc> yep 20120908 01:22:05< skyfaller> even if we get things right with orcs, when we move on to other races, we'll have to teach him to stop being stupid over and over again 20120908 01:22:32< skyfaller> so I think a test suite like this would pay off, if we can write test cases once and then run them repeatedly for as long as we have this AI 20120908 01:23:31< skyfaller> anyway, if there's no easy way to do this, then that's fine, but I'm so impressed with your wizardry here that I bet you could figure it out 20120908 01:23:57< mattsc> You mean I should have done a worse job previously?! :D 20120908 01:24:20< skyfaller> lol! 20120908 01:24:57< mattsc> There are a couple things of which I simply don't know whether they are possible (without major effort at least), for example restarting a savegame in nogui mode... 20120908 01:25:34< mattsc> I can look into that sometime, but for the next week I probably won't have time. 20120908 01:25:56< mattsc> So, why don't you try to come up with a couple test cases and an "algorithm" (of sorts) to test them 20120908 01:26:09< mattsc> And then bug me again next weekend and I'll look into it 20120908 01:26:24< skyfaller> lol ok 20120908 01:26:58< skyfaller> I'll make a long post with lots of replays on the forum :P 20120908 01:27:10< skyfaller> erm savegames, not replays 20120908 01:27:41< mattsc> cool 20120908 01:28:07< mattsc> So, I am traveling Mon-Fri next week with probably almost no time to work on that. Before that, I'll try to: 20120908 01:28:19< mattsc> - Set up the eval+exec right-click option 20120908 01:28:37< mattsc> - Give you a basic advance-and-retreat behavior for the 'hold' CA 20120908 01:28:50< mattsc> The first is easy, I can do that tonight. 20120908 01:28:54< skyfaller> ok 20120908 01:29:03< mattsc> The latter is not easy, not sure how far I'll get over the weekend. 20120908 01:30:01< mattsc> Btw, there is no use in "force executing" a CA when the eval does not return a positive score, because the exec() relies on some other information from the eval() as well 20120908 01:30:14< mattsc> which is not provided when eval score is 0 20120908 01:30:55< mattsc> So when testing, you need to set up a situation on the map is so that it gives you a positive eval score 20120908 01:31:07< skyfaller> I see 20120908 01:31:13< skyfaller> that sounds complicated 20120908 01:31:30< mattsc> But it forces you to really understand the CAs, which is good 20120908 01:31:48< mattsc> Oh, let me demonstrate one more thing - bring back up that savegame 20120908 01:34:03< mattsc> skyfaller: you still there? (because I need to leave in a couple minutes) 20120908 01:34:17< skyfaller> mattsc: sorry, wasn't watching IRC 20120908 01:34:26< skyfaller> ok, I'm in the savegame 20120908 01:34:48< mattsc> So, the particular reason why I set things up like this, is that it does "live updates" to the situation on the map 20120908 01:34:57< mattsc> Right-clicking right now gives you? 20120908 01:35:18< skyfaller> evaluate, kill, create, change side... 20120908 01:35:30< mattsc> oh, I mean, what eval score? 20120908 01:35:40< skyfaller> oh, rush_eval is 350000 20120908 01:35:41< mattsc> and how many grunts do you have? 20120908 01:35:48< skyfaller> 4 20120908 01:35:55< mattsc> and two spearmen? 20120908 01:35:58< skyfaller> yes 20120908 01:36:09< mattsc> ok, take one grunt and move it as far north as it goes 20120908 01:36:19< skyfaller> ok 20120908 01:36:23< mattsc> score? 20120908 01:36:30< skyfaller> 0 20120908 01:36:44< mattsc> now change one of the spearmen to your side 20120908 01:36:57< skyfaller> ok 20120908 01:37:06< mattsc> what score do you get now? 20120908 01:37:08< skyfaller> still 0 20120908 01:37:22< mattsc> yeah, true probably... 20120908 01:37:29< skyfaller> what do you mean? 20120908 01:37:46< mattsc> spawn yourself an armageddon drake somewhere in the left of the map 20120908 01:37:48< mattsc> for Side 2 20120908 01:38:05< skyfaller> ok 20120908 01:38:08< skyfaller> now what? 20120908 01:38:11< mattsc> as in, way out of range of that village 20120908 01:38:15< skyfaller> yes 20120908 01:38:15< mattsc> now what's the score 20120908 01:38:25< skyfaller> 350000 20120908 01:38:31< skyfaller> why? 20120908 01:38:31< mattsc> cool! 20120908 01:39:01< mattsc> Well, first do you see that you can dynamically screw around with anything you want, and the score gets adjusted without you having to do anything else. 20120908 01:39:11< skyfaller> yes 20120908 01:39:25< skyfaller> but why did the armageddon drake make a difference? 20120908 01:39:35< mattsc> Ok, so that's how I have been testing things all along, it's extremely convenient. 20120908 01:39:51< mattsc> Because if Fred is too strong, the RCAs kick in. 20120908 01:39:52< skyfaller> much more convenient now with less typing ;-) 20120908 01:39:58< skyfaller> oh 20120908 01:40:12< mattsc> -- Skip this if AI is much stronger than enemy 20120908 01:40:12< mattsc> if grunt_rush_FLS1:full_offensive() then 20120908 01:40:12< mattsc> if AH.print_eval() then print(' - Done evaluating:', os.clock()) end 20120908 01:40:13< mattsc> return 0 20120908 01:40:13< mattsc> end 20120908 01:40:38< skyfaller> got it 20120908 01:40:54< mattsc> Ok, I really have to be off now... 20120908 01:41:02< skyfaller> ok, have fun! 20120908 01:41:04< mattsc> I'll get you the eval+exec option tonight 20120908 01:41:10< mattsc> thanks 20120908 01:41:16< mattsc> later 20120908 01:41:34-!- mattsc [~mattsc@fw.hia.nrc.ca] has quit [Quit: bye] 20120908 02:45:44-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120908 03:01:26-!- Octalot [~noct@host86-130-60-64.range86-130.btcentralplus.com] has quit [Remote host closed the connection] 20120908 03:15:53-!- mattsc [~mattsc@d154-20-32-241.bchsia.telus.net] has joined #wesnoth-umc-dev 20120908 03:20:30-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20120908 03:23:23-!- loonybot [~loonybot@wesnoth/bot/loonybot] has quit [Remote host closed the connection] 20120908 03:52:16< mattsc> skyfaller: ugh, setting up the exec right-click option is a bit more complicated than I thought 20120908 03:53:20-!- un214 [~un214@adsl-63-205-9-149.dsl.scrm01.pacbell.net] has joined #wesnoth-umc-dev 20120908 03:53:24< mattsc> I know in principle how to do it, but I need to think about it for a little and then do some coding and testing. I might not get that done tonight any more. 20120908 03:53:56< un214> so they list the requiremetn of being occasionally reachable on this channel for using wesnoth umc sc 20120908 03:54:07< un214> so far nobody's tried to reach me 20120908 04:20:17< skyfaller> mattsc: no pressure :) You set your own deadlines here 20120908 04:21:01< skyfaller> bleh, I lost another ladder game by picking orcs and executing a first-night rush against a picked Loy player with Red Mage 20120908 04:22:34< skyfaller> I think that if you assume that your opponent is a solid player you have to back off from a first night rush if he has a strong leader like the Red Mage or Lieutenant. 20120908 04:23:43< skyfaller> with a Red Mage he can kill at least one of your units every turn, and reclaim his village from you with no trouble. 20120908 04:35:35< mattsc> I'd just like to get it done so that I can move on to more interesting things. 20120908 04:36:07< mattsc> Interesting on the Red Mage. Well, you're our Taktikmeister, so you tell us how to do it. ;) 20120908 04:36:35< un214> I've handled it ok 20120908 04:36:52< un214> 3 dark adepts and he's so close to death its not funny 20120908 04:37:49< mattsc> un214: sorry? You played against skyfaller? 20120908 04:37:58< un214> no, not 20120908 05:25:23<+CIA-59> Wesnoth-AI-Demos: mattsc master * r5c0fd16 / (3 files in 3 dirs): Set up debug era for testing of Fred's CAs - http://git.io/NmN7Tw 20120908 05:27:16-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has quit [] 20120908 05:42:44-!- un214 [~un214@adsl-63-205-9-149.dsl.scrm01.pacbell.net] has quit [Read error: Connection reset by peer] 20120908 05:48:41-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has joined #wesnoth-umc-dev 20120908 05:48:57-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has left #wesnoth-umc-dev [] 20120908 06:30:03-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has joined #wesnoth-umc-dev 20120908 06:32:35-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has left #wesnoth-umc-dev [] 20120908 06:39:57<+CIA-59> Wesnoth-AI-Demos: mattsc master * r0044cbd / (ais/ai_grunt-rush-Freelands-S1_debug.cfg multiplayer/era.cfg): Debug era: place player in control of Side 1 when game starts - http://git.io/sv846A 20120908 06:40:01< skyfaller> he was just saying how to take down a Red Mage, but his advice was for UD, which is an entirely different problem 20120908 06:40:21< mattsc> oh, ok ... 20120908 06:40:46< mattsc> Almost got the CA execution thing done 20120908 06:41:25< skyfaller> sweet 20120908 06:41:48< skyfaller> I'm kind of depressed by the drubbing I've been taking in ladder games recently. Do you have any idea how many games of Wesnoth I've played? 20120908 06:43:14< skyfaller> I've given a huge chunk of my life to this game, and I'm still not a master. 20120908 06:45:45< mattsc> :( No, no idea... It's hard, isn't it? 20120908 06:46:09< skyfaller> well, according to my ladder history, I've played at least 1169 games 20120908 06:46:32< skyfaller> I've been playing since I discovered this game in college, around 2004 20120908 06:47:18< skyfaller> I'm a good, solid player, but I thought by now I'd be great, the best. 20120908 06:48:17< skyfaller> I can accept it when someone higher-ranked than me beats me, fine. 20120908 06:48:35< skyfaller> But when someone who is playing their first ladder game takes me out, I wonder if I've learned anything over all these years. 20120908 06:49:14< mattsc> That's a lot of games! 20120908 06:50:18< mattsc> Besides that, well, to me you seem to know quite a bit. 20120908 06:50:49< skyfaller> Yeah, I guess I'm hoping to pass some of that knowledge on to Fred 20120908 06:51:20< skyfaller> I was thinking of writing a strategy guide for Wesnoth, but I thought that it wouldn't have any authority unless I was at least one of the top ten ladder players 20120908 06:51:22< mattsc> Right. Take me by comparison, I know neither how to play nor how to program an AI ;) 20120908 06:52:00< mattsc> You don't need authority or knowledge, just confidence. First rule of leadership! :P 20120908 06:52:21-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-umc-dev 20120908 06:52:23< skyfaller> well, someone writes a book on a game, you want to read his advice because he wins, right? 20120908 06:52:46< skyfaller> If any random person who walks onto the server can beat me, why should anyone listen to me? 20120908 06:53:00< skyfaller> I have an informal strategy guide written already, actually 20120908 06:53:13< skyfaller> it would only need to be expanded and cleaned up to be a book 20120908 06:53:32< skyfaller> but it's clearly not good enough for me to win consistently 20120908 06:54:32< skyfaller> I look over it before and after every game and try to improve it 20120908 06:56:41< mattsc> Honestly, that sounds pretty good to me! 20120908 06:56:41< skyfaller> I dunno, sorry for complaining in IRC, just feeling moody tonight 20120908 06:57:13< mattsc> That's ok, I feel that way about Fred (or my ability to improve him) occasionally. 20120908 06:57:25< skyfaller> heh 20120908 06:58:09< skyfaller> well, I fear I would have to study for years to do what you've already done with Fred 20120908 06:58:52< skyfaller> it's an impressive accomplishment, and we're going to make Fred and Ron into killers 20120908 06:58:59< skyfaller> no one will be safe from their wrath 20120908 06:59:53< mattsc> ... 20120908 07:00:49< skyfaller> I mean, virtual wrath against elves and dwarves, you know 20120908 07:01:08< mattsc> I know... 20120908 07:01:31< mattsc> But I just cannot get that one last bit of the CA execution done. Grrr... 20120908 07:01:48< mattsc> I think I'll just stop and do it tomorrow, I bet it's a tiny silly mistake 20120908 07:01:54< skyfaller> yeah, sleep on it 20120908 07:02:17< skyfaller> look at it with fresh eyes 20120908 07:03:22-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has joined #wesnoth-umc-dev 20120908 07:11:50< mattsc> I think I'll have to. GN. Don't be too depressed. :) 20120908 07:12:52< skyfaller> I'll do my best :) sleep well! 20120908 07:12:56-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has quit [Quit: Leaving.] 20120908 07:20:52-!- mattsc [~mattsc@d154-20-32-241.bchsia.telus.net] has quit [Quit: bye] 20120908 07:32:51<+CIA-59> Wesnoth-AI-Demos: mattsc master * rd56b976 / multiplayer/era.cfg : Added CA activation right-click option for debug era - http://git.io/Ybyxfg 20120908 07:44:30<+CIA-59> Wesnoth-AI-Demos: mattsc master * r9b87aae / lua/eval_exec_CA.lua : Added error handling for non-activated CAs - http://git.io/sVgeZA 20120908 08:10:57-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has joined #wesnoth-umc-dev 20120908 08:11:20-!- artisticdude_iOS [~artisticd@vsat-148-64-186-230.c005.g4.mrt.starband.net] has left #wesnoth-umc-dev [] 20120908 08:17:43-!- SpoOkyMagician [~chatzilla@74-141-242-243.dhcp.insightbb.com] has joined #wesnoth-umc-dev 20120908 09:05:24-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120908 09:21:46-!- ancestral [~ancestral@99-118-156-207.lightspeed.stlsmo.sbcglobal.net] has joined #wesnoth-umc-dev 20120908 09:50:46-!- Crendgrim [~crend@77-22-112-72-dynip.superkabel.de] has joined #wesnoth-umc-dev 20120908 09:56:12-!- SpoOkyMagician [~chatzilla@74-141-242-243.dhcp.insightbb.com] has quit [Quit: .zZ] 20120908 10:05:23-!- ancestral [~ancestral@99-118-156-207.lightspeed.stlsmo.sbcglobal.net] has quit [Quit: i go sleeps kthxbai] 20120908 11:42:51-!- loonybot [~loonybot@46.138.72.79] has joined #wesnoth-umc-dev 20120908 11:42:51-!- loonybot [~loonybot@46.138.72.79] has quit [Changing host] 20120908 11:42:51-!- loonybot [~loonybot@wesnoth/bot/loonybot] has joined #wesnoth-umc-dev 20120908 11:42:54-!- mode/#wesnoth-umc-dev [+v loonybot] by ChanServ 20120908 14:31:53-!- Octalot [~noct@host86-130-60-64.range86-130.btcentralplus.com] has joined #wesnoth-umc-dev 20120908 15:21:47-!- mattsc [~mattsc@d154-20-32-241.bchsia.telus.net] has joined #wesnoth-umc-dev 20120908 15:23:21< mattsc> skyfaller: The CA execution mechanism should be ready for testing. I'll just add a few more comments later today. 20120908 15:24:20< mattsc> To use it, start Wesnoth in debug mode, then choose the debug era, and you do need to set up Fred in the usual way, and with the debug CA for that. 20120908 15:27:38< mattsc> The 'Activate Side ...' right-click option is needed only after you reload a savegame. Unfortunately, it advances 2 turns, but I don't see any way around that. You could simply click it 3 times (or once plus 4 'end turns') to get back to the same TOD. 20120908 15:28:35< mattsc> Neither of the sides will do any move if you do that, so the situation on the map won't change. 20120908 15:29:53< mattsc> Hopefully the rest is pretty self-explanatory. I set it up to eval/exec the recruit CA for now, because that's really simple to see whether it's working. 20120908 17:22:07< skyfaller> hm, can you write this down somewhere? Some of those instructions are non-obvious 20120908 17:22:14< skyfaller> put it on the wiki or something 20120908 17:34:05< mattsc> Will do at the same time when I'll clean up the comments in the code 20120908 17:38:20-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20120908 17:42:39< skyfaller> why the hell does it advance two turns? 20120908 17:49:49< mattsc> I can give you the exact technical reason for that, if you care, but not right now 20120908 17:50:55< mattsc> It's not because I thought 2 is a nice round number ;) 20120908 18:12:00< mattsc> Ah, cool, I knew some distance from Fred would help... 20120908 18:12:52< mattsc> I found a way that, after a reload, it only advances one turn and it does so automatically, so there's no need to reactivate the exec CAs manually 20120908 18:13:15< mattsc> The one turn advance is necessary though, there's no way around that 20120908 18:13:58< mattsc> I'll clean that up and commit it later today; the functionality is not going to change otherwise 20120908 18:23:48<+CIA-59> Wesnoth-AI-Demos: mattsc master * rf15b667 / multiplayer/era.cfg : Added automatic CA activation after reload - http://git.io/I4LoEQ 20120908 18:41:56-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Quit: Konversation terminated!] 20120908 18:46:13-!- fendrin [~fabi@88-134-46-58-dynip.superkabel.de] has joined #wesnoth-umc-dev 20120908 18:46:13-!- fendrin [~fabi@88-134-46-58-dynip.superkabel.de] has quit [Changing host] 20120908 18:46:13-!- fendrin [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-umc-dev 20120908 18:55:47-!- Octalot [~noct@host86-130-60-64.range86-130.btcentralplus.com] has quit [] 20120908 19:25:15-!- SpoOkyMagician [~chatzilla@74-141-242-243.dhcp.insightbb.com] has joined #wesnoth-umc-dev 20120908 19:41:22-!- SpoOkyMagician [~chatzilla@74-141-242-243.dhcp.insightbb.com] has quit [Quit: bbl] 20120908 19:56:12-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120908 20:40:44< skyfaller> is there any way you could automatically set the TOD to be correct? If you're automatically advancing it one turn, you might as well advance it 4 turns :P 20120908 20:41:38< skyfaller> is there no debug command that you could use to just declare the TOD? 20120908 20:44:00< Espreon> You could have it fire [replace_schedule] 20120908 20:44:12< Espreon> Eh, well... 20120908 20:44:30< Espreon> ... a bit too complicated to do from debug commandline 20120908 20:55:20-!- loonybot [~loonybot@wesnoth/bot/loonybot] has quit [Remote host closed the connection] 20120908 20:57:07-!- loonybot [~loonybot@46.138.72.79] has joined #wesnoth-umc-dev 20120908 20:57:07-!- loonybot [~loonybot@46.138.72.79] has quit [Changing host] 20120908 20:57:07-!- loonybot [~loonybot@wesnoth/bot/loonybot] has joined #wesnoth-umc-dev 20120908 20:57:10-!- mode/#wesnoth-umc-dev [+v loonybot] by ChanServ 20120908 21:01:46-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20120908 21:46:48-!- Octalot [~noct@host86-130-60-64.range86-130.btcentralplus.com] has joined #wesnoth-umc-dev 20120908 22:03:48-!- SpoOkyMagician [~chatzilla@74-141-242-243.dhcp.insightbb.com] has joined #wesnoth-umc-dev 20120908 23:42:07-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20120908 23:42:50-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 252 seconds] --- Log closed Sun Sep 09 00:00:24 2012