--- Log opened Sun Mar 04 00:00:34 2018 20180304 00:40:33-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 248 seconds] 20180304 00:55:22-!- Bonobo [~Bonobo@61.68.207.231] has joined #wesnoth 20180304 01:45:03-!- vultraz [uid24821@wesnoth/developer/vultraz] has joined #wesnoth 20180304 02:15:46<+discordbot> why are the sprites so huge in 1.13 20180304 02:15:52<+discordbot> in the attack screen/faction selection 20180304 02:25:47<+discordbot> determine Dunefolk's unit name ? 20180304 02:32:21<+discordbot> dunefolk? what campaign era is that? 20180304 02:32:50<+discordbot> I'm trying to make my first campaign still too. I'll read over all this 20180304 02:35:30<+discordbot> The Khalifate were named to Dunefolk in 1.13.11. 20180304 02:35:34<+discordbot> *renamed 20180304 02:36:03<+discordbot> (I still don't understand OnigiriAlga's question though.) 20180304 02:36:37<+discordbot> oh sorry misread what was happening 20180304 02:36:57<+discordbot> will they still be called Dunefolk in the steam version? 20180304 02:37:09<+discordbot> Yes, because the Steam version will be from the 1.14.x series. 20180304 02:37:18<+discordbot> 1.13.11 is a beta for 1.14. 20180304 02:38:26<+discordbot> can we get the sprites to be a bit smaller for 1.14 20180304 02:38:35<+discordbot> they're almost comically big in some of the menus 20180304 03:10:29<+discordbot> In the menus? 20180304 03:10:34<+discordbot> Can you post an example? 20180304 03:11:03<+discordbot> hope screen dpi doesn't interfere with screenshot stuff 20180304 03:12:15<+discordbot> https://cdn.discordapp.com/attachments/231976805987385345/419693521315037195/unknown.png 20180304 03:12:19<+discordbot> as you can see 20180304 03:12:28<+discordbot> the sprite in the attack menu is at least 3 times bigger than the acutal sprite 20180304 03:12:58<+discordbot> and looks kind of silly since you can clearly tell it's something that was drawn at lower resolution and was just blown up 20180304 03:14:44<+discordbot> my campaign starts but without any units 20180304 03:15:42<+discordbot> I typed " [event] name=start {MOVE_UNIT id=Findol 30 6} first_timeonly="no" [filter] side=1 x,y=30,6 /filter speaker=unit #unit means the unit triggering this event--in this case the guy who just moved message= "Look at me! I'm on hex 30,6" /message [event] name=start {MOVE_UNIT id=Findol 30 6} 20180304 03:15:43<+discordbot> first_timeonly="no" [filter] side=1 x,y=30,6 /filter speaker=unit #unit means the unit triggering this event--in this case the guy who just moved message= "Look at me! I'm on hex 30,6" /message [event] name=start {MOVE_UNIT id=Findol 30 6} first_timeonly="no" [filter] side=1 x,y=30,6 /filter 20180304 03:15:43<+discordbot> speaker=unit #announcements t means the unit triggering this event--in this case the guy who just moved message= "Look at me! I'm on hex 30,6" /message 20180304 03:16:09<+discordbot> sorry I accidently posted that twice 20180304 03:16:16<+discordbot> Use ``` at the start and end of your code on Discord. 20180304 03:16:44<+discordbot> It should form a block like this. 20180304 03:17:12<+discordbot> is just paste binned the whole thing. https://pastebin.com/CxYZ97Ju 20180304 03:18:29<+discordbot> The [filter] tag in that start event does nothing. start does not take filter.s 20180304 03:19:16<+discordbot> Both start and prestart are global events and are completely independent of any unit action, so there are no units to be matched by filters (including that speaker=unit in the [message]). 20180304 03:19:51<+discordbot> first_time_only=no also doesn't do anything because by definition start and prestart are unrepeatable. 20180304 03:20:53<+discordbot> The only units you're defining are the leaders for the two sides, hence no other units. 20180304 03:21:41<+discordbot> I think that event on line 56 is supposed to be a moveto event. 20180304 03:21:59<+discordbot> Also that {MOVE_UNIT} macro does not do what you were probably thinking. It moves a unit. 20180304 03:22:20<+discordbot> It's not an event filter or anything of the sort. It's an action to be performed by the engine. 20180304 03:27:01<+discordbot> @shadowm oh,sorry The Khalifate were named to Dunefolk in 1.13.11. i know but, Arif,Hakim,jundi is renamed ? what is new name ? or not renamed ? 20180304 03:27:44<+discordbot> I have no idea, to be honest. 20180304 03:28:22<+discordbot> @Yumi what the hell, that's supposed to be XBRZ... 20180304 03:28:22<+discordbot> Looking at https://github.com/wesnoth/wesnoth/tree/master/data/core/units/dunefolk it's obvious they were named but I don't know who is who. 20180304 03:28:27<+discordbot> or, wait, no.. 20180304 03:28:30<+discordbot> not xbrz 20180304 03:28:35<+discordbot> I never got to making it zbrz 20180304 03:28:40<+discordbot> but it's supposed to be NN at least 20180304 03:28:42<+discordbot> that's not NN 20180304 03:29:00<+discordbot> at least, it doesn't look like NN 20180304 03:29:05<+discordbot> That looks like xBRZ to me. 20180304 03:29:36<+discordbot> It's not. I never got around to implementing the use of xBRZ in the unit preview pane because I couldn't figure out how to deal with non-standard sprites 20180304 03:29:41<+discordbot> this is just my opinion however 20180304 03:29:46<+discordbot> It's hard to tell because their screen seems not to be 96 dpi and mine is, so the framebuffer upscaling might be messing with my perception. 20180304 03:29:50<+discordbot> idk anyway 20180304 03:29:52<+discordbot> a little upscaling is fine 20180304 03:29:59<+discordbot> that much upscaling looks ridonculous 20180304 03:30:08<+discordbot> this list is official ? 20180304 03:30:11<+discordbot> I'm not changing it 20180304 03:30:15<+discordbot> Sorry 20180304 03:30:27<+discordbot> πŸ˜‘ 20180304 03:30:55<+discordbot> @OnigiriAlga It's the list of files. You can see the same list if you browse to data/core/units/dunefolk on version 1.13.11 or later. 20180304 03:31:39<+discordbot> So yes, it's official in the sense that it's exactly what ships with the game. 20180304 03:31:44<+discordbot> It would probably look better with XBRZ 20180304 03:31:53<+discordbot> but there's absolutely nothing wrong with NN scaling of pixel art 20180304 03:32:10<+discordbot> again, I am not telling you what to do 20180304 03:32:14<+discordbot> this is just my opinion and my feedback 20180304 03:32:18<+discordbot> however I think it looks quite bad 20180304 03:32:44<+discordbot> that doesn't mean you have to do something about it 20180304 03:33:04<+discordbot> I think it looks even worse to have a tiny little normal-sized sprite 20180304 03:33:34<+discordbot> right, but you are upscaling it many, many times over 20180304 03:33:41<+discordbot> I am not. 20180304 03:33:50<+discordbot> I don't want to argue about it, it's just feedback 20180304 03:33:51<+discordbot> it's 2x 20180304 03:33:58<+discordbot> you can do whatever you want with that feedback 20180304 03:34:12<+discordbot> mods += "~SCALE_INTO_SHARP(144,144)" + image_mods_; 20180304 03:34:14<+discordbot> I already gave you my proposition, which is upscale it a little less 20180304 03:34:26<+discordbot> That would look even worse. 20180304 03:34:47<+discordbot> (I think) 20180304 03:34:55<+discordbot> Since it wouldn't be whole-number scaling 20180304 03:35:07<+discordbot> perhaps NN can handle that alright. 20180304 03:35:39<+discordbot> you're the dev 🀷 20180304 03:35:49<+discordbot> No, not really. NN is only good for integer factors. 20180304 03:36:18<+discordbot> Otherwise you end up with a jumbled mess. 20180304 03:37:04<+discordbot> what is a sprite, but a miserable pile of pixels 20180304 03:37:17<+discordbot> Wow. 20180304 03:37:21<+discordbot> I guess it looks funny because it just takes the nearest color 20180304 03:37:38<+discordbot> I'm not sorry 20180304 03:37:39<+discordbot> so it stays blocky when upscaled 20180304 03:38:00<+discordbot> it's MEANT to stay pixel-y 20180304 03:38:06<+discordbot> There are plenty of non-pixel games out there if you have a problem with pixels Visage. πŸ™ƒ 20180304 03:38:13<+discordbot> XBRZ would look nicer, granted but again 20180304 03:38:15<+discordbot> vultrazzzzz 20180304 03:38:18<+discordbot> like I saiddddddddddddddd 20180304 03:38:20<+discordbot> I'm not a dev 20180304 03:38:21<+discordbot> you are 20180304 03:38:28<+discordbot> I haven not figured out the way to handle non 72x72 sprites 20180304 03:38:35<+discordbot> so I don't want to waste your time by repeating the feedback I already said 20180304 03:38:37<+discordbot> πŸ˜› 20180304 03:38:49<+discordbot> If I had a problem with pixels, I'd not be using a computer πŸ™ƒ 20180304 03:39:21<+discordbot> It's a Castlevania reference. Probably. 20180304 03:42:55<+discordbot> I started up 1.13 20180304 03:43:02<+discordbot> I see the new dune people names 20180304 03:43:15<+discordbot> at the very least they are easier to undertand. 20180304 03:44:05<+discordbot> actually someone else said that the big sprites still look okay 20180304 03:44:08<+discordbot> so maybe I'm just stupid 20180304 03:44:38<+discordbot> that's highly probable πŸ˜– 20180304 03:46:05<+discordbot> also possible you have a low-DPI screen where it doesn't look as great 20180304 03:47:30<+discordbot> it says 120 x 120 20180304 03:51:53<+discordbot> what says? 20180304 03:52:29<+discordbot> infobyip 20180304 03:54:51<+discordbot> That screenshot is definitely not 96 dpi Vultraz, I said that above. 20180304 03:55:01<+discordbot> smh 20180304 04:05:44< janebot> wesnoth: Does Wesnoth support asynchronous hotseat on the same turn via passwords? (by /u/cra2reddit) https://redd.it/81vg6e 20180304 04:08:19<+discordbot> are there people who play multiplayer on 1.13.11? 20180304 04:17:04<+discordbot> I cleared away all the extra code if you want to see what my first scenario is at now.https://pastebin.com/ZtqB1NAz 20180304 04:33:49-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 04:33:55-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 04:49:22<+discordbot> oh yeaaahhhhhh. I just fixed my code. I needed to add the cords within the side part 20180304 04:49:34<+discordbot> I just need to give the enemy lord it's cords 20180304 04:52:08<+discordbot> @Yumi I’ll say it because no one else did: Thanks for the feedback, you did bring it to our attention. πŸ˜ƒ 20180304 04:53:03<+discordbot> (Vultraz's attention, to be specific.) 20180304 04:53:22<+discordbot> (He's the one holding the GUI monopoly atm.) 20180304 04:57:11<+discordbot> mhmm 20180304 04:58:01<+discordbot> I suppose this merits looking more into what has changed into 1.13.11 20180304 05:09:20-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 05:09:32-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 05:42:13<+discordbot> are the graphics different in 1.13.11 20180304 05:42:23<+discordbot> For some units. 20180304 06:15:36-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 06:15:47-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 06:19:58<+discordbot> @Yumi what else is wrong? 😦 20180304 06:24:21<+discordbot> 1.13.11 is sooo fast 20180304 06:24:27<+discordbot> 😍 20180304 06:24:59<+discordbot> the buttons are a bit big for my liking but obvs this will depend on the person 20180304 06:26:12<+discordbot> having text appear on each debug command is a little annoying, it would be nice to have a way to turn it off 20180304 06:26:20<+discordbot> I haven't changed the button sizes for many releases 20180304 06:26:21<+discordbot> unless there is already, and I can't find it 20180304 06:26:22<+discordbot> πŸ€” 20180304 06:26:40<+discordbot> right, this is the first 1.13 version I've actually looked at 20180304 06:26:41<+discordbot> πŸ˜› 20180304 06:27:00<+discordbot> mein gott 20180304 06:27:10<+discordbot> but yeah, buttons nbd 20180304 06:27:14<+discordbot> the debug thing is more annoying 20180304 06:27:19<+discordbot> is there a way to turn off the messages? 20180304 06:27:34<+discordbot> I don't think so 20180304 06:27:48<+discordbot> hrr okay 20180304 06:28:32<+discordbot> it also seems that when tabbing in and out of 1.13 20180304 06:28:38<+discordbot> there is significant lag 20180304 06:28:56<+discordbot> so if I minimize wesnoth 1.13, I can't use any other program for a few seconds 20180304 06:29:42<+discordbot> odd 20180304 06:32:51<+discordbot> I am not a big fan of the introduction 20180304 06:33:00<+discordbot> in the help section 20180304 06:33:10<+discordbot> why so? 20180304 06:33:36<+discordbot> it is too comparative 20180304 06:33:59<+discordbot> Comparative in what way? 20180304 06:34:00<+discordbot> to other games 20180304 06:34:05<+discordbot> sry, was lagging after tabbing out 20180304 06:34:06<+discordbot> LOL 20180304 06:34:31<+discordbot> my opinion is that the game should not seek to describe itself as simple or complex 20180304 06:34:40<+discordbot> it should state what it is objectively 20180304 06:34:46<+discordbot> e.g. rules, gameplay, etc. 20180304 06:34:49<+discordbot> as objectively as possible 20180304 06:35:20<+discordbot> Has that text been rewritten recently 20180304 06:35:22<+discordbot> i don't tink it has 20180304 06:35:56<+discordbot> too late to rewrite it now but yeah, you're right 20180304 06:36:20<+discordbot> right, the string freeze 20180304 06:36:39<+discordbot> sorry, I should have looked at 1.13 earlier 😦 20180304 06:36:55<+discordbot> I will say that the two biggest annoying things right now are the debug messages 20180304 06:37:02<+discordbot> and the lag after minimizing the program 20180304 06:37:07<+discordbot> Yeah. At this point only extremely severe bugs are going to be fixed for 1.14.0. 20180304 06:37:27<+discordbot> I'll look into whether it's a problem on my computer or if it's the wesnoth 20180304 06:37:41<+discordbot> my guess is that it's the 1.13 version running since when I close it, everything is fine 20180304 06:38:14-!- celticminstrel is now known as celmin|sleep 20180304 06:40:43<+discordbot> @Yumi what do you think of the Glorious Ultra 4K HD Main Menu background in 1.13.11 20180304 06:41:04<+discordbot> well I'd like to test it on my 4k monitor 20180304 06:41:08<+discordbot> that I don't have here right now >_> 20180304 06:42:59<+discordbot> it does look shinier than the 1.12 version 20180304 06:44:43<+discordbot> I really like the 1.13, I just use 1.12 because I am more used to it and it is the stable release. 20180304 06:44:55<+discordbot> Though 1.13 looks great so far to me. 20180304 06:49:04<+discordbot> it's just nice that it's so fast 20180304 06:50:19<+discordbot> once upon a time, the old 1.0 version took me up to 15 minutes to load into the local game menu 20180304 06:50:45<+discordbot> 1.0? 20180304 06:50:59<+discordbot> or am I remembering the wrong one? 20180304 06:51:00<+discordbot> I had no idea you've been playing that long. 20180304 06:51:03<+discordbot> oh yah 20180304 06:51:06<+discordbot> 1.0 was released in 2005. 20180304 06:51:11<+discordbot> yup 20180304 06:51:35<+discordbot> it was 1.0. something 20180304 06:51:37<+discordbot> not the exact 1.0 20180304 06:51:48<+discordbot> Not much of a difference. 20180304 06:51:53<+discordbot> All of them came out during 2005/2006. 20180304 06:52:08<+discordbot> yah 20180304 06:52:27<+discordbot> actually the years are a blur in my head, but I remember numbers decently 20180304 06:52:56<+discordbot> I actually played an alpha version first since my friend didn't update his wesnoths regularly 20180304 06:53:07<+discordbot> but the one that was released when I started was 1.0.x 20180304 08:41:00-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth 20180304 08:46:57-!- cyphase [~cyphase@unaffiliated/cyphase] has quit [Ping timeout: 260 seconds] 20180304 09:12:09-!- octalot [~steve@178.115.129.13.wireless.dyn.drei.com] has quit [Ping timeout: 260 seconds] 20180304 09:15:57<+discordbot> <Π…car> I actually wonder which version was the first one I played 20180304 09:22:27<+discordbot> I started on version 1.4.6 20180304 09:22:46<+discordbot> I still remember it all 20180304 09:23:10<+discordbot> <Π…car> I remember just about everything aside from the version number 20180304 09:23:18<+discordbot> Played through the entirety of 1.5.x, 1.6.x, 1.7.x, 1.8.x, all the way upto 1.12.5 20180304 09:23:46<+discordbot> I checked the new forum UI 20180304 09:24:01<+discordbot> I love the new notifications and PM system 20180304 09:28:17<+discordbot> <Π…car> A quick look at the screenshots page of the wesnoth site makes me think I must've been playing since before 1.0... That's even longer than i thought 20180304 09:28:25<+discordbot> 1.6.x. 20180304 09:40:09-!- Bhoren [~Bhoren_wh@2a01:e0a:c:2150:3c8b:23a9:6d4c:2e94] has joined #wesnoth 20180304 10:16:15-!- cyphase [~cyphase@unaffiliated/cyphase] has joined #wesnoth 20180304 12:38:40-!- Haudegen [~quassel@178.115.237.87] has joined #wesnoth 20180304 13:17:50<+discordbot> Speaking about versions, sourceforge page with all wesnoth versions doesn't work 20180304 13:17:57<+discordbot> where can I find all the versions now 20180304 13:18:29<+discordbot> or maybe it is just a temporary sourceforge problem 20180304 13:33:13-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 13:33:19-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 13:53:40<+discordbot> probably 20180304 15:32:46<+discordbot> their twitter says the problem is resolved, at least 20180304 15:47:55-!- Bonobo [~Bonobo@61.68.207.231] has quit [Ping timeout: 252 seconds] 20180304 15:56:55<+discordbot> For now. 20180304 15:57:04<+discordbot> Hasn't SF been having periodic outages? 20180304 16:06:02-!- celmin|sleep is now known as celticminstrel 20180304 16:34:26<+discordbot> it has. 20180304 17:14:40-!- octalot [~steve@91.141.1.158.wireless.dyn.drei.com] has joined #wesnoth 20180304 17:26:37-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 17:26:43-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 17:30:05-!- hk238 [~kvirc@unaffiliated/hk238] has joined #wesnoth 20180304 17:50:27-!- Narrat [~Narrat@p5DCC6DD5.dip0.t-ipconnect.de] has joined #wesnoth 20180304 18:02:54<+discordbot> Nice 20180304 19:11:28-!- hk238 [~kvirc@unaffiliated/hk238] has quit [] 20180304 19:16:28-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 19:16:40-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 19:27:26-!- octalot [~steve@91.141.1.158.wireless.dyn.drei.com] has quit [Ping timeout: 255 seconds] 20180304 19:33:58-!- vultraz [uid24821@wesnoth/developer/vultraz] has quit [Quit: Connection closed for inactivity] 20180304 19:44:56-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 19:45:03-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 19:52:40-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 19:52:46-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 19:59:33-!- Haudegen [~quassel@178.115.237.87] has quit [Read error: Connection reset by peer] 20180304 20:09:19-!- Choicerer [b9bd700b@gateway/web/freenode/ip.185.189.112.11] has joined #wesnoth 20180304 20:21:34-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 20:21:40-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 20:26:44-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180304 20:26:54-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth 20180304 20:28:13-!- Haudegen [~quassel@178.115.237.87] has joined #wesnoth 20180304 20:34:59-!- hk238 [~kvirc@unaffiliated/hk238] has joined #wesnoth 20180304 20:35:43< hk238> within WML is it possible to generate evaluatable content? :o 20180304 20:35:58< hk238> *evaluable 20180304 20:36:19<+discordbot> sounds like [insert_tag] 20180304 20:36:57< hk238> for an example if you wanted to create encrypted content such that you would place the key inside a campaign, could you then create a file that only makes sense if you actually find the decryption key within the game? :O 20180304 20:38:18< hk238> I was thinking about it when playing LotI campaign, since the campaign data is plaintext, players can view the content even if they didn't perform the required tasks within the game or otherwise perform similar 'hacks' 20180304 20:38:50<+discordbot> I feel like that would be better suited for lua. 20180304 20:39:09< hk238> oh 20180304 20:39:19<+discordbot> How would you generate a key that couldn't just be found through browsing through the source code? 20180304 20:39:43< hk238> well there's probably a handful of schemes but they all require somehow transforming content 20180304 20:40:33< hk238> like for an example you could write a unit.cfg file and then transform it into gibberish with some encryption function and associated key, then save the encrypted content as a string, and then within the game you could have a function that attempts to de-encrypt the file, and if it seems to make sense, only then for an example summons the unit defined in the cfg file 20180304 20:41:15< Soliton> what would that accomplish? 20180304 20:41:15< hk238> like in the LotI campaign you have this 'code' where you've to.. push some levers in a specific order? or something like that. You could use such orders as a key 20180304 20:41:23<+discordbot> @adramolokh That's the exact same thing that DRM tries to do. hand the customer encrypted content and the decryption key, but try to make it impossible to find the key anyway. It would be just as much uphill battle for UMC authors as for movie copyright holders. 20180304 20:41:37< Choicerer> I don't believe you can use wesnoth lua code to modify any external files. 20180304 20:41:38< hk238> you could create content that's not accessible by simply viewing the files or editing the campaign files or is otherwise resistant to such hacks 20180304 20:42:13< hk238> doesnt need to actually modify files, just use some evaluated content.. as in no saving to disk required that way 20180304 20:42:23< Soliton> it wouldn't be resistant to such hacks since you would have to include the decryption key. 20180304 20:42:24<+discordbot> Implementing successful DRM in an open source game seems to be unwise and quite probably illegal. 20180304 20:42:51< Soliton> you'd just obfuscate stuff. 20180304 20:42:57< hk238> well that's an interesting aspect 20180304 20:42:57<+discordbot> I feel like, if you're looking to implement DRM or something like DRM, Wesnoth's WML and lua is a very poor environment to try to do that in. 20180304 20:43:17< hk238> soliton it's not the same obfuscation if you actually need the key 20180304 20:43:34-!- Choicerer [b9bd700b@gateway/web/freenode/ip.185.189.112.11] has quit [Quit: Page closed] 20180304 20:43:35< Soliton> not the same as what? 20180304 20:43:57< hk238> obfuscation although the goal is the same, usually obfuscation is just making code hard to understand.. or so I thought? 20180304 20:44:16< Soliton> yes and that is all you're going to accomplish. 20180304 20:44:30< hk238> are you saying that's then outside the scope of what lua can do? :o 20180304 20:44:53< Soliton> outside of the scope of what can logically be done. 20180304 20:45:01< hk238> that's of course false 20180304 20:45:10< hk238> but perhaps there's some sort of misunderstanding here 20180304 20:45:51<+discordbot> There's not really much that a campaign author can do to obfuscate campaign files without breaking the GNU GPL, given that unmodified source code must be distributed with binaries and I suppose obfuscated source code. 20180304 20:46:08< hk238> let's say I write this.. unit configuration file that specifies some supposedly obfuscated content. Then use some encryption scheme to convert the contents to a string 20180304 20:46:54< hk238> then in the game you push those levers in the correct order, the order in which you push them, acts as a key, you've a function that attempts to decrypt the stored string, and then for an example tries to create the unit that was thus stored 20180304 20:47:16<+discordbot> couldn't your supposed hacker read the WML logic to determine all possible outputs of the key? 20180304 20:47:18< hk238> of course you can't actually generate the unit without decrypting the string, although the thing that tries to do that can be activated, it wont have the proper results 20180304 20:47:37<+discordbot> What Pentactagon said. 20180304 20:47:42< hk238> pentarctagon certainly, but that may also be a very large number 20180304 20:47:59< hk238> you can also try every possible key combination for every possible encyrption scheme out there.. it just doesn't work 20180304 20:48:03<+discordbot> it can only be as large as the number of possible levers you put in your scenario 20180304 20:48:15<+discordbot> for playability, that can't be very large, or no one's going to bother 20180304 20:48:22< Soliton> so the user input is the decryption key? 20180304 20:48:26< hk238> well actually that's not exactly correct 20180304 20:48:46<+discordbot> also it'd be done as soon as someone posts the correct sequence somewhere 20180304 20:49:05< hk238> I mean for just order of levers pressed when each is pressed only once, you have n! possible orders.. 20180304 20:49:23< hk238> that's true, but by then someone has had to have figured it out authentically : ) 20180304 20:49:36<+discordbot> how many levers are you envisioning there being? 20180304 20:50:09< hk238> pentarctagon are you saying creating a scheme where you have a large enough number of possible keys is necessarily awkward? 20180304 20:50:18<+discordbot> yes 20180304 20:50:29<+discordbot> Effectiveness doesn't equate to legality, also. 20180304 20:50:39<+discordbot> Just make your code really hard to read. 20180304 20:50:47< hk238> it's certainly a challenge you'd need to overcome 20180304 20:51:16<+discordbot> you could certainly make the challenge have 10, 20, 50, etc levers 20180304 20:51:22<+discordbot> Or if you don't want unbreakable encryption you can just use a caesar cipher https://en.wikipedia.org/wiki/Caesar_cipher 20180304 20:51:27<+discordbot> but then who's going to bother even trying to solve it? 20180304 20:51:35<+discordbot> they guess the keyword 20180304 20:51:38< hk238> yeah that would be too awkward 20180304 20:51:57< hk238> I was actually thinking more of for an example along the lines that you could have.. well let's say 20180304 20:52:15< hk238> you could have petrified statues of gods' of some fantasy world, and you'd be asked to leave an offering at each statue 20180304 20:52:27< hk238> and you'd have to investigate the game lore to know which items to leave 20180304 20:52:33< Soliton> you could certainly use a hash function or equivalent to make it impossible to reverse engineer some puzzle by code reading. 20180304 20:52:42< hk238> so then you could have a large pool from which to draw the offering (number of available items) 20180304 20:53:14< hk238> and if you have like 4 statues and leave an offering at each of those.. 20180304 20:54:05< hk238> although I suppose you could still do the brute force solution by modifying WML content 20180304 20:54:43< hk238> but that's just an example that's not so awkward yet has a considerably large number of keys 20180304 20:54:50< Soliton> there's no way you can prevent a brute force solution. 20180304 20:55:17< hk238> D: 20180304 20:55:52< Soliton> well, as you say just make the number of possibilities big enough and it's not really an issue. 20180304 20:56:02< hk238> to prevent a brute force solution would be tricky for sure, but all that takes is text input and a regular password 20180304 20:56:27<+discordbot> You'd also need to upload any content pre-encrypted, otherwise anyone could open up your WML file and make it not encrypt it 20180304 20:56:43< hk238> that's correct of course 20180304 20:56:59< Soliton> that was the misunderstanding, he's not talking about DRM, he does not want to include the key. 20180304 20:57:13< hk238> ah I see Soliton. : ) 20180304 21:02:14< zookeeper> of course you could use a cipher function to obfuscate the value of any given WML key seeing how all key values are strings, but there's no way to do it for a whole block of WML with tags and all. 20180304 21:02:27< hk238> so then it would be doable with lua? But what about the legal issues? 20180304 21:02:45< hk238> oh 20180304 21:02:54< Soliton> i think the legal stuff was a tangent to drm. 20180304 21:03:18< zookeeper> but also the unit type parsing code would probably then chose on some of those key values which would be invalid in their obfuscated form. 20180304 21:03:25< zookeeper> s/chose/choke 20180304 21:03:51<+discordbot> There is still the fact that our add-on server requires all code, including scenario WML, to be available under GPL, in the form where the author works with it. 20180304 21:04:06<+discordbot> So, the unencrypted WML/Lua has to be available somewhere. 20180304 21:04:14<+discordbot> ^ 20180304 21:04:18< Soliton> well, you couldn't literally do it for unit types since you cannot create those on the fly. true. 20180304 21:05:04< hk238> hmm well that's unfortunate, but such is life.. 20180304 21:06:13< Soliton> i'm pretty sure you can implement a hash function and use it and the gpl does not care at all. 20180304 21:06:59< zookeeper> you could use the same principle in some limited fashion, for example maybe the correct lever order produces legible instructions for another puzzle or something like that. 20180304 21:07:56< hk238> right that would work, I was actually thinking something like doing this lever press thing that would summon some unit, that would just have conversation. As a thought experiment, from playing the LotI campaign, where you have a similar kind of thing happening. 20180304 21:08:04< hk238> without the encryption part :D 20180304 21:09:52<+discordbot> You could create a proprietary Wesnoth clone :p 20180304 21:10:11< hk238> since conversations could be stored as strings, that would certainly be possible within lua? although I dont know how it works exactly 20180304 21:10:27<+discordbot> then you'd probably need to write all code and do art from scratch 20180304 21:10:41<+discordbot> or as reasonably from scratch as possible 20180304 21:10:44< hk238> you could have something like... if the contents of the first string start with some word, then the game replays the rest of the conversation (just avoid displaying gibberish conversation) 20180304 21:12:09<+discordbot> some sort of if(hash(user_answer)==some_hardcoded_value) type of deal? 20180304 21:12:51<+discordbot> where the hardcoded value is the result of you running the hash function on the actual answer, ofc 20180304 21:13:47< hk238> right I guess 20180304 21:14:06< zookeeper> anyway, cases where you might legitimately want to hide something that well would be extremely rare. 20180304 21:14:58< zookeeper> certain kinds of easter eggs or super-secret rewards, basically. even then it's pretty dubious why you'd want to do it in the first place for that one specific thing but not for anything else. 20180304 21:15:16< hk238> the basic idea is to make some part of the lore unintelligible without first doing some correct thing in the game, so it's not so much about what happens in the game, but rather how it's stored and how it works mechanically. Certainly you could have the same effect without any encryption taking place 20180304 21:15:29< Soliton> any puzzle you don't want to be solvable by code reading. 20180304 21:15:35< hk238> yeah that's exactly what I was thinking though, zookeeper 20180304 21:16:06< hk238> pretty much in the realm of easter eggs :D 20180304 21:16:37< hk238> I mean I'm not doing anything for now, just a curiosity.. thought experiment something like that 20180304 21:16:40< zookeeper> Soliton, yeah, but why? if you don't hide the plot twists and end bosses and every other secret, why hide the solution to a puzzle? 20180304 21:17:57< Soliton> i suppose that depends on what kind of players you want to annoy. :-P 20180304 21:19:20< zookeeper> i guess. i'm not saying there wouldn't be legit uses for that idea, but... 20180304 21:19:22<+discordbot> you could also just write puzzles that are so convoluted that anyone trying to read it gets a big headache 20180304 21:19:25< Soliton> not the one's that just want the story spoilers but those that want to play it properly but do peak in the source to spoil puzzles. 20180304 21:19:35<+discordbot> unless they are truly dedicated to figuring out how you write your code 20180304 21:20:07<+discordbot> and to mess with people you can also give misleading variables names! 20180304 21:20:16< Soliton> @Yumi: you as the author may want to figure it out again after a month as well though. ;-) 20180304 21:20:16<+discordbot> like say you need to activate some orbs in a sequence 20180304 21:20:24<+discordbot> just name the blue orb "red_orB" 20180304 21:20:33< Ravana_> only realistic way I can see it is by not giving such addon to player, only hosting game with bot and having player join it to play 20180304 21:21:05< hk238> :D 20180304 21:21:12< Soliton> you get the scenario code as well then. 20180304 21:21:14<+discordbot> ik, it's not a real suggestion 20180304 21:21:16<+discordbot> πŸ˜› 20180304 21:21:38< Ravana_> not its Lua though 20180304 21:21:49< Ravana_> that is loaded from each client separately 20180304 21:22:50<+discordbot> Possible reason for use: Wesnoth: the murder mystery campaign 20180304 21:23:12< hk238> : ) 20180304 21:23:21<+discordbot> XD 20180304 21:25:07< zookeeper> ok, yeah, PvP scenarios where you want to disallow cheating by reading the code. that would be one usecase, although then you'd probably also want the correct puzzle solution to be randomized each time. 20180304 21:26:46< hk238> that murder mystery campaign would make a pretty good usecase, for an example if you solve some puzzle then you get a narrative on what actually happened, if you have correct solution, otherwise no narrative, or gibberish if you try to read the code for the narrative 20180304 21:27:28<+discordbot> and here I got called evil for making a puzzle with a randomized solution each time 20180304 21:27:37< hk238> :D 20180304 21:27:45<+discordbot> but now we're talking about it like something legit 20180304 21:27:51<+discordbot> ^o^ 20180304 21:28:17< hk238> you'd still need the correct key but you could have, for an example, the 'caesar cipher 20180304 21:28:26< hk238> ' version of the as the random solution 20180304 21:28:44< hk238> so the order of the key presses changes, but the actual key phrase doesn't, so you don't need to re-encrypt the content every time 20180304 21:29:01< Soliton> mainline campaigns have puzzles with randomized solutions. 20180304 21:29:10<+discordbot> which one? 20180304 21:29:20< Soliton> httt for example. 20180304 21:29:30<+discordbot> haven't played that in forever 20180304 21:29:52< Soliton> trow as well iirc. 20180304 21:30:07<+discordbot> I don't remember there being puzzles in trow hmm 20180304 21:30:23<+discordbot> maybe I just have the memory of a goldfish 🀷 20180304 21:30:37<+discordbot> well, for even more fun 20180304 21:30:51<+discordbot> it could be doable to make an MP scenario with randomized events as well 20180304 21:30:56<+discordbot> for like a clue-type game 20180304 21:31:50<+discordbot> so each time the scenario would select some events from an event bank and these would be used to generate the rest of the scenario 20180304 21:33:07< zookeeper> unless i'm forgetting something, i don't think anything in mainline campaigns really counts as a puzzle. liberty's "hide and seek" maybe qualifies. 20180304 21:34:09< Soliton> well, puzzle is perhaps overstating it. i mean the cases where you can find different stuff in temples or so. 20180304 21:34:37<+discordbot> okay yah I remember that 20180304 21:34:47<+discordbot> what I was referring to is I have a sequence of six glyphs that must be activated in order 20180304 21:34:53< Soliton> of course it's still easy to check a savegame to find out the random number... 20180304 21:34:54<+discordbot> and the order is randomized at the start of the scenario 20180304 21:35:20< zookeeper> sure, there's a few randomizations here and there. and the randomly chosen password in TB. 20180304 21:36:29< Soliton> same spirit IMO so i find it weird calling someone evil for a randomized puzzle. 20180304 21:36:46< Soliton> it's how it should be IMO. 20180304 21:36:57<+discordbot> probably because it's a randomized puzzle that only gives you auditory output 20180304 21:37:21<+discordbot> well, probably because the whole scenario is evil, but they were just joking, I think 20180304 21:41:57< hk238> hmm so in summary, there may be some legal issues involved possibly, depending on extent or purpose of encryption? As some text content wouldn't be saved in the same format the author was working on it? 20180304 21:42:39< hk238> but in terms of Lua and WML, you can't generate WML tags with lua, only key values? But key values can be used for things like map coordinates or storyline narratives or dialogue? 20180304 21:44:03< hk238> meaning that some forms of encryption would be technically possible, but not such that would generate entire scenarios or units which would require having WML tags as part of the encrypted content? :o 20180304 21:44:03<+discordbot> having hashed/encrypted/whatever WML tags sounds like a great way to break save files as well 20180304 21:45:26<+discordbot> keys you might be able to do as part of [set_variables] though 20180304 21:45:34<+discordbot> maybe 20180304 21:46:39< Soliton> you can only usefully encrypt the WML/Lua that is not needed at scenario start. 20180304 21:47:53<+discordbot> the puzzle is honestly the 'best' part of Silent Night 20180304 21:48:28<+discordbot> i.e. The only reprieve from a continuous chase. 20180304 21:48:36<+discordbot> encrypting lore text would still be useful, I guess 20180304 21:48:54<+discordbot> adramolokh, actually the things can walk through walls 20180304 21:48:56<+discordbot> so you do have a time limit 20180304 21:49:24<+discordbot> but if you played on easy likely you could finish it before they showed up 20180304 21:49:42<+discordbot> they actually started spawning in the walls 20180304 21:50:03<+discordbot> hmmm that's not supposed to happen... 20180304 21:50:11< Soliton> i think GPL wise the worst that can happen is that someone asks for the unencrypted source and you hand it to them. but i'm not a lawyer... 20180304 21:50:13<+discordbot> actually, why not 20180304 21:50:28<+discordbot> should be fine 🀷 20180304 21:50:32<+discordbot> that puts the limit to about seven turns 20180304 21:50:58<+discordbot> which is reasonable, given that you have three turns to figure out the sounds and four to piece them together 20180304 21:51:49< hk238> :D 20180304 21:53:02<+discordbot> Also, how did you beat Black Fire in 20 minutes? 20180304 21:53:06< zookeeper> there's no legal issue beyond the purely theoretical, as obviously no one's going to sue you or kick your add-on off the server for having an encrypted piece of text in it. 20180304 21:54:17<+discordbot> i bet speed 16 since no matter the diff for me it would be impossible on speed 4 xD 20180304 21:54:20< zookeeper> but on the other hand, it's not like the forum administration would censor people posting your secret decrypted piece of text in a nice little spoiler tag somewhere. 20180304 21:54:36< hk238> besidse someone would need to solve the puzzle before they could proove there's something encrypted in it (: 20180304 21:57:00<+discordbot> I think more people solely play than read code so the puzzle will probably be solved faster than cracked. 20180304 21:57:11< hk238> yeah that's true too 20180304 21:57:32< celticminstrel> You can generate WML tags in Lua. 20180304 21:57:38< celticminstrel> But WML tags are represented by tables. 20180304 21:57:55< celticminstrel> So if you want to encrypt a WML tag you need to serialize it first. 20180304 21:58:09<+discordbot> it doesnt matter how practical it would be but the idea sounds a bit ridiculous so it would probably fit in genesis... xD 20180304 21:58:48<+discordbot> I don't know how to encrypt things 20180304 21:58:59<+discordbot> adramolokh, I made the scenario 20180304 21:59:12<+discordbot> and I play very fast 20180304 21:59:46<+discordbot> just asking, which speed you usually use? 20180304 21:59:50<+discordbot> 3x 20180304 22:00:00< hk238> I don't know too muhc about encryption either, but essentially you have something like two functions, E and D, where E is more complicated and takes like a message and a key, so you have E(m,k) = c, or encrypted message and then you have D(c,k) = m , the plain text message 20180304 22:00:03<+discordbot> or 4x depending on my mood 20180304 22:00:14<+discordbot> oh ok, i used it for a while but seemed slightly too slow 20180304 22:00:37<+discordbot> Ah, I haven't beaten it at all yet 20180304 22:01:11< hk238> or two keys, private and public key 20180304 22:01:17<+discordbot> well i wouldnt be surprised if yumi played faster than me vs ai 20180304 22:02:09< hk238> wikipedia has a list of some encryption algorithms and there's also examples of their implementation at least on some of them 20180304 22:02:32< hk238> https://en.wikipedia.org/wiki/List_of_algorithms#Cryptography 20180304 22:08:08< hk238> good night : ) 20180304 22:08:10-!- hk238 [~kvirc@unaffiliated/hk238] has quit [] 20180304 22:16:12-!- Smedles [~quassel@CPE-58-174-142-202.mjcz1.woo.bigpond.net.au] has quit [Ping timeout: 248 seconds] 20180304 22:21:58-!- vultraz [uid24821@wesnoth/developer/vultraz] has joined #wesnoth --- Log closed Mon Mar 05 00:00:35 2018