--- Log opened Mon Jun 22 00:00:03 2009 20090622 00:02:44< Crab_> night 20090622 00:03:41-!- Crab_ [i=crab@wesnoth/developer/crab] has quit ["Leaving."] 20090622 00:06:20-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090622 00:09:14-!- wesbot changed the topic of #wesnoth-dev to: released 1.6.3, announcing "soon" | 1.7.1 planned for June 28 | 59 bugs, 242 feature requests, 13 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090622 00:11:10-!- boucman [n=rosen@wesnoth/developer/boucman] has quit ["Leaving."] 20090622 00:17:16-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has quit [Remote closed the connection] 20090622 00:17:20-!- silene [n=plouf@wesnoth/developer/silene] has quit [Read error: 113 (No route to host)] 20090622 00:22:57-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090622 00:24:35-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has quit [Remote closed the connection] 20090622 00:42:58-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090622 01:10:10-!- ABCD [n=ABCD@wikipedia/ABCD] has quit [Client Quit] 20090622 01:10:56-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090622 01:15:37-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [Read error: 113 (No route to host)] 20090622 02:38:23-!- loonybot [n=loonybot@79.139.137.147] has joined #wesnoth-dev 20090622 02:39:11-!- loonycyborg [n=sergey@79.139.137.147] has joined #wesnoth-dev 20090622 02:43:53-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit [Client Quit] 20090622 02:44:19-!- loonybot [n=loonybot@wesnoth/bot/loonybot] has quit [Remote closed the connection] 20090622 02:49:03-!- Aethaeryn [n=Michael@c-98-204-170-162.hsd1.md.comcast.net] has quit ["Lost terminal"] 20090622 03:26:17-!- shikadibot_ [n=shikadi@wesnoth/umc-dev/bot/shikadibot] has joined #wesnoth-dev 20090622 03:36:14-!- ancestral [n=ancestra@97-116-112-181.mpls.qwest.net] has joined #wesnoth-dev 20090622 03:46:22-!- shikadibot_ is now known as shikadibot-8400 20090622 03:46:39-!- shikadibot-8400 [n=shikadi@wesnoth/umc-dev/bot/shikadibot] has quit ["Lost terminal"] 20090622 04:06:35-!- Ivanovic_ [n=ivanovic@dtmd-4db2a68e.pool.einsundeins.de] has joined #wesnoth-dev 20090622 04:21:50-!- Ivanovic [n=ivanovic@wesnoth/developer/ivanovic] has quit [Read error: 110 (Connection timed out)] 20090622 04:22:33-!- Ivanovic_ is now known as Ivanovic 20090622 04:23:29-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090622 04:26:49-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090622 04:28:11-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["Tengo que ir... Yeahzorz..."] 20090622 04:30:32-!- Appleman1234 [n=Appleman@131.181.47.7] has joined #wesnoth-dev 20090622 04:46:51-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090622 04:57:14-!- ABCD [n=ABCD@wikipedia/ABCD] has quit [Client Quit] 20090622 04:57:43-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090622 04:58:27-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090622 05:22:53-!- BenUrban_ [n=benurban@unaffiliated/benurban] has joined #wesnoth-dev 20090622 05:27:11-!- crimson_penguin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090622 05:39:09-!- Cuervo [n=Brennan@97-126-10-189.tukw.qwest.net] has joined #wesnoth-dev 20090622 05:39:15-!- Cuervo [n=Brennan@97-126-10-189.tukw.qwest.net] has left #wesnoth-dev [] 20090622 05:39:25-!- BenUrban [n=benurban@unaffiliated/benurban] has quit [Read error: 110 (Connection timed out)] 20090622 05:57:50-!- BenUrban_ is now known as BenUrban 20090622 06:20:54-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [] 20090622 06:28:06-!- Doppp|EeePC [n=aasdasd@c-67-171-96-240.hsd1.pa.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 20090622 06:57:01-!- ancestral [n=ancestra@97-116-112-181.mpls.qwest.net] has quit ["And that’s the end of THAT chapter."] 20090622 07:02:04-!- mjs-de [n=mjs-de@vpw.wh.uni-dortmund.de] has joined #wesnoth-dev 20090622 07:13:37-!- Sirp_ [n=me@pool-173-74-23-130.dllstx.fios.verizon.net] has joined #wesnoth-dev 20090622 07:28:41-!- Appleman1234 [n=Appleman@131.181.47.7] has quit [Read error: 110 (Connection timed out)] 20090622 07:32:01-!- Sirp [n=me@wesnoth/developer/dave] has quit [Read error: 110 (Connection timed out)] 20090622 07:47:22-!- BenUrban_ [n=benurban@unaffiliated/benurban] has joined #wesnoth-dev 20090622 08:01:35-!- Sirp_ [n=me@pool-173-74-23-130.dllstx.fios.verizon.net] has quit ["leaving"] 20090622 08:05:00-!- BenUrban [n=benurban@unaffiliated/benurban] has quit [Read error: 110 (Connection timed out)] 20090622 08:28:39-!- euschn [n=chatzill@wesnoth/developer/euschn] has joined #wesnoth-dev 20090622 08:28:43< euschn> hi 20090622 08:33:49< Soliton> is the default preference dir .wesnoth1.7 or .wesnoth1.7.0? 20090622 08:34:15< Soliton> and is that the same for all build systems? 20090622 08:48:06-!- stikonas [n=and@wesnoth/translator/stikonas] has joined #wesnoth-dev 20090622 09:04:21-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090622 09:08:56< CIA-52> euschn * r36343 /trunk/src/ (actions.cpp actions.hpp): replaced gamestatus parameter in timeofday_at() by tod_manager 20090622 09:21:08< CIA-52> euschn * r36344 /trunk/src/ (unit_abilities.cpp unit_types.cpp unit_types.hpp): removed gamestatus member from class attack_type 20090622 09:35:03-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090622 09:42:07-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090622 09:45:55< CIA-52> euschn * r36345 /trunk/src/ (6 files in 2 dirs): removed gamestatus parameter from set_specials_context() and struct unit_type 20090622 09:59:59-!- CIA-52 [n=CIA@208.69.182.149] has quit [] 20090622 10:00:23-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090622 10:06:24-!- CIA-52 [n=CIA@208.69.182.149] has joined #wesnoth-dev 20090622 10:14:09< Ivanovic> shadowmaster, Turuk: so whom should i assign this bug to? https://gna.org/bugs/index.php?13738 20090622 10:14:34< Turuk> You can give it to me, I was playing with that before 20090622 10:14:51< Turuk> I don't know that it is a bug though, because users are directed to contact a forum admin if they have problems instead of wasting 10 mins on it 20090622 10:15:03< Turuk> I'll look into it now though 20090622 10:15:11< Ivanovic> Turuk: then just post that you will look into it 20090622 10:15:21< Turuk> Roger, will do 20090622 10:15:29< CIA-52> euschn * r36346 /trunk/src/ (7 files in 4 dirs): removed gamestatus parameters from class battle_context 20090622 10:15:34< Ivanovic> (since you don't have commit access, assigning to you is not possible) 20090622 10:19:21-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090622 10:25:56-!- stikonas [n=and@wesnoth/translator/stikonas] has quit [Remote closed the connection] 20090622 10:32:33-!- maxy [n=maxy@84-74-83-103.dclient.hispeed.ch] has joined #wesnoth-dev 20090622 10:40:29-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090622 10:46:51< Rhonda> Ivanovic: Am in the last testings for 1.6.3, propably upload within the next hour. Just in case you want to know status for your announce. :) 20090622 10:47:17< Ivanovic> Rhonda: great 20090622 10:47:24< Ivanovic> i plan to announce about 8pm local time 20090622 10:54:09< Ivanovic> okay, off to uni, cu 20090622 11:05:18-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090622 11:05:21-!- silene [n=plouf@wesnoth/developer/silene] has left #wesnoth-dev [] 20090622 11:07:13-!- noy [n=Noy@wesnoth/developer/noy] has quit ["GO, GET TO THE CHOPPAH!!!"] 20090622 11:16:07-!- thespaceinvader [n=chatzill@wesnoth/artist/thespaceinvader] has joined #wesnoth-dev 20090622 11:23:03-!- AnMaster_ [n=AnMaster@unaffiliated/anmaster] has joined #wesnoth-dev 20090622 11:24:39-!- AnMaster [n=AnMaster@unaffiliated/anmaster] has quit [Connection timed out] 20090622 11:45:23-!- CIA-52 [n=CIA@208.69.182.149] has quit [] 20090622 11:50:45-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090622 11:53:41-!- CIA-53 [n=CIA@208.69.182.149] has joined #wesnoth-dev 20090622 12:10:54-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090622 12:11:05-!- loonybot [n=loonybot@79.139.137.147] has joined #wesnoth-dev 20090622 12:11:46-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["Tengo que ir... Yeahzorz..."] 20090622 12:11:58-!- loonycyborg [n=sergey@79.139.137.147] has joined #wesnoth-dev 20090622 12:14:16-!- euschn [n=chatzill@wesnoth/developer/euschn] has quit [Remote closed the connection] 20090622 12:31:26-!- euschn [n=chatzill@wesnoth/developer/euschn] has joined #wesnoth-dev 20090622 12:48:00-!- Crab_ [i=crab@wesnoth/developer/crab] has joined #wesnoth-dev 20090622 12:50:45< CIA-53> euschn * r36347 /trunk/src/ (7 files): removed gamestatus member from class unit (unused ctor parameter to be removed soon) 20090622 13:20:29-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["KVIrc 3.4.2 Shiny http://www.kvirc.net/"] 20090622 13:20:57-!- loonybot [n=loonybot@wesnoth/bot/loonybot] has quit [Remote closed the connection] 20090622 13:29:35-!- cib0 [n=cib@pD95F2B86.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090622 13:31:06-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090622 13:33:06< CIA-53> euschn * r36348 /trunk/src/ (10 files in 3 dirs): removed unused gamestatus parameter from unit ctors 20090622 13:40:51-!- MJS [n=MJS@pD95F2B86.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090622 13:40:59< MJS> hey 20090622 13:41:25< MJS> cib0, you actually should translate Latin texts now... 20090622 13:42:03< cib0> ^^ 20090622 13:44:09-!- MJS [n=MJS@pD95F2B86.dip0.t-ipconnect.de] has quit ["Verlassend"] 20090622 13:45:01-!- cib0 [n=cib@pD95F2B86.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20090622 13:51:53-!- BenUrban_ is now known as BenUrban 20090622 14:10:03-!- cib0 [n=cib@p5DD34307.dip.t-dialin.net] has joined #wesnoth-dev 20090622 14:10:13< CIA-53> euschn * r36349 /trunk/src/ (6 files in 2 dirs): removed gamestatus member from class attack 20090622 14:12:08-!- shikadibot_ [n=shikadi@wesnoth/umc-dev/bot/shikadibot] has joined #wesnoth-dev 20090622 14:13:27-!- happygrue__ [n=George@c-67-176-145-41.hsd1.in.comcast.net] has quit [Read error: 110 (Connection timed out)] 20090622 14:14:00-!- shikadibot_ [n=shikadi@wesnoth/umc-dev/bot/shikadibot] has quit [Client Quit] 20090622 14:19:36< CIA-53> euschn * r36350 /trunk/src/ (7 files in 2 dirs): removed unused gamestatus parameter from check_victory() 20090622 14:48:49< CIA-53> euschn * r36351 /trunk/src/ (9 files in 5 dirs): removed gamestatus member from ai::game_info and ai_default 20090622 14:52:20-!- AnMaster_ is now known as AnMaster 20090622 15:01:41-!- ilor_ [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090622 15:18:12-!- BenUrban [n=benurban@unaffiliated/benurban] has quit ["Power failu"] 20090622 15:20:42-!- ilor [n=user@wesnoth/developer/ilor] has quit [Read error: 110 (Connection timed out)] 20090622 15:40:44-!- stikonas [n=and@ctv-213-164-98-244.vinita.lt] has joined #wesnoth-dev 20090622 15:43:40< shadowmaster> http://www.phpbb.com/blog/2009/06/10/phpbb-306-plans/ 20090622 15:44:06< shadowmaster> sounds like more trouble coming this way. I'd better work on merging phpbb 3.5 on my git repository soon. 20090622 15:44:22< shadowmaster> *.0.5. 20090622 15:49:08-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090622 15:55:37-!- ilor_ [n=user@wesnoth/developer/ilor] has quit [] 20090622 16:04:46-!- cib0 [n=cib@p5DD34307.dip.t-dialin.net] has quit [Remote closed the connection] 20090622 16:07:32< CIA-53> euschn * r36352 /trunk/src/ (7 files): removed gamestatus member from classes attack_prediction_displayer, battle_prediction_pane, mouse_handler and menu_handler 20090622 16:25:07-!- shadowmaster is now known as shadowm_running 20090622 16:26:46-!- shadowm_running is now known as shadowmaster 20090622 16:28:56-!- crimson_penguin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090622 16:49:01< CIA-53> euschn * r36353 /trunk/src/ (8 files): removed gamestatus parameter from wml_animation(), do_replay() and do_replay_handle() 20090622 16:56:52< Ivanovic> hi 20090622 16:57:51< stikonas> hi :) 20090622 16:57:58< shadowmaster> ho 20090622 17:10:30-!- Crab_ [i=crab@wesnoth/developer/crab] has quit ["Leaving."] 20090622 17:15:48-!- ABCD [n=ABCD@wikipedia/ABCD] has quit [Client Quit] 20090622 17:16:15-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090622 17:24:42-!- cib0 [n=cib@p5DD34307.dip.t-dialin.net] has joined #wesnoth-dev 20090622 17:31:56-!- Doppp [n=aassdf@c-67-171-96-240.hsd1.pa.comcast.net] has quit [Read error: 110 (Connection timed out)] 20090622 17:40:06-!- ABCD [n=ABCD@wikipedia/ABCD] has quit [Read error: 104 (Connection reset by peer)] 20090622 17:40:20-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090622 17:40:34-!- shikadibot_ [n=shikadi@wesnoth/umc-dev/bot/shikadibot] has joined #wesnoth-dev 20090622 17:43:32-!- IAmShadowMaster [n=ignacio@146.155.81.90] has joined #wesnoth-dev 20090622 17:44:00-!- IAmShadowMaster [n=ignacio@146.155.81.90] has quit [Client Quit] 20090622 17:44:19-!- IAmShadowMaster [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090622 17:46:12-!- IAmShadowMaster [n=ignacio@wesnoth/developer/shadowmaster] has quit [Client Quit] 20090622 17:46:19-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090622 17:49:00-!- shikadibot_ [n=shikadi@wesnoth/umc-dev/bot/shikadibot] has quit ["Quitting (requested by shadowmaster via C:message)"] 20090622 17:59:41-!- Noyga [n=lame-z@wesnoth/developer/noyga] has joined #wesnoth-dev 20090622 18:09:14-!- wesbot changed the topic of #wesnoth-dev to: released 1.6.3, announcing "soon" | 1.7.1 planned for June 28 | 61 bugs, 242 feature requests, 13 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090622 18:10:34-!- ABCD_ [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090622 18:12:50-!- ABCD [n=ABCD@wikipedia/ABCD] has quit [Nick collision from services.] 20090622 18:13:08-!- ABCD_ is now known as ABCD 20090622 18:17:58-!- euschn [n=chatzill@wesnoth/developer/euschn] has quit [Remote closed the connection] 20090622 18:37:49-!- giusef [n=giusef@unaffiliated/giusef] has joined #wesnoth-dev 20090622 18:57:41-!- shikadibot [n=robored@wesnoth/umc-dev/bot/shikadibot] has quit ["Quitting (requested by shadowmaster via C:message)"] 20090622 18:58:01-!- shikadibot [n=robored@wesnoth/umc-dev/bot/shikadibot] has joined #wesnoth-dev 20090622 18:58:09-!- shikadibot [n=robored@wesnoth/umc-dev/bot/shikadibot] has quit [Remote closed the connection] 20090622 18:58:35-!- shikadibot [n=robored@wesnoth/umc-dev/bot/shikadibot] has joined #wesnoth-dev 20090622 19:01:08-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090622 19:01:24< mordante> servus 20090622 19:03:59< mordante> crab regarding r36338 was adding trunk/data/ai/scenarios/ai_arena_small/0003-simple_combat.cfg intended? 20090622 19:05:17< Soliton> anyone know gnuplot by chance? trying to plot several y values over one x (and have no clue of gnuplot so far). 20090622 19:07:58< mordante> corn__, around? 20090622 19:11:23-!- boucman [n=rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20090622 19:14:22-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090622 19:14:47-!- Doppp [n=aassdf@c-67-171-96-240.hsd1.pa.comcast.net] has joined #wesnoth-dev 20090622 19:14:57-!- mjs-de [n=mjs-de@vpw.wh.uni-dortmund.de] has quit [Read error: 113 (No route to host)] 20090622 19:25:41-!- loonybot [n=loonybot@79.139.137.147] has joined #wesnoth-dev 20090622 19:26:33-!- loonycyborg [n=sergey@79.139.137.147] has joined #wesnoth-dev 20090622 19:30:49< CIA-53> mordante * r36354 /trunk/src/gamestatus.cpp: Fix a compiler warning, corn please review. 20090622 19:30:52< mordante> corn__, ^ 20090622 19:35:21< boucman> hey all 20090622 19:38:27< mordante> hi boucman 20090622 19:44:21-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090622 19:45:21< ilor> mordante: quick update, just came back from an exam, what's left ahead of me is one oral exam tommorrow and that's pretty much it, assuming I pass 20090622 19:46:22< mordante> hi ilor 20090622 19:46:35< mordante> that sounds good 20090622 19:47:11< ilor> I'm generally planning to work for the better part of tomorrow's evening and well, work quite heavily during the following days 20090622 19:47:57< mordante> nice, you have time to discuss your planning tonight? 20090622 19:59:18< ilor> sorry, was forced afk, not much time tonight, need to study for tomorrow ;/ 20090622 20:00:04< ilor> mordante I'll generally look into creating a basic version of a gui2 lobby, knowing full well that a lot of the stuff will end up being replaced 20090622 20:00:58< mordante> ok 20090622 20:01:09< mordante> should we then talk tomorrow evening? 20090622 20:01:28< ilor> yes that sounds good 20090622 20:01:49< mordante> ok good luck tomorrow 20090622 20:01:51< ilor> nb if you have any suggestions right now feel free, I will respond eventually but with a slight lag ;() 20090622 20:02:37< mordante> sounds like a normal irc conversation ;-) 20090622 20:07:16-!- shadowmaster is now known as ChocolateMonster 20090622 20:12:36-!- ChocolateMonster is now known as shadowmaster 20090622 20:28:57< shadowmaster> meh, now university's IT subsite is definitively dead. I wonder what's next. 20090622 20:29:12< shadowmaster> *IT dept. 20090622 20:29:31-!- ABCD [n=ABCD@wikipedia/ABCD] has quit [Client Quit] 20090622 20:29:44< mordante> at least you still have internet... 20090622 20:29:58-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090622 20:30:26< shadowmaster> yup. 20090622 20:45:25-!- mjs-de [n=mjs-de@wh.uni-dortmund.de] has joined #wesnoth-dev 20090622 20:51:45-!- maxy [n=maxy@84-74-83-103.dclient.hispeed.ch] has quit [] 20090622 20:57:16-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090622 20:57:24< silene> hi 20090622 20:58:40< mordante> hi silene 20090622 21:11:06-!- Crab_ [i=crab@wesnoth/developer/crab] has joined #wesnoth-dev 20090622 21:11:16< Crab_> Dragonking: hello 20090622 21:11:36< Dragonking> Crab_: Hi! 20090622 21:12:21< Crab_> Dragonking: you wanted to discuss my recent ai changes today ? 20090622 21:12:49< Dragonking> Crab_: Just talk a bit about them. :) 20090622 21:13:23< Crab_> mordante: yes, adding 0003-simple_combat.cfg was intended 20090622 21:13:31-!- Dopppp [n=aassdf@c-67-171-96-240.hsd1.pa.comcast.net] has joined #wesnoth-dev 20090622 21:13:59< mordante> Crab_, also the name? especially the 0003 part 20090622 21:14:11< Dragonking> Crab_: As my goal before midterm eval, I would like to make a scenario which consis of some RCA for specialized units and my custom basic recruitment algorithm. 20090622 21:14:21< Crab_> mordante: yes 20090622 21:14:37< mordante> ok 20090622 21:14:57< Dragonking> Crab_: My SoC is more about formula AI and recruiting than about general AI improvement (but if it works out well, goor recruting algorithm will be improvement to the AI itself too) 20090622 21:16:17< Dragonking> Crab_: Usually I would make some RCA for units, and formula AI for a side and then fallback to default AI just after recruting is finished. But I know you tweaked things a bit and I wonder if there is a better approach now available? 20090622 21:16:47< Dragonking> Crab_: I recall you mentioned sometihng about actions for events or something along these lines? 20090622 21:17:22< Crab_> Dragonking: I'll start from the beginning (but I'll try to keep short, so, if needed, ask for more details) :) 20090622 21:17:30< Dragonking> sure:) 20090622 21:17:35< boucman> hey both of you :) 20090622 21:17:40< Crab_> boucman: yes ? 20090622 21:17:40< Dragonking> hi boucman 20090622 21:17:50-!- Doppp [n=aassdf@c-67-171-96-240.hsd1.pa.comcast.net] has quit [Read error: 110 (Connection timed out)] 20090622 21:17:51< boucman> just saying hellp 20090622 21:17:52< Crab_> boucman: ah, hi :) 20090622 21:18:02< Dragonking> boucman: How can we hellp you? ;p 20090622 21:18:28 * Dragonking stops fooling around 20090622 21:18:29< boucman> (I proofread your attack commit, btw not much to say except that documenting the content of the various ai context might be usefull since other users will need it) 20090622 21:19:05< Crab_> boucman: documentation will be done, but just after 1.7.1 release 20090622 21:21:13< boucman> ok... just mentionning 20090622 21:21:28< boucman> (hey I have to have some criticism from time to time :) ) 20090622 21:21:38< Crab_> boucman: np :) 20090622 21:22:20-!- silene1 [n=plouf@ASte-Genev-Bois-152-1-100-75.w86-203.abo.wanadoo.fr] has joined #wesnoth-dev 20090622 21:23:43< Crab_> Dragonking: so, my plan was to allow AI development to proceed quicker by doing the following steps 1) reorganize the AI code to allow us to have at least two independent AIs, sharing as much as we need. 20090622 21:23:44< Crab_> 2) make a batch testing framework to test ai-vs-ai results 3) make possible to construct AI from pieces (both c++ and formula ai based), to allow gradual improvements. 20090622 21:24:09< Dragonking> ok 20090622 21:24:51-!- silene [n=plouf@wesnoth/developer/silene] has quit [Read error: 110 (Connection timed out)] 20090622 21:26:30-!- silene1 is now known as silene 20090622 21:26:39< nickbp> will that framework also include providing a board state and seeing what the ai does for its next move 20090622 21:27:07< nickbp> (probably more predictable than ai-v-ai for one-move tests) 20090622 21:28:16< nickbp> (or is this already done i wouldnt really know) 20090622 21:28:49< Crab_> nickbp: yes, this is planned (via ai_arena_small map), but, unfortunately, a person has volunteered to write a patch to it to make just that thing, but he's since disappeared. 20090622 21:29:10< nickbp> ah ok 20090622 21:29:13< Crab_> Dragonking: so, I've started to create ai which is constructed from pieces. to do so, I needed a way for each piece to access ai-related stuff. 20090622 21:30:30< Crab_> Dragonking: this is done in formula_ai functions by including a reference to the ai in the constructor, and then using functions from it. I've done it in another way (my requrements were slightly different) 20090622 21:32:34< Crab_> Dragonking: I've made a group of classes called 'AAA_context', which contain the functions which are available for calling in the pieces which are 'in a particular context'. Each next context inherits from a weaker context. 20090622 21:32:55< Crab_> side_context < readonly_context < readwrite_context < default_ai_context < ... 20090622 21:33:30< Dragonking> ok 20090622 21:33:42< Crab_> so, If piece A inherits from default_ai_context, it has access to all the functions in default_ai_context, readwrite_context, readonly_context, side_context 20090622 21:34:11< Crab_> but, all those functions are pure virtual in the contexts. 20090622 21:35:31< Crab_> so, to avoid the need to implement them, we inherit from the corresponding AAA_context_proxy class, which implements them all as delegate calls to an actual context implementation 20090622 21:36:21< Crab_> for example, ai_default inherits from default_ai_context_proxy, which delegates all calls to default_ai_context functions to an implementation of default_ai_context, default_ai_context_impl 20090622 21:36:43< Crab_> so, for example, it can just call get_side(), and it'll work 20090622 21:36:52< Dragonking> I think I get the idea how it works 20090622 21:37:25< Crab_> this allows us, for example, to have ai_default use two different implementations of default_ai_context, if we want to 20090622 21:37:36< Crab_> since ai_default depends on a proxy, not on the actual implementation 20090622 21:39:20< Crab_> then, I've done a new ai, called composite_ai, which plays turn by executing each stage in a vector of 'stages' 20090622 21:39:44< Crab_> this ai is independent from actual implementation of stages 20090622 21:40:04< Crab_> one of the stages that I've done, is candidate_action_evaluation_loop stage 20090622 21:40:06< Dragonking> ok 20090622 21:40:23< Crab_> it uses candidate actions, but is also independent from actual implementation of candidate actions 20090622 21:40:39< Crab_> this allows to have both c++ and formula_ai based candidate actions in a same loop 20090622 21:40:43< Dragonking> Stages are executed one after another, when we run over whole vector, it is end of the "turn" ? 20090622 21:40:45< boucman> Crab_: ptr to the corresponding config file might help understanding 20090622 21:40:50< Crab_> Dragonking: yes 20090622 21:41:34< Crab_> to allow different ways of writing stages, candidate action and other stuff, I've introduced a concept of an 'engine' 20090622 21:41:36< Dragonking> Crab_: How do we build this vector? Speaking from point of view of campaign creator? 20090622 21:42:04< Dragonking> Crab_: And .cfg or wiki documentation available? 20090622 21:42:10< Dragonking> s/And/Any/ 20090622 21:43:13< boucman> Dragonking: it's a cfg, I'm looking for it as we speak 20090622 21:43:15< Crab_> Dragonking: source code is available :) and sample ai config is available - data/ai/dev/testing_ai_default.cfg 20090622 21:43:54< boucman> Dragonking: data/ai/dev/testing_ai_default.cfg 20090622 21:44:02< boucman> too slow 20090622 21:44:04< Dragonking> I though that it is aviable, hence my question ;) 20090622 21:44:08< Dragonking> thx 20090622 21:44:11< Crab_> Dragonking: but right now, please open src/ai/composite/ai.cpp 20090622 21:44:38< Dragonking> Crab_: open 20090622 21:44:48< Crab_> note that ai_composite constructor is empty - it is needed because during construction, the proxy is not initialized yet, so no access to the context is available 20090622 21:44:54< Crab_> all the init stuff is done in on_create 20090622 21:45:07< Crab_> get to the line // init the composite ai stages 20090622 21:45:38< Crab_> and, in parallel, look at the ai cfg 20090622 21:46:40< Crab_> for each stage, ai 'peeks' inside the [stage] WML tag, finds the "engine" which will parse that stage, and asks that engine to parse this stage 20090622 21:48:42< Crab_> for example if somebody will create a 'fai engine' with the ID of "fai", and writes a "[stage] engine=fai ... [/stage]" snippet in the composite_ai config, that will lead to fai engine being asked to create a stage from that config snippet. 20090622 21:48:54< Dragonking> So now you have one stage, made with cpp engine, consist of some candidate actions ? 20090622 21:49:23< Crab_> I have one stage, with engine=cpp (so, it'll be parsed by cpp engine), and name testing_ai_default::candidate_action_evaluation_loop 20090622 21:50:00< Crab_> cpp engine will create a stage from that snippet 20090622 21:50:14< Dragonking> Can you have [candidate_action] with engine=fai inside stage with enging=cpp ? 20090622 21:50:19< Crab_> yes 20090622 21:50:23< Crab_> please open src/ai/testing/stage_rca.cpp 20090622 21:50:40< Crab_> and see it's on_create 20090622 21:51:34< Crab_> it does the same thing: "for each [candidate_action] tag, peek inside it, find a corresponding engine, and ask that engine to add candidate action(s) to it's list of candidate actions 20090622 21:52:16< Dragonking> Great. 20090622 21:52:23< Crab_> so, the job of the engine is to 'be a factory of stages, candidate_actions, from cfg 20090622 21:52:43< Crab_> also note that engine is per-ai 20090622 21:53:31< Crab_> so, it can hold ai-specific state 20090622 21:54:02< Dragonking> Pretty neat. 20090622 21:54:02< Crab_> such as formula_ai instance, or function table instance, or anything else you desire 20090622 21:54:03< Dragonking> :) 20090622 21:54:25-!- Pietro_S [n=sobotkap@tom.bn-ulm.de] has joined #wesnoth-dev 20090622 21:54:33< Crab_> then, I've started to reimplement ai_default as a bunch of candidate_actions 20090622 21:55:28< Crab_> somewhen along the way, I've done a new set of ai::action functions (executed via readwrite_context ) (they're still beta quality) 20090622 21:55:41< crimson_penguin> Aw crap... not a big deal, but my new cmd+w shortcut is also used by the Cocoa code for close Window, which in this case is exactly the same as quit 20090622 21:55:50< Crab_> also, somewhen along the way, I've done an AI batch testing framework 20090622 21:56:17< Crab_> strangely, it consistently showed that formula_ai (without formulas!) is better than ai_default :) 20090622 21:56:23< Dragonking> Crab_: What is the state of this composite_ai ? Is this fully functional like default ai? 20090622 21:56:24< Crab_> mystery unsolved :) 20090622 21:56:24< boucman> Crab_: that you have still not updated :P 20090622 21:57:12< Dragonking> Crab_: Well, I meant if this compisite_ai can be now set up so it is functional like default AI of course. :) 20090622 21:57:14< Crab_> Dragonking: at the moment, composite ai is fully functional (it is not included in AI list so far, but it will be in 1.7.1 ) 20090622 21:57:46< Crab_> but, I've ported only 2/9 phases of ai_default so far (working on it) 20090622 21:57:56< Dragonking> I am thinking what kinf of approach to take and how to integrate my recruitmnt formula with rest of the AI 20090622 21:58:53< Crab_> Dragonking: the best way is, imo, is to wrap your recruitment formula as ai::candidate_action ( src/ai/composite/rca.hpp ) 20090622 21:59:25< boucman> Crab_: maybe you could integrate the recruitement phase next, so DK can easily replace it and have his own default+fai recruit AI 20090622 21:59:49< Dragonking> Crab_: In case of recruitment candidate action would be as a matter of fact, candidate action for a leader. 20090622 22:01:05< Dragonking> I would really want to make formula that can handle leader (and preferable it's possible leadership), but it is out of question before midterm eval, I'm already behing my shedule due to mess with my exams... 20090622 22:01:06< Crab_> Dragonking: in our current approach 'each candidate action returns >0 in evaluate if it wants to play, highest scoring action must play, and is allowed to make as many moves as desired' 20090622 22:01:50< Crab_> Dragonking: so, you can make it 'return >0 if leader can do something you want him to do' 20090622 22:02:00< Dragonking> Crab_: Yes, but for example I would need to make sure the I make action that 1) handles the leader so it is in a keep 2) recruit 20090622 22:02:46< Dragonking> It is easy, and I can do that, tho I would prefer to have recruitment done just instead of defaul AI recruitment 20090622 22:03:19< Crab_> Dragonking: well, you can take advantage of the fact that default_ai includes 'move_leader_to_keep' 20090622 22:03:20< Dragonking> Because I'm pretty sure that any formula for leader control that I write now will be worse than default_ai leader handling 20090622 22:03:32< Crab_> and I'll port it as candidate action, too 20090622 22:03:51< Dragonking> Crab_: ! 20090622 22:04:00< Dragonking> That is perfect 20090622 22:04:01< Dragonking> :) 20090622 22:04:17< Dragonking> Crab_: And BTW, really impressive work. 20090622 22:04:18< Dragonking> :) 20090622 22:04:58< Crab_> Dragonking: not finished yet. but It will allow us to progress fast once it's ready and set up (since we'll be able to do 'change,test,see if it is better or worse' stuff) 20090622 22:06:22< Dragonking> Crab_: Do you plan do add this move_leader_to_keep anytime soon? 20090622 22:06:29< Crab_> Dragonking: yes 20090622 22:06:47< Dragonking> Perfect, you make my life easier. :) 20090622 22:07:16< Dragonking> Crab_: Now, maybe I'll tell you what I plan to do now. 20090622 22:08:08< Crab_> Dragonking: ok. but first, I'll tell you about a certain gotcha 20090622 22:08:16< Dragonking> Yes? 20090622 22:08:25< Pietro_S> hello, in 1.7 when checking for lua package $luadir (lua.py) should contain path where lua binary is installed? in my case it's /usr/bin/ and then it's checking for $luadir/include/lualib.h which is in /usr/include/lualib.h - so it's not matching very well ... 20090622 22:08:40< Crab_> please open src/ai/default/ai.cpp:252 20090622 22:09:08< Crab_> note the "units_(context.get_info().units)," stuff 20090622 22:09:20< Crab_> note that units_(get_info().units) WILL segfault if used here 20090622 22:09:57< Crab_> that's because the proxy is not initialized at that point (it is initialized in init_default_ai_context_proxy(context); line below) 20090622 22:11:12< Dragonking> ok 20090622 22:11:31< Crab_> I do not initialize the proxy via proxy's constructor, because I want to keep proxy constructor argument-less (because of multiple inheritance with contexts - if proxy constructor had an argument, I'll need to explicitly construct all those proxies in each place where I inherit from them) 20090622 22:13:39< loonycyborg> Pietro_S: luadir is intended to be used with the windows distribution of lua. 20090622 22:14:04< loonycyborg> Pietro_S: On all sane platforms it shouldn't be needed. 20090622 22:14:22< Dragonking> Crab_: Ok, I think I follow. 20090622 22:14:26< Crab_> ok 20090622 22:15:13< Dragonking> Crab_: And as I understand calling simply get_info() _after_ init_default_ai_context_proxy is perfectly valid? 20090622 22:15:19< Crab_> yes 20090622 22:15:39< Dragonking> Makes sense. 20090622 22:16:04< Pietro_S> loonycyborg: thanks, I'll try to find why the reest of if is failing ;-) 20090622 22:16:08< Crab_> "do not call virtual methods in the constructor" applies, too :) 20090622 22:16:24< Dragonking> Hehe :) 20090622 22:16:55< Crab_> so, in all places other than the constructor (which should be empty - all init stuff is in on_create), get_info() is safe 20090622 22:17:16< Dragonking> Crab_: I do not plan doing some intrusive changes ar as a matter of fact any changes to the way how AI id initilaized ATM 20090622 22:17:22< Dragonking> Great. :) 20090622 22:18:30< Crab_> ok. I only warned to ensure that you do not waste time :) 20090622 22:18:37< Dragonking> Crab_: Right now I want to finish this work with RCA for formulas which I started some time ago but had no time ot finish. 20090622 22:18:48< loonycyborg> Pietro_S: Are you still packaging for OpenSolaris? I have it installed in VirtualBox now :P 20090622 22:18:51< Dragonking> Crab_: And I really appreciate that. :) 20090622 22:19:43-!- YogiHH [n=chatzill@d051181.adsl.hansenet.de] has joined #wesnoth-dev 20090622 22:19:49< Dragonking> Crab_: Then I would like to make on_fail formulas for formula AI - do you know what is concept of this? 20090622 22:20:07< YogiHH> hello 20090622 22:20:29< Crab_> Dragonking: I've read about it a few times on your wiki page 20090622 22:20:32< mordante> hi YogiHH 20090622 22:20:46< mordante> YogiHH, do you read the logs? 20090622 22:20:49< Dragonking> Crab_: Any opinion? 20090622 22:21:07< YogiHH> mordante: sort of, but i am mostly only searching for my name 20090622 22:21:30< Dragonking> Crab_: Cause I would like ot have it straight what we expect out of it and that we agree about it functionality and that it is needed. 20090622 22:21:32< Pietro_S> loonycyborg: cool ;-) 20090622 22:21:46 * Dragonking looks towards boucman too :) 20090622 22:21:50< YogiHH> except if i got some time to spare, i try to get an overview about things going on 20090622 22:21:52< mordante> ok, since I left you some messages since you seemed to have missed (regarding the yes/no button, but that's fixed now) 20090622 22:22:41< Crab_> Dragonking: please open src/ai/testing/ca.cpp 20090622 22:22:42< YogiHH> mordante: might be that i missed them. Do you refer to my tmessage fix? 20090622 22:23:01< Crab_> Dragonking: and scroll to combat_phase::execute 20090622 22:23:19< Pietro_S> loonycyborg: where do you have defined luaL_newstate() function? 20090622 22:23:28< Dragonking> Crab_: Done 20090622 22:23:28< mordante> YogiHH, yes, I posted a workaround patch before your commit, that patch still should be applied, but the cause has been fixed as well 20090622 22:24:06< Crab_> it has a minor logic bug now, but let's ignore this for a moment and consider the following: 20090622 22:24:31< Crab_> this is candidate action which has two chances to 'fail' during execution 20090622 22:25:00< Crab_> 1) 'unexpected error while moving the unit, gamestate not changed 20090622 22:25:05< loonycyborg> Pietro_S: In liblua*.so 20090622 22:25:31< Dragonking> Yes 20090622 22:25:32< Crab_> 2) there was no need to move, and there was unexpected error while attacking the enemy, gamestate not changed 20090622 22:25:43< Pietro_S> loonycyborg: no definition in header files? 20090622 22:26:03< Dragonking> Crab_: You mean that the possibility of infinite loop arises then? 20090622 22:26:29< Crab_> Dragonking: no, we MUST return false if gamestate not changed 20090622 22:26:34< Crab_> as in made_move 20090622 22:26:44< Dragonking> ok 20090622 22:26:59< YogiHH> mordante: so i can revert my fix for tmessage, then? 20090622 22:27:08< Crab_> but the question is: how do you write this in fai ? 20090622 22:27:11< mordante> YogiHH, I already did 20090622 22:27:13< Crab_> with on_fail 20090622 22:27:21< YogiHH> mordante: ah, good 20090622 22:27:25< loonycyborg> Pietro_S: Ah. In lua.h that is. 20090622 22:27:56< Pietro_S> loonycyborg: which line? I can find there only compatibility macro ... 20090622 22:28:03< mordante> YogiHH, did you already test whether blurring works correct now, I committed a real fix 20090622 22:28:08< Crab_> Dragonking: note that both can fail with the same error, such as 'attempt to act with not owned unit' 20090622 22:28:12< YogiHH> mordante: tbh, i read your message after returning from lunch, but a busy day wiped it out, somehow ;-) 20090622 22:28:27< Crab_> or just fail with generic 'oops!' :) 20090622 22:28:28< YogiHH> mordante: will do 20090622 22:28:55< mordante> YogiHH, no problem 20090622 22:29:36< YogiHH> mordante: actually, i wasn't quite sure if easy_close and auto_close were meant to address the same thing 20090622 22:30:07< mordante> YogiHH, yes they are (but I'm not happy with either name :-/ ) 20090622 22:30:17< Dragonking> Crab_: I think fai it would fail with differen errors - I was thining about making error=move and errval = code1 or code2 or whatever just to identify when it failed. 20090622 22:30:34< mordante> so rather find a good name instead of fixing one of the bad names 20090622 22:30:48< mordante> (but having two names for the same thing is bad) 20090622 22:31:05< YogiHH> mordante: i also intuitively thought that dialog was inheriting from window, until i found different 20090622 22:31:06< Crab_> Dragonking: imagine a candidate action with two moves, such as 'move in for backstab' stuff 20090622 22:31:08< loonycyborg> Pietro_S: It definitely has lua_newstate. Not sure how luaL_newstate appears though. 20090622 22:31:27< Dragonking> Crab_: Yes 20090622 22:32:07< Crab_> Dragonking: in that case, it can be 'error=move' in both cases :) 20090622 22:32:39< Crab_> Dragonking: also note src/ai/actions.cpp for gamestate-changing actions with stricter error reporting 20090622 22:32:54-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [Connection timed out] 20090622 22:32:58< mordante> YogiHH, yeah that might also be some confusion 20090622 22:33:01< Dragonking> Crab_: Yes, but Ive been thinking about more than that 20090622 22:33:47< Crab_> Dragonking: so, the question is: what will the syntax look like for on_fail with candidate action which does 'two moves' ? 20090622 22:35:18< Dragonking> Crab_: It depends on at which part it failed. 20090622 22:35:27-!- crimson_penguin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090622 22:35:36< Dragonking> Crab_: But I get your point 20090622 22:35:48< Crab_> well, if we want to catch both fails in a different way, what should we write ? 20090622 22:36:31< Pietro_S> loonycyborg: what about to use in lua.py : int main() { int pom = LUA_VERSION_NUM ; } for checking if lua is installed? 20090622 22:36:43< Pietro_S> loonycyborg: instead on check for that function ... 20090622 22:37:41< Crab_> second question: would it make sense to allow on_fail for non-fai candidate actions ?\\ 20090622 22:38:40< Dragonking> Crab_: Instead of answering all this now, let's brainstorm a bit. :) 20090622 22:38:46< Dragonking> Answers may come along. 20090622 22:39:03< loonycyborg> Pietro_S: I suppose that it's a good idea. 20090622 22:39:10< Dragonking> First, lat's thinking only about fai and possibility of fail for now. 20090622 22:39:18< loonycyborg> Pietro_S: But wesnoth uses LuaL_newstate too. 20090622 22:39:23< Crab_> Dragonking: see http://wesnoth.pastebin.com/m2ac386b 20090622 22:40:27< boucman> Crab_: can a fai on_fail be used on a non-fai move ? 20090622 22:40:31< boucman> i don't think so... 20090622 22:40:32< loonycyborg> Pietro_S: Perhaps try putting extern "C" { } around #include like wesnoth does. 20090622 22:40:41< Crab_> boucman: why not ? 20090622 22:40:54< Crab_> boucman: we can do this, if we want to 20090622 22:40:57< Dragonking> Crab_: cpp would need to set all stuff to identify error type etc 20090622 22:41:06< Dragonking> Question is if we really want to 20090622 22:41:12< boucman> 1) it's simpler to limit ourselves in that regrd because we have some fai context to provide to on_fail 20090622 22:41:24-!- cib0 [n=cib@p5DD34307.dip.t-dialin.net] has quit [Remote closed the connection] 20090622 22:41:37< boucman> 2) most likely the on_fail won't be related to the cpp part and won't know what to do anyway 20090622 22:41:51< Dragonking> Crab_: For your question - backstab formula would return something like that: 20090622 22:42:24< Dragonking> [ move( flanking_unit ....) , attack( backstabber.... ) ] 20090622 22:42:28< Pietro_S> loonycyborg: it already have extern C 20090622 22:43:34< Dragonking> Crab_: In that case, different handling of the error would be done in if( error=move, first unit failed to move, error=attack, second unit failed to attack ) 20090622 22:44:12-!- Polarina1 [n=polarina@85-220-18-216.dsl.dynamic.simnet.is] has joined #wesnoth-dev 20090622 22:44:13< Dragonking> Problem arises if we have formulas like [ move(...), move(..) ] and how to reckoginze what went wrong. 20090622 22:44:22< Dragonking> Different question is: 20090622 22:44:43< loonycyborg> Pietro_S: Hm? The test program in lua.py doesn't have it. 20090622 22:44:43< Dragonking> What can go wrong while moving so we have to consider it and write on_fail for it ? 20090622 22:44:50< boucman> Dragonking: ambush 20090622 22:44:56< Dragonking> boucman: Exactly 20090622 22:45:02< Crab_> boucman: why ambush is wrong ? 20090622 22:45:19< boucman> Crab_: no, ambush is the case where a move would fail and still not be a coding error 20090622 22:45:31< Crab_> boucman: ambush is not a fail :) 20090622 22:45:32< boucman> so probably what the on_fail wants to catch 20090622 22:45:39< Crab_> boucman: since the game state has changed :) 20090622 22:45:50< boucman> hmm 20090622 22:45:52< Dragonking> Crab_: Well, it is a fail becuase it invalidates need of 2nd move 20090622 22:46:04< boucman> then I think you and DK need to clear what a failure is :) 20090622 22:46:12< Crab_> Dragonking: yes. but, isn't it better to return to rca loop in this case? 20090622 22:46:29< Crab_> Dragonking: after all, this new info about ambusher can lead to some other candidate action being very good ? 20090622 22:46:31< Dragonking> Crab_: It is better to give up on 2nd move and return 20090622 22:46:43< YogiHH> mordante: yup, blur patch seems to work 20090622 22:46:48< Crab_> Dragonking: exactly. return true. 20090622 22:47:12< Pietro_S> loonycyborg: I meant that it's inside lualib.h so the test in lua.py has it 20090622 22:47:16< Dragonking> Crab_: How will you distinguish between ambush and coding error? 20090622 22:47:26< Dragonking> Result will be the same - unit did not reach dst. 20090622 22:47:58< Crab_> Dragonking: i don't care if it is ambush or coding error. I care about 'has game state changed?' 20090622 22:48:03< mordante> thanks for testing YogiHH 20090622 22:48:21< loonycyborg> Pietro_S: lualib.h on my system doesn't have extern "C" 20090622 22:48:22< Crab_> because in each turn, game state can change only a finite number of times 20090622 22:48:22< boucman> Crab_, Dragonking I'm not sure you're talking about the same thing 20090622 22:49:08< boucman> Crab_: from a AI designer point of view, failures that don't change the gamestate are bugs, and Dragonking (seen as a pur FAI developer) should not be concerned about these 20090622 22:49:27< loonycyborg> Pietro_S: But one on virtualized opensolaris does. Interesting.. 20090622 22:49:36< boucman> so I think on_fail is not meant to catch that sort of problems, these are engine-internal so to speak 20090622 22:49:56< mordante> I'm off night 20090622 22:50:23-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090622 22:50:23< YogiHH> night, mordante 20090622 22:51:42< Crab_> Dragonking: do you agree with boucman's last point? 20090622 22:52:35< Dragonking> Sort of yes. 20090622 22:52:49< Dragonking> For now there is one case that leads to not changed gamestate 20090622 22:52:53< Dragonking> Failed recruitment 20090622 22:53:20-!- Polarina [n=polarina@wesnoth/translator/Polarina] has quit [Nick collision from services.] 20090622 22:53:30-!- aditya [n=aditya@59.95.26.209] has joined #wesnoth-dev 20090622 22:53:31< Pietro_S> loonycyborg: more strange is that, lua package has only 1 patch and this patch couldn't change the extern (only forcing to use cc for compilation against gcc) ... 20090622 22:53:39< Crab_> Dragonking: why it can fail ? 20090622 22:53:40< aditya> hey, where can I submist a feature wish 20090622 22:53:57-!- Polarina1 is now known as Polarina 20090622 22:53:58< Dragonking> Crab_: No room to recruit, no gold to recruit. 20090622 22:54:10< Crab_> Dragonking: why then that candidate action returned >0 ? 20090622 22:55:05< loonycyborg> Pietro_S: Also, unlike opensolaris my gentoo system has lua.hpp which includes three lua headers between extern "C". 20090622 22:55:26< Crab_> Dragonking: or, do you intend 'on_fail' to compensate for 'incomplete' formulas in evaluation ? 20090622 22:55:43< Dragonking> A bit different 20090622 22:55:49< Dragonking> Crab_: You think only about RCA 20090622 22:55:58< Dragonking> Crab_: What about unit_loop_formulas ? 20090622 22:56:32< Dragonking> Or side move= formula ? 20090622 22:56:45< Pietro_S> loonycyborg: probably special patch on gentoo ;-) 20090622 22:57:03< Dragonking> on_fail would be very good way to handle problems in loop formulas 20090622 22:57:14< aditya> ... 20090622 22:57:53< Crab_> in unit_loop_formulas and side_formulas, on_fail can be, afair, emulated as 'if' precondition clauses 20090622 22:58:57< Crab_> such as 'if not enough space then move_to_other_keep elseif not enough gold loudly complain else recruit' (longer than that, this is an example) 20090622 22:59:16< Crab_> this is np, on_fail can be a better way to write this, I'm just asking 20090622 23:00:52< Pietro_S> loonycyborg: by the way wesnoth will go to official repos after build 120 - will start to user stdcxx instead of stlport4, in which I hope lot's of templates/boost problems will disapear ... 20090622 23:00:57< Crab_> so, do you intend 'on_fail' to compensate for 'incomplete' formulas by being optimistic ? (OPTIMISTIC: do something on_fail do something else VS PESSIMISTIC: "if (all possible failure modes checked) do_something" 20090622 23:01:26< Crab_> this can simplify the code in the cases where certain failure modes are rare enough 20090622 23:02:08< boucman> ...or reusable with macros 20090622 23:02:10< loonycyborg> Pietro_S: Which stdcxx? :) 20090622 23:02:40< Dragonking> Crab_: Sorry got distracted.. Well, on_fail would be formula that does something when defaul formula (even with many if statements and protections) somehow fails 20090622 23:02:42< Pietro_S> loonycyborg: apache's one, previously Rogue Wawe 20090622 23:03:01< Pietro_S> loonycyborg: and for version, it's latest (mnam, mnam( 20090622 23:03:44< Crab_> Dragonking: note that 'even with many if statements and protection' is limited to 1 action of each type (move,attack,...) 20090622 23:04:01< Crab_> else you have that case "oops, move failed, which of 144 ?" 20090622 23:04:03< boucman> hmmm 20090622 23:04:23< Dragonking> Good point. 20090622 23:04:24< Dragonking> :) 20090622 23:04:25< Crab_> imagine the formula "do all possible attacks, on fail do something" 20090622 23:04:35< Crab_> some of the possible attacks will fail, of course :) 20090622 23:04:55< Crab_> since each unit usually has many possible attacks 20090622 23:06:42< boucman> Dragonking: do you need the on_fail concept soon ? 20090622 23:06:59< boucman> because at that point, it seems to me that it needs to be thought more deeply 20090622 23:07:08-!- Pietro_S [n=sobotkap@tom.bn-ulm.de] has left #wesnoth-dev ["bye"] 20090622 23:07:14< boucman> in particular, not being able to know exactly what failed is a bit problematic 20090622 23:07:17< Dragonking> boucman: I get the same impression 20090622 23:07:22-!- gangil [n=gangil@117.98.60.4] has joined #wesnoth-dev 20090622 23:07:48< boucman> passing the failed move as a parameter might help, but I'm not sure you can extract usefull info from the move itself 20090622 23:07:58< gangil> Hi , I had a question regarding SDL_Net . can I ask in here? 20090622 23:07:59< boucman> /move/action to be consistant with our vocabulary 20090622 23:08:22< boucman> gangil: is it wesnoth related ? 20090622 23:09:08< boucman> and the action is only available if it's the result of a formula (so we limit ourselves to formula failures which might or might not be an issue) 20090622 23:09:12< gangil> boucman: no , but since I cant find help on #sdl I thought I could find some help here .. 20090622 23:09:14< Dragonking> ok, I'll put on_fail on hold for now. It may turn out that it won't really be needed in the end. :) 20090622 23:09:56< boucman> gangil: hmm, we are not very good at sdl_net, but IIRC the source code is very simple and readable (a couple of files at most) simplly debugging might be your best bet 20090622 23:10:19< boucman> Dragonking: :) and when you really need it you might have a better idea of it's use too... 20090622 23:10:53< Crab_> Dragonking: btw, another idea that I've thought about is the pluggable formula which will help the ai to select the 'unit to advance to' , and will be called 'in the event that the unit has advanced' 20090622 23:10:54< gangil> boucman: then which lib. is used for multiplayer in wesnoth.? 20090622 23:11:07 * gangil BOW is primarily in sdl 20090622 23:11:09< Dragonking> boucman: But consider two attack types.. formula that has purpose to attack unit mo matter what, we get [ attack(...), attack(..) ] and 2nd forrmula to attack and backstab [ attack, attack ] 20090622 23:11:25< Dragonking> Crab_: Great idea! 20090622 23:11:26< boucman> SDL_net, but it was done some time ago, and i'm not sure you will finde someone able to answer right away 20090622 23:11:37< boucman> (but you can alway ask your question of course) 20090622 23:11:54< Crab_> Dragonking: basically, this will be a piece of code that will be called 'in response to event' 20090622 23:12:00< gangil> How to know when SDLNet_TCP_Recv has no more data available, or how to specify timeout for it? (I tried using SDLNet_SocketSet() n then SDLNet_SocketReady() but didnt get expected results) 20090622 23:12:03-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090622 23:12:11< Dragonking> boucman: In first one, if 1st attack fails, it does no matter, in 2nd , it matters a lot and should block execution of 2nd attack. 20090622 23:12:39< boucman> gangil: i don't know but it was hell to get right :) 20090622 23:12:41< Crab_> Dragonking: attack_ignore_errors ? 20090622 23:13:06< boucman> gangil: read src/network_worker.cpp in the wesnoth code 20090622 23:13:10< Dragonking> Crab_: or on_fail=end in 1st and nothing in 2nd ;p 20090622 23:13:25< Crab_> Dragonking: yes 20090622 23:13:42< gangil> thanks boucman :) 20090622 23:13:49< Dragonking> And somehow on_fail in this case seems to be "cleaner" solution imho. 20090622 23:14:12< Dragonking> Crab_: Really, that is great idea to make AI lvlup smartly 20090622 23:15:30< Dragonking> One of things that I though about while considering on_fail was how to break chain of formulas written in [ .. ] if necessary. 20090622 23:17:13< boucman> Crab_, Dragonking, I have somehow the feeling that the problem is FAI specific... cpp has access to the result of actions as they go, so it's not an issue for a cpp based AI 20090622 23:17:17< boucman> do we agree on that ? 20090622 23:17:20< Crab_> Dragonking: note that 'make AI lvlup smartly' can take advantage of your recruitment work - since you already need to evaluate all possible unit types and their relative power, afaik 20090622 23:17:30< Dragonking> boucman: I agree. 20090622 23:17:33-!- giusef [n=giusef@unaffiliated/giusef] has quit [Read error: 60 (Operation timed out)] 20090622 23:17:41< Crab_> boucman: in cpp, I use 2 if statements to deal with each action I do. 20090622 23:17:49< Dragonking> Crab_: Yes. 20090622 23:18:02< Dragonking> Crab_: I need to refractor this code and then work on improving it. 20090622 23:18:08< Dragonking> That is purpose of my SoC. 20090622 23:18:09< boucman> yes, that's what I meant. so we agree it's FAI specific 20090622 23:18:17< Crab_> boucman: yes 20090622 23:19:17< Dragonking> Crab_: Just we should evaluate how good possible advancement will do against enemy on a given map. 20090622 23:19:19< boucman> and the problem only happens when a formula returns multiple moves... or do we also want to catch single action failures ? 20090622 23:20:02< Dragonking> boucman: I oryginally thought about it for multiple moves but came to conclusion that some more functionality may be handy sometimes. 20090622 23:20:21< Dragonking> It's not that I'm sure that it will be useful tho 20090622 23:21:01-!- aditya [n=aditya@59.95.26.209] has left #wesnoth-dev [] 20090622 23:21:27< boucman> hmm 20090622 23:21:42< Dragonking> Indeed. ;) 20090622 23:21:58< boucman> would it solve the problem if we called execute() repetitively until it returns no action ? 20090622 23:22:01< Dragonking> That's why I wanted to brainstorm tonight. :) 20090622 23:22:09< boucman> and stop the set of action of the first failure 20090622 23:22:27-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090622 23:23:15< Soliton> gangil: check src/network_worker.cpp; around line 230 is were data receiving is handled for example. 20090622 23:24:15< Crab_> one of the causes of the problem, is that in fai, actions evaluate 'by themselves' 20090622 23:24:27< Dragonking> boucman: I don't think I follow... you mean if we have [ action1 , action2, ... ] and action X fails then action X+1 will not be executed? 20090622 23:24:58< Crab_> so, it's not like do_action(action,on_success_callback,on_fail_callback), but just "action..." 20090622 23:25:30< Crab_> and so, it's hard to 'connect' fallbacks with actions 20090622 23:25:52< Crab_> s/fallbacks/on_fails 20090622 23:26:10< Dragonking> True 20090622 23:27:26< boucman> Dragonking: I'm just brainstorming ideas, on second thought, it would make writing actions too complicated 20090622 23:28:06< boucman> Dragonking: in the case of "ambush", my gut feeling is that whatever action caused the move is not invalid, and might not be the good one to reeavaluate what's going on 20090622 23:28:25< boucman> and just like humans it might be better to reeavaluate the current position from scratch, 20090622 23:28:49< boucman> would you have another game (as opposed to error) situation where we would need to catch up by the same formula ? 20090622 23:28:55< Dragonking> boucman: Imagine leadership formula that first moves unit then moves leader.. unit gets ambushed, if we don't take action, then leader gets ambushed too 20090622 23:29:57< boucman> Dragonking: agreed, but a generic "protect the leader" action would probably be better than a specific on fail that is tied to the ide that the unit with leadership is your leader 20090622 23:30:09< Crab_> boucman: Dragonking: note that there's not only ambush in play. 'new enemy unit detected' is a very common situation if ai honours shroud. 20090622 23:30:12< boucman> so again, an on_fail is probably not the best way 20090622 23:30:37< Dragonking> boucman: But I though about on_fail that only handles wheter we want to quit current candidate action on continue possible set of mvoes 20090622 23:30:49< boucman> Crab_: true, but again a reevaluation "from scratch" (which might return the same action btw) is probably the best thing to do 20090622 23:31:22< YogiHH> night everyone 20090622 23:32:18< Crab_> maybe add a new fai function to wrap actions, such as "do_required( formula_which_evaluates_to_action ) " ? 20090622 23:32:50< Crab_> or something like " do( formula_which_evaluates_to_action, on_fail_formula) " 20090622 23:33:20< Crab_> 'an optional wrapper' 20090622 23:33:53< Crab_> (which will just set on_fail parameters of the action, and return the action) 20090622 23:34:51< Dragonking> Well, I'm not sure it would adress issue with do( [ move, attack ] .. ) 20090622 23:35:43< Crab_> it can be made to complain :) and work only with do(move,onfail='return')+do(attack) 20090622 23:35:50< Dragonking> Problem is that we sometimes will want to execute all actions in [] no matter what, sometimes not 20090622 23:36:12< Crab_> use 'map' with do :) 20090622 23:36:34< boucman> how about do(
,,) 20090622 23:36:44< boucman> this way we can chain and test in any way we want 20090622 23:36:47-!- YogiHH [n=chatzill@d051181.adsl.hansenet.de] has left #wesnoth-dev [] 20090622 23:37:50< Crab_> Dragonking: can action evaluations be changed to return a ai::action_result variants ? 20090622 23:38:23< Dragonking> Crab_: And when we would use it? Before next possibl iteration? 20090622 23:38:24< Crab_> or some other 'result' ? 20090622 23:39:17< Crab_> Dragonking: if we have a 'execute all actions in []', it will have to be rewritten as 'foreach action in [], execute it and test the result' 20090622 23:39:57< Dragonking> Crab_: Well, exetute all actions in [] is current approach. 20090622 23:40:41< Dragonking> I can't find a reason why after executing everythong from [] we would need to test a result 20090622 23:40:55< Dragonking> tfu 20090622 23:41:00< Dragonking> Wrong 20090622 23:41:06< Dragonking> Sorry, misunderstood 20090622 23:41:06< Dragonking> :) 20090622 23:41:16-!- Noyga [n=lame-z@wesnoth/developer/noyga] has left #wesnoth-dev ["Quitte"] 20090622 23:41:46< Crab_> I was thinking about something like map([move,move,..,move],do(self,onfail='stop')) 20090622 23:42:23< Crab_> (syntax is probably wrong, but the idea is to use any version of on_fail on each of the [], instead of executing [] directly 20090622 23:42:58< Crab_> or execute_all([]) 20090622 23:43:05< Crab_> or execute_until_first_oops([]) 20090622 23:43:58< Dragonking> Last two proposals are easiest to implement and give needed functionality. 20090622 23:44:17< Crab_> and they are rather intuitive to use, too 20090622 23:44:19< Dragonking> execute all is not really needed 20090622 23:44:26< Dragonking> Since it is just like calling [] 20090622 23:44:29< Crab_> ok 20090622 23:45:18< Dragonking> execute_until_error( [ set of actions ] ) seems to be ok 20090622 23:46:33< Dragonking> Do we need to support [ execute_until_error( [ A, B, .. ), execute_until_error( [ AA, BB, .. ), .. ] ? 20090622 23:47:14< Dragonking> [ [ A, A] , [B, B ] ] is not supported 20090622 23:47:20< Dragonking> I guess we can ignore this. 20090622 23:49:49< boucman> ok, I need to leave, night all 20090622 23:49:54-!- boucman [n=rosen@wesnoth/developer/boucman] has quit ["Leaving."] 20090622 23:50:52< Dragonking> We can brainstorm about this tomorrow as well. :) 20090622 23:50:53< Dragonking> No rush. 20090622 23:51:10< Crab_> :) 20090622 23:51:27< Dragonking> I need to finish RCA for fai first, then I would like to add these .+ .- .* and ./ operators to make operations on lists easier for formulas 20090622 23:51:42< Crab_> ok 20090622 23:52:20< Dragonking> And then I will just dig into fai scripting to make sure recruting works and is quite good 20090622 23:52:23< Dragonking> :) 20090622 23:53:53< Crab_> ok. in the next days, I will move the rest of ai_default phases to ai_composite rca 20090622 23:54:35< Crab_> and I'll implement a simple fai_engine (which will just hide a formula_ai instance in it :) ) 20090622 23:54:48< Dragonking> I'll need to look at your testing scenario too, after midterm eval I'll most likely want to run some tests AIvsAI 20090622 23:55:07< Crab_> ok. 20090622 23:55:34< Dragonking> Before I just want to have running an re-organized recruting, then will come time to improve it 20090622 23:55:35< Dragonking> :) 20090622 23:56:19< Crab_> it's in utils/ai_test, but, as of now, it's not a latest version 20090622 23:56:32< Crab_> my edition uses a postgresql db with a web frontend to store/display results 20090622 23:57:37< Dragonking> Great 20090622 23:57:48< Crab_> but it's easy to modify it to use some other medium (or, I can just set up a db/website for you to use) 20090622 23:57:58< Crab_> see http://wesnoth.terraninfo.net/index.php?dim1=ai_ident_me&dim2=svn_release for example 20090622 23:57:59< Dragonking> I just finished classes about postgresql and had exam about it ;p 20090622 23:58:07< Crab_> hehe 20090622 23:59:21< Dragonking> Crab_: I'll for sure talk to you about that :) 20090622 23:59:45< Dragonking> I'd like to get some good data about games, and see how some changes affect outcomes --- Log closed Tue Jun 23 00:00:09 2009