--- Log opened Fri Feb 19 00:00:00 2016 20160219 00:10:28-!- gfgtdf [~chatzilla@f054055082.adsl.alicedsl.de] has quit [Quit: ChatZilla 0.9.92 [Firefox 44.0.2/20160210153822]] 20160219 00:24:33-!- Appleman1234 [~Appleman1@KD119104017111.au-net.ne.jp] has quit [Ping timeout: 240 seconds] 20160219 00:40:25-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20160219 00:41:08< shadowm> vultraz: I did so two days ago... 20160219 00:49:28< vultraz> shadowm: well now he has two 20160219 00:49:38< vultraz> shadowm: why did you not tell me? 20160219 00:51:08< vultraz> either way, I'm sure we didn't say the same things 20160219 00:51:11< vultraz> (hopefully) 20160219 00:55:21< shadowm> 20160216 23:29:04< shadowm> I've sent a PM to LordBob. 20160219 00:55:26< shadowm> 20160216 23:29:24< shadowm> It only took me one minute to write it, surprisingly. 20160219 00:55:29< shadowm> 20160216 23:30:02< shadowm> Yes, I'm asking him about button graphics. 20160219 00:55:42< shadowm> 20160216 23:19:33< vultraz> some refactoring required, then 20160219 00:56:00< vultraz> .....wha???? 20160219 00:56:13< shadowm> https://www.wesnoth.org/irclogs/2016/02/%23wesnoth-dev.2016-02-16.log 20160219 00:56:16< shadowm> 21:55:43 20160216 23:19:33< vultraz> some refactoring required, then 20160219 00:56:19< shadowm> 21:55:23 20160216 23:29:04< shadowm> I've sent a PM to LordBob. 20160219 00:57:14< vultraz> I didn 20160219 00:57:16< vultraz> t see that 20160219 00:57:27< vultraz> must've been away 20160219 01:00:28< vultraz> and since it took me considerably longer than a minute to write mine, I can only assume it has more substance 20160219 01:01:26< shadowm> http://pastebin.com/RmuBKVLa 20160219 01:02:02< vultraz> ok 20160219 01:02:20< shadowm> You can read really fast. I'm impressed. 20160219 01:02:21< vultraz> so svg specifically 20160219 01:02:52< vultraz> it's not much to read 20160219 01:13:37-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Ping timeout: 240 seconds] 20160219 01:14:10-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160219 01:22:16-!- Appleman1234 [~Appleman1@KD119104018024.au-net.ne.jp] has joined #wesnoth-dev 20160219 01:23:16-!- gfgtdf [~chatzilla@f054055082.adsl.alicedsl.de] has joined #wesnoth-dev 20160219 01:23:47< gfgtdf> celticminstrel: you said hotkey on titltescreen worked for you at current master? Otherwise i'd merge 606 20160219 01:31:32< vultraz> they do for me but I think he might have been referring to custom hotkeys 20160219 02:05:53-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160219 02:08:48< celticminstrel> gfgtdf: I didn't test hotkeys specifically. 20160219 02:10:55< celticminstrel> Other prefs loaded, at least. Font scaling, orbs, friends list - the things I was fiddling with, basically. 20160219 02:11:01< celticminstrel> I never even looked at hotkeys. 20160219 02:12:16< celticminstrel> Should I merge 603 or wait for someone to look at it again? 20160219 02:15:33-!- louis94 [~~louis94@91.178.240.95] has quit [Ping timeout: 240 seconds] 20160219 02:36:29< gfgtdf> celticminstrel: i saw no issues with it while looking at the diff, no objections from me 20160219 02:36:34-!- gfgtdf [~chatzilla@f054055082.adsl.alicedsl.de] has quit [Quit: ChatZilla 0.9.92 [Firefox 44.0.2/20160210153822]] 20160219 02:54:18-!- un214 [~un214@2602:306:ce4c:2ec9:56a0:50ff:fe57:101d] has joined #wesnoth-dev 20160219 02:55:34-!- irker847 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20160219 03:04:34< shadowm> 20160218 19:16:58< vultraz> ancestral: I noticed with only DVS in the family order list, 7 languages in the Language dialog don't have glyphs, while with the whole list, there are only 2 20160219 03:04:47< shadowm> (Don't ask me, I'm just the messenger.) 20160219 03:11:45< ancestral> vultraz: Which ones? Chinese, Chinese Simplified, Korean, Japanese is four. Arabic is five. Shavian is six. 20160219 03:14:28< ancestral> vultraz: Anyway, the number doesn’t matter. Because each translation can choose one font and its needs are satisfied. 20160219 03:15:50< ancestral> The only downside is if a system default handles fallback well, and for add-ons with languages that aren’t present in the user’s language, it wouldn’t render in DVS, instead, in some kind of sans-like appearance 20160219 03:19:49< ancestral> (I would argue the system default should handle fallback just fine, as it should fallback to whatever language you chose it to be, and I sincerely doubt anyone will have a system default that doesn’t support most of the Latin alphabets.) 20160219 03:20:02< ancestral> (And that were the case, you probably have larger problems on your hands.) 20160219 03:20:58< ancestral> (That is, if it didn’t.) 20160219 03:22:00< ancestral> Again, only real downside, a CJK user will see the UI and text in English add-ons as slightly different since it wouldn’t be using DVS 20160219 03:22:41< ancestral> Droid !== DVS !== Arial !== Helvetica 20160219 03:40:53-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160219 03:44:49-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 240 seconds] 20160219 03:44:49-!- wedge010 is now known as wedge009 20160219 03:44:58-!- iceiceice [~chris@wesnoth/developer/iceiceice] has joined #wesnoth-dev 20160219 03:46:14 * celticminstrel looks at the implementation of the Lua candidate actions. 20160219 03:46:26< celticminstrel> This is terrible. 20160219 03:46:37< celticminstrel> Why did they do it like this. 20160219 03:47:01< celticminstrel> Why is there a location= key. 20160219 03:47:25-!- un214 [~un214@2602:306:ce4c:2ec9:56a0:50ff:fe57:101d] has quit [Read error: Connection reset by peer] 20160219 03:48:18< iceiceice> celticminstrel, people who made the lua api didn't really know lua api all that well, methinks 20160219 03:48:38< celticminstrel> It's building up a code string from user-supplied data. 20160219 03:49:17< iceiceice> celticminstrel, if you really want read code that will make your head explode, you should look at the WML preprocessor sometime 20160219 03:50:09< celticminstrel> I hope this doesn't mean it's recompiling the Lua code every time the candidate action is evaluated. 20160219 03:51:16< iceiceice> this stuff i find truly bizarre: https://github.com/wesnoth/wesnoth/blob/master/src/serialization/preprocessor.cpp#L600 20160219 03:51:36< iceiceice> celticminstrel, where do you think it is recompiling stuff? 20160219 03:51:47< iceiceice> i remember looking at the LUA CA stuff once briefly but i dont remember seeing that 20160219 03:52:17< celticminstrel> It might not be - it generates the code string in the constructor and passes it to something else that I haven't yet looked at. 20160219 03:54:47< celticminstrel> Huh, I thought Lua candidate actions had evaluate= and execute= for inline code... 20160219 03:57:04< celticminstrel> Sorry, evaluation= and execution=. 20160219 03:57:20< celticminstrel> But the code and the new wiki page make no mention of this. 20160219 04:00:12< celticminstrel> Yeah, okay, it's only compiling it once. 20160219 04:02:28< celticminstrel> I'm not really sure what to do about this. 20160219 04:03:40< celticminstrel> I want to replace exec_parms= and eval_parms= with [exec_args] and [eval_args], which is decidedly nontrivial in the current flow as it would require translating the WML to a Lua table and the turning that table into a code string.. 20160219 04:04:45< celticminstrel> It's curious that Lua candidate actions require an external Lua file, unlike Lua actions which require inline Lua. 20160219 04:08:01< celticminstrel> Why do evaluate and execute have to be separate blocks of Lua whateverness? 20160219 04:10:37< celticminstrel> It seems that the create action handler routine compiles the code and stores it in an internal table; the actual action routine class stores only a reference to the lua_State and the index of the action in the internal table. 20160219 04:12:14< celticminstrel> I guess that's reasonable, but by having separate evaluate and execute actions, the code is duplicated. 20160219 04:12:35< celticminstrel> Maybe it's not really duplicated. It's loaded with require(). 20160219 04:12:39< celticminstrel> I dunno, 20160219 04:14:01< Aginor> hey everyone, I've been having an internet outage for the last day or so, and I'm not quite sure how much longer it will take until they manage to fixwhatever wiring problem there is. I will be checking email, but I won't be participating very actively until I've got my main internet connection back. Cell phone data sucks and is really expensive here. 20160219 04:15:08< iceiceice> ah that sucks 20160219 04:15:21< iceiceice> do your best to resist the urge to hack your neighbors' wifi passwords :p 20160219 04:17:26< Aginor> I can probably social engineer it instead 20160219 04:17:43< Aginor> something like "hey, our internet is down, can we use yours?" :D 20160219 04:18:49 * Aginor idsappears again 20160219 04:49:04-!- Kwandulin [~Miranda@p200300760F0BC50105A737A8C56B38FD.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160219 05:55:11< vultraz> ancestral: I'm not sure what they are, actually :P 20160219 05:57:35< vultraz> I know two. Full list, with displayed names otherwise: "Englisc", Shavian, "Fanti Zhongwen", "Hangugeo", "Jianti Zhongwen", "Marathi", and Japanese. 20160219 06:13:32< ancestral> vultraz: #1 Old English (0 translated strings, lolwut?) #2 Shavian (think English, but funky Alphabet) #3 Chinese (Trad or Simple) #4 Korean #5 Other Chinese #6 Marathi (Indian) #7Japanese 20160219 06:14:15< ancestral> Marathi has 13% of 1.12 translated, enough for 48th place 20160219 06:23:16< ancestral> Shavian is 31%, but… how many people actually use Shavian in the world? Less than 100? 20160219 06:24:03< ancestral> Excuse me, 50% (it’s really just an alphabet) 20160219 06:29:03< ancestral> shadowm: Please tell me a good reason we have Old English and Friulian as language options 20160219 06:47:11< iceiceice> ancestral, why shouldn't we 20160219 06:47:16< iceiceice> if people did the work to translate them 20160219 06:48:57< vultraz> because apparently both of them have no translated strings 20160219 06:56:21< iceiceice> hmmm 20160219 06:56:22< iceiceice> how can that be 20160219 06:56:38< iceiceice> i thought we had a bunch of old english 20160219 06:56:53< iceiceice> did all the campaign text change in minute ways or something :/ 20160219 06:57:19< iceiceice> maybe our i18n infrastructure is just broken or something 20160219 06:57:34< iceiceice> that sounds like a possibility worth considering :/ 20160219 07:04:53< ancestral> iceiceice: The concern I believe vultraz, celticminstrel and I share is there is a lack of completeness with many of the translations 20160219 07:05:27< ancestral> If we get on Steam, there’s no way we can truly say we have over 40 translations 20160219 07:05:52< ancestral> The Arabic translation doesn’t have all the main menu buttons translated 20160219 07:06:15< iceiceice> if you delete all the half finished translations though 20160219 07:06:16< vultraz> ancestral: fwiw espreon believes we should only advertise uh... Spanish and French 20160219 07:06:19< iceiceice> then there wont be any more i guess 20160219 07:06:28< iceiceice> idk i mean 20160219 07:06:34< ancestral> iceiceice: We wouldn’t delete them 20160219 07:06:35< iceiceice> its important that translators are able to see their work in the game i think 20160219 07:06:42< vultraz> iceiceice: i believe the plan was to just remove them from stable releases 20160219 07:06:46< iceiceice> hmm 20160219 07:06:50< ancestral> Just hide them from the Languages button until they’re mature 20160219 07:06:50< iceiceice> yeah thats a good compromise 20160219 07:06:55< vultraz> if the completion is less than 50% 20160219 07:08:52< ancestral> https://gna.org/bugs/?func=detailitem&item_id=15633 20160219 07:08:58< ancestral> This guy has a point 20160219 07:09:06< ancestral> iceiceice: I know shadowm doesn’t necessarily agree, but I do think it’s deceiving to offer partial and very lacking translations 20160219 07:10:13< vultraz> ancestral, iceiceice: further, I would propose that any translation that remains at 0% for more than a year after introduction be removed 20160219 07:10:35< ancestral> vultraz: The only bad thing is people who have add-ons in other languages would have issues 20160219 07:10:54< iceiceice> ancestral, i guess we don't realistically supported translated UMC content though 20160219 07:11:10< ancestral> Yeah? 20160219 07:11:14< ancestral> Okay 20160219 07:11:17< iceiceice> it doesn't really work i mean 20160219 07:11:22-!- Alduin_ [~Alduin@2001:4ca0:0:f255:fda7:d9bf:e69d:dc1a] has joined #wesnoth-dev 20160219 07:11:26< iceiceice> its this whole MO file business 20160219 07:12:06< iceiceice> if you want to send your translations to other people, you have to be able to provide MO files for every targetted arch 20160219 07:12:14< iceiceice> and most people cannot do that 20160219 07:12:29< iceiceice> wescamp, iiuc, was basically some big script that was made 20160219 07:12:36< iceiceice> to do that, for all the translations in some list 20160219 07:12:39< ancestral> Anyway, if the day comes where Wesnoth gets on Steam… 20160219 07:12:45< ancestral> Wesnoth needs to have polish 20160219 07:12:49< iceiceice> yeah 20160219 07:12:54< ancestral> The community may die by bad reviews 20160219 07:13:04< ancestral> And thrive by goodones 20160219 07:13:36< vultraz> ancestral: once you finish that trailer, we can move ahead with that 20160219 07:14:06< vultraz> it's not really a question of "if the day comes" 20160219 07:14:08< ancestral> “Played Wesnoth, seeing they say they supported Arabic. Not one scenario was in Arabic. 0/10.” 20160219 07:14:24< vultraz> true dat 20160219 07:14:29< ancestral> vultraz: I have time Saturday 20160219 07:14:47< ancestral> I hope to have a draft with vid caps 20160219 07:15:00< ancestral> vultraz: There’s got to be way more steps to getting on Steam 20160219 07:15:13< vultraz> ancestral: oh, yes 20160219 07:15:23< ancestral> Or maybe these disucssions are happening and I’m just not aware of them ;-) 20160219 07:15:48< vultraz> back in oh, 2013? 2014? or something, I was trying to make it happen 20160219 07:15:57< vultraz> but the trailer requirement stopped us 20160219 07:16:02< ancestral> Okay 20160219 07:16:09< vultraz> We've already concluded that we sadly cannot use steamworks ATM 20160219 07:16:40< ancestral> vultraz: If people really want it, they can help implement it! 20160219 07:16:49< vultraz> licensing, apparently 20160219 07:17:06< iceiceice> i think steamworks is not a priority 20160219 07:17:08< iceiceice> b/c 20160219 07:17:12< vultraz> also the SDK is behind an NDA, which I personally don't see a problem with but apparently it is. 20160219 07:17:18< iceiceice> multiplayer experience is still in shambles afaik anyways 20160219 07:17:41< ancestral> vultraz: Anyway, there are so many people that played Wesnoth once upon a time 20160219 07:17:46< iceiceice> you guys should definitely remove the whiteboard in 1.14 imo 20160219 07:17:48< ancestral> And they would play it again, if it was on Steam 20160219 07:18:35< ancestral> Like it or not, we need a theme with bigger text. 20160219 07:18:43< ancestral> (I’m willing to help with that.) 20160219 07:19:25< vultraz> iceiceice: I agree 20160219 07:19:39< iceiceice> i played a large amount of multiplayer games last week :p 20160219 07:19:47< ancestral> iceiceice: How is mp bad 20160219 07:19:47< iceiceice> the whiteboard is super unstable 20160219 07:19:49< ancestral> ? 20160219 07:20:07< iceiceice> like if you turn it on at all you are very likely to crash 20160219 07:20:19< iceiceice> or more likely, cause an ally to crash 20160219 07:20:26< iceiceice> all the code around the networked whiteboard is fucked somehow 20160219 07:20:29< vultraz> ancestral: for one, the lobby interface kinda sucks. 20160219 07:20:37< ancestral> Fair 20160219 07:20:47< iceiceice> basically any game gets constantly spammed with "server: ignoring unexpected whiteboard messages" 20160219 07:21:01< vultraz> We don't have 'profiles', which is kinda confusing 20160219 07:21:18< vultraz> Because we basically ask people to create a server account 20160219 07:21:23< vultraz> With a password 20160219 07:21:32< ancestral> This isn’t too unlike EU4 or CK2 20160219 07:21:33< iceiceice> actually if we could disable those messages 20160219 07:21:36< iceiceice> that would be a huge improvement 20160219 07:21:39< vultraz> in order to... reserve a nick? 20160219 07:21:52< ancestral> Popular multiplayer strategy games, that also have a tendency to crash 20160219 07:21:53< vultraz> we don't track stats 20160219 07:21:55< vultraz> wins 20160219 07:21:58< vultraz> or anything 20160219 07:22:02< iceiceice> whats eu4 / ck2 20160219 07:22:12< ancestral> As most strategy games do not 20160219 07:22:38< ancestral> iceiceice: Europa Universalis and Crusader Kings 20160219 07:22:41< ancestral> Paradox games 20160219 07:22:43< iceiceice> forgive my ignorance :) 20160219 07:22:44< vultraz> for some reason we list EVERYONE in the lobby 20160219 07:22:49< vultraz> which should be removed, IMO 20160219 07:22:55< vultraz> especially if we expect more people 20160219 07:23:02< ancestral> vultraz: If there starts being 100s, yeah, perhaps? 20160219 07:23:03< vultraz> what kind of MP game lists everyone in a lobby 20160219 07:23:23< ancestral> So here’s my question 20160219 07:23:27< ancestral> (s) 20160219 07:23:53< ancestral> What features/bugs need to be added/removed/fixed before Steam release? 20160219 07:24:14< ancestral> What needs to happen before a Steam release (besides a trailer) project/codewise? 20160219 07:24:30< vultraz> ancestral: the other major hurdle for a Steam release is licensing 20160219 07:24:39< vultraz> specifically copyrights 20160219 07:24:47< ancestral> With what? 20160219 07:24:59< ancestral> Everything is GPL, is it not? 20160219 07:25:06< vultraz> yes 20160219 07:25:20< vultraz> I mean like how individual files are Copyrighted to their authors 20160219 07:25:40< iceiceice> thats how like every open source project works 20160219 07:25:41< ancestral> Is that an issue? 20160219 07:25:49< vultraz> so technically any of them could file a DMCA takedown 20160219 07:25:57< iceiceice> yeah 20160219 07:26:06< iceiceice> thats good, thats how we know people wont steal our shit :) 20160219 07:26:09< ancestral> If you dual license it, it has two licenses 20160219 07:26:19< vultraz> we want a unified copyright to the project 20160219 07:26:25< vultraz> not to individuals 20160219 07:26:35< iceiceice> i think many programmers would not agree to that 20160219 07:26:35< ancestral> vultraz: If someone wants to go through the hassle of doing a DMCA takedown, they have bigger issues 20160219 07:26:49< iceiceice> who represents "the project" 20160219 07:26:56< iceiceice> who is "the project" 20160219 07:27:04< ancestral> vultraz: So what do you propose? 20160219 07:27:08< iceiceice> because who that is would have the authority to relicense it as closed source 20160219 07:27:13< iceiceice> if they hold the copyright 20160219 07:27:21< ancestral> It’s already been licensed as GPL 20160219 07:27:23< vultraz> Wesnoth Inc, probably. 20160219 07:27:30< vultraz> we don't intend to change the GPL license 20160219 07:27:31< iceiceice> thats a bad idea 20160219 07:27:32< ancestral> You can have two licenses, but you can’t erase the GPL licensed version 20160219 07:27:40< vultraz> it will always be GPL 20160219 07:28:10< iceiceice> vultraz, wesnoth inc is not particularly committed to the gpl it seems 20160219 07:28:22< vultraz> just that the copyright would be held by the project 20160219 07:28:30< vultraz> I don't know exactly how this would be implemented, though 20160219 07:28:33< ancestral> My only wish is the art and music goes to CC, but wayyyyyyyyyy easier said than done 20160219 07:28:44< vultraz> so take what I say with a grain of salt 20160219 07:28:47< iceiceice> ancestral, actually i think we should consider like, 20160219 07:28:50< vultraz> ancestral: that was discussed 20160219 07:28:51< iceiceice> changing the notes on the addon server 20160219 07:28:55< iceiceice> so that people can use CC addon content 20160219 07:29:09< iceiceice> because afaik no one thinks that is against the gpl 20160219 07:29:24< ancestral> Technically, the add-ons don’t have to be GPL, just GPL compatible 20160219 07:29:30< ancestral> Well 20160219 07:29:32< iceiceice> i dont think they even have to be gpl compatible 20160219 07:29:36< ancestral> Ugh, maybe 20160219 07:29:42< iceiceice> i mean 20160219 07:29:46< vultraz> ancestral: now you see why this is a hurdle :) 20160219 07:29:49< iceiceice> the way other people seem to think about it is like 20160219 07:30:07< iceiceice> "if you bring gpl code into your tree, or if you link with a gpl library then you must also be gpl" 20160219 07:30:13< iceiceice> but like, 20160219 07:30:19< iceiceice> putting a CC image next to a GPL image 20160219 07:30:25< ancestral> vultraz: Do you have a check list, or priority list of Things That Need To Get Done Before We Can Get On Steam? 20160219 07:30:27< iceiceice> i dont think that breaks any rules 20160219 07:31:21< vultraz> ancestral: not presently, but I *think* we can move ahead with a greenlight submission as soon as the trailer is done. 20160219 07:31:27< ancestral> Okay 20160219 07:31:37< ancestral> I suppose we’ll learn from Greenlight 20160219 07:31:38< ancestral> Also 20160219 07:31:46< ancestral> Good chance we’ll get help during Greenlight 20160219 07:32:39< vultraz> Someone tried to upload wesnoth unofficially to greenlight before, BTW 20160219 07:32:50< vultraz> we'll need to make it clear this is the "official" submission 20160219 07:33:08< ancestral> Yeah 20160219 07:33:14< vultraz> and we'll also need some splash art 20160219 07:33:41< ancestral> Is there money to commission/pay someone for it? 20160219 07:33:51< vultraz> yes 20160219 07:34:21< vultraz> I can't go into details, but we have sufficient funds. 20160219 07:34:29< ancestral> vultraz, shadowm: Okay, here’s where I stand. I will have some sort of draft for the trailer on or by Sunday. I am off 2/28 and 2/29, so I plan on being done by the end of the month. 20160219 07:34:51< ancestral> I want some time for people to critique and criticize 20160219 07:35:02< ancestral> There could be another draft in between 20160219 07:36:36< ancestral> Obviously this doesn’t have to be the last trailer, or the last versio 20160219 07:36:39< ancestral> *version 20160219 07:39:04< ancestral> https://twitter.com/Frodosynthesiss/status/680271178439733248 20160219 07:39:11< iceiceice> vultraz, why is it such a problem that anyone can file dmca 20160219 07:40:06< ancestral> I would assume if Artist X didn’t want their shit in the project, they would ask first 20160219 07:40:40< vultraz> iceiceice: we don't want some long-dead dev coming back and demanding we take wesnoth off steam because they don't approve of the use of their code 20160219 07:41:07< iceiceice> aka rusty russell? 20160219 07:41:23< ancestral> vultraz: Are there precedents to DMCA takedowns for code? 20160219 07:41:31< iceiceice> i dont think that was the right lesson to learn from the rusty russell thing 20160219 07:42:08< vultraz> the what now? 20160219 07:42:31< ancestral> s/to/of 20160219 07:42:41< iceiceice> hmm... was this before your time and you didn't read the history? :p 20160219 07:42:52< ancestral> I remember this 20160219 07:43:01< vultraz> iceiceice: I don't remember this :P 20160219 07:43:10< iceiceice> it was definitely before my time :) 20160219 07:43:47< iceiceice> ancestral, i think github has a special place to make DMCA takedown requests 20160219 07:43:56< ancestral> But, for code? 20160219 07:44:03< iceiceice> but idk if its actually done on like steam 20160219 07:44:05< ancestral> Art, music, I get it 20160219 07:44:08< iceiceice> but for github i mean surely its for code 20160219 07:44:15< ancestral> Intellectual property? I get it. 20160219 07:44:17< vultraz> ancestral: who knows what people will want 20160219 07:44:27< vultraz> ancestral: better to take measures beforehand than wait 20160219 07:44:30< iceiceice> any copyright abuse can be addressed by dmca takedown 20160219 07:44:31< ancestral> Some guy’s networking code? How do you prove that? 20160219 07:44:35< vultraz> and be caught up in some legal battle 20160219 07:44:45< ancestral> I mean, what’s the motivation either? 20160219 07:45:03< ancestral> For going DMCA I mean 20160219 07:45:03< iceiceice> ancestral, i mean if there were no way to prove it then it wouldnt be possible to enforce GPL at all 20160219 07:45:22< ancestral> I meant to prove someone else owns snippets of code 20160219 07:45:37< vultraz> ancestral: there's a copyright at the beginning of every file 20160219 07:45:58< ancestral> I guess I don’t see how there’s a problem, but I’m not a lawyer 20160219 07:46:19< iceiceice> the normal way this works is like, 20160219 07:46:30< iceiceice> each person writes code and shares with eachother 20160219 07:46:36< iceiceice> and they all agree to assemble it under some terms of sharing 20160219 07:46:41< iceiceice> but you own the code you write 20160219 07:46:43< iceiceice> its copyrighted to you 20160219 07:46:47< iceiceice> its not like you are working at a 9-5 20160219 07:46:51< iceiceice> and the code is copyrighted to the company 20160219 07:46:52< ancestral> If you’re concerned, if Wesnoth has some money to get legal advice in this area, maybe that should be considered 20160219 07:47:14< iceiceice> and yes in a normal OSS project, if some of the devs steal the code and go against the license, 20160219 07:47:17< iceiceice> they can be sued by the other devs 20160219 07:47:31< iceiceice> if that weren't the case then most FOSS projects wouldn't really work 20160219 07:47:38< ancestral> From what I’ve heard, very few cases regarding the GPL have wound up in court 20160219 07:47:46< ancestral> (Hearsay, absolutely) 20160219 07:47:53< iceiceice> the DMCA means that 20160219 07:47:56< iceiceice> not only can you file a suit, 20160219 07:47:58< ancestral> Not saying it can’t happen, but likely it would be other things 20160219 07:48:01< iceiceice> you can file an immediate takedown notice 20160219 07:48:03< iceiceice> to the ISP 20160219 07:48:09< ancestral> Like, you stole money too 20160219 07:48:10< iceiceice> and the ISP has to respect that 20160219 07:48:14< iceiceice> sort of 20160219 07:48:21< iceiceice> idk i mean, the dmca abuse is a real issue 20160219 07:48:25< ancestral> Just… with code? 20160219 07:48:30< iceiceice> but making it so that no one holds copyrights nay more 20160219 07:48:32< ancestral> That part just seems suspect 20160219 07:48:36< iceiceice> and its like a corporate project, 20160219 07:48:50< iceiceice> i dont see that that even fixes the dmca abuse issue necessarily 20160219 07:48:57< iceiceice> and it breaks alot of other things 20160219 07:49:25< iceiceice> if you aren't going to pay people a salary you cant ask them to sign over copyright to their code 20160219 07:49:31< vultraz> iceiceice: I see nothing wrong with having code to copyrighted to 'the Battle for Wesnoth Project' 20160219 07:49:39< ancestral> If you are worried people will DMCA Wesnoth, then either don’t worry until it happens, or… 20160219 07:49:39< iceiceice> i do 20160219 07:49:46< ancestral> rewrite 20160219 07:49:53< ancestral> What other options are there? 20160219 07:50:08< vultraz> none 20160219 07:50:17< ancestral> Here’s the thing 20160219 07:50:29< ancestral> Wesnoth makes some money from the iOS App Store 20160219 07:50:37< ancestral> If someone wants to DMCA, they would do it now 20160219 07:50:43< ancestral> Because $$$ 20160219 07:51:02< ancestral> If Wesnoth goes on Steam… it’s not selling for $$$, am I correct? 20160219 07:51:43< ancestral> It all boils down to money. 20160219 07:51:58< aeth> ancestral: What if someone just hates Steam? 20160219 07:52:20< ancestral> aeth: They will DDoS them before they will DMCA them 20160219 07:52:24-!- boucman_work [~jrosen@bob75-2-81-56-46-209.fbx.proxad.net] has joined #wesnoth-dev 20160219 07:52:24-!- boucman_work [~jrosen@bob75-2-81-56-46-209.fbx.proxad.net] has quit [Changing host] 20160219 07:52:24-!- boucman_work [~jrosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160219 07:52:35< aeth> DMCAs are legal though 20160219 07:52:57< ancestral> Normally, people who hate things don’t take legal actions against it unless money is involved 20160219 07:52:59< iceiceice> even if they dmca thoguh 20160219 07:53:01< vultraz> ancestral: as of now, there aren't any plans to charge for wesnoth on steam 20160219 07:53:01< iceiceice> it doesnt really matter 20160219 07:53:08< iceiceice> unless we did something wrong, the dmca will go away 20160219 07:53:16< iceiceice> it is only a minor inconvenience 20160219 07:53:23< ancestral> ^ 20160219 07:53:23< iceiceice> and it is also extremely unlikely to happen at all 20160219 07:53:32< aeth> Charging for Wesnoth on Steam wouldn't make any sense unless the version on Steam had more features which can't be done because of the GPL. 20160219 07:53:46< aeth> At least, it can't be done with the GPL as long as no one entity holds all of the copyright. 20160219 07:53:58< vultraz> aeth: well, there are some other reasons, but I don't think I'm allowed to go into them here 20160219 07:54:01< ancestral> Tales of Maj Eyal charges on Steam, but, I agree with the others. Keep it free on Steam. 20160219 07:54:53< ancestral> But again, people don’t just take out DMCAs and win unless there’s motive 20160219 07:55:05< vultraz> for now, let's focus on getting on greenlight 20160219 07:55:13< vultraz> then we'll have to resolve these other issues 20160219 07:55:17 * vultraz off to dinner 20160219 07:55:31< ancestral> I still think it’s worthwhile to have a checklist of things to do 20160219 07:55:47< ancestral> People will do them if they need to get done 20160219 07:55:58< ancestral> Or people will just wait around until someone says something 20160219 07:58:01< aeth> ancestral: Step one is to rewrite the engine to support Vulkan because Valve is pushing Vulkan and being the second major game rewrite to Vulkan would really get Wesnoth through Greenlight. 20160219 07:58:04< ancestral> Languages, whiteboard, licensing, copyrights, GUI… 20160219 07:58:05< aeth> :P 20160219 07:58:23< ancestral> aeth: Just write everything in the Source engine 20160219 07:58:44< aeth> Source is... old. Everything feels like 2003 in it. 20160219 07:58:48< ancestral> Soruce 2 20160219 07:58:51< ancestral> *Source 20160219 07:59:01< aeth> Source 2 is probably Vulkan glued onto the 2003 codebase :p 20160219 07:59:18< aeth> If Source 2 were really new it wouldn't be that easy to port all of Valve's games 20160219 07:59:21< iceiceice> port wesnoth to source 2 engine? 20160219 07:59:27< ancestral> I’m joking 20160219 07:59:31< iceiceice> :p 20160219 07:59:56< ancestral> Has anyone built Wesnoth on Valve’s OS? 20160219 08:00:00< ancestral> Steam OS 20160219 08:00:08< ancestral> That needs to work 20160219 08:00:20< aeth> hmm, interesting, Source is actually a 2004 engine. It probably still seems like a 2003 one :p 20160219 08:00:39< ancestral> The design is older than the release 20160219 08:00:40< iceiceice> man i wanna play half life now :) 20160219 08:00:48< aeth> ancestral: If Wesnoth can run on Ubuntu it should be able to run on Steam OS with no problems. 20160219 08:00:56< ancestral> It should 20160219 08:01:03< ancestral> I’m asking if anyone has ;-) 20160219 08:01:32< ancestral> (aeth: We should be able to handle comma-separated lists of fonts correctly, but apparently that’s not the case) 20160219 08:03:45< ancestral> BTW I think this is my favorite Wesnoth mention on Twitter, real or robot: https://twitter.com/warmtoiletseat/status/600309774685634561 20160219 08:03:55< Necrosporus> But why would you want for wesnoth to present in Steam at all? 20160219 08:04:25< Necrosporus> It is a proprietary platform with DRM, you cannot be free using Steam even if you only install free games with it 20160219 08:04:44< aeth> Necrosporus: Wesnoth should be on the places where people to go to get games. Otherwise e.g. why is Wesnoth on Windows at all? 20160219 08:04:48< Necrosporus> Distributuion package managers are much better than Steam 20160219 08:05:09< iceiceice> is the source engine free? 20160219 08:05:11< ancestral> Necrosporus: Tell that to people who don’t know what a terminal is 20160219 08:05:12< aeth> Necrosporus: There is at least one Steam-like client that is FOSS... https://github.com/itchio/itch 20160219 08:05:16< Necrosporus> aeth, people should go to their distro package management 20160219 08:05:18< aeth> You could probably put Wesnoth on itch.io very easily 20160219 08:05:30< ancestral> Maybe GOG after that 20160219 08:05:32< aeth> Necrosporus: What is the distro package management of Windows? 20160219 08:05:40< aeth> ancestral: GOG apparently has a screening process 20160219 08:05:48< aeth> ancestral: Afaik it's harder to get into GOG than Steam 20160219 08:05:58< Necrosporus> iceiceice, I am pretty sure it's proprietary, but if you have doubts, you can check 20160219 08:06:01< ancestral> I would believe it 20160219 08:06:18< ancestral> Necrosporus: Bottom line is, the community is dying. We need people. 20160219 08:06:24< aeth> I would recommend trying to get into itch.io first though as a test case or something. Steam doesn't block you from being on more than one place 20160219 08:06:41< Necrosporus> aeth, actually, there is windows store in never versions of Windows 20160219 08:06:41< aeth> It might make getting into Steam easier, too, if you're more visible 20160219 08:06:44< ancestral> Steam has gamers. We like gamers. Many gamers are only on Steam. 20160219 08:06:50< iceiceice> Necrosporus, yeah i would have thought so but it might be that they GPL it in order to get people to use it 20160219 08:06:56< iceiceice> and then make their money on distribution fees etc. 20160219 08:06:58< aeth> Necrosporus: afaik you'd have to have a tablet-friendly Metroish full screen app, but I could be wrong 20160219 08:07:04< aeth> That might've just been Windows 8 too 20160219 08:07:09< iceiceice> like by controlling platform rather than engine 20160219 08:07:10< ancestral> aeth: We did get on the defunct Desura 20160219 08:07:21< ancestral> :-P 20160219 08:07:31< aeth> ancestral: Every time I bring up itch.io as an example of a Steam-equivalent with a FOSS client, everyone brings up Desura 20160219 08:08:01< aeth> So what if itch.io goes bust if it gets users in the short run? It's not like there are any payments they can hold up on a free game 20160219 08:08:28< Necrosporus> There is f-droid.org for android 20160219 08:08:52< ancestral> aeth: I think Wesnoth should be on itch.io 20160219 08:08:57< ancestral> The more, the better 20160219 08:09:03< Necrosporus> Does Steam support free amount of paiment? 20160219 08:09:11< ancestral> As long as someone is maintaining it, that is 20160219 08:09:16< Necrosporus> I mean like player chooses how much to pay 20160219 08:09:45< ancestral> I don’t think anyone has set up a way to make donations, but I could be wrong 20160219 08:10:14< Necrosporus> Well, you can still charge with steam while leaving wesnoth mainline free 20160219 08:10:25< Necrosporus> And of course the code should be same 20160219 08:10:34< iceiceice> charging on steam seems kind of crappy though 20160219 08:10:39< iceiceice> b/c steam takes a big chunk 20160219 08:10:48< aeth> Necrosporus: and btw you can have DRM-free games on Steam so you can just buy or download it on Steam and then run it without Steam running 20160219 08:10:50< iceiceice> i mean if you are going to put it on steam to get more players 20160219 08:10:51< aeth> Depending on the game. 20160219 08:10:53< iceiceice> why not make it free 20160219 08:11:26< Necrosporus> What does Wesnoth need more, more players or more resources like money? 20160219 08:11:41< Necrosporus> There is one thing I do not like about Wesnoth 20160219 08:11:44< aeth> iceiceice: btw, Source isn't GPL. You might be thinking of the idtech engines, which are very similar, but from id and for quake, doom, etc. 20160219 08:11:45< iceiceice> what 20160219 08:11:55< iceiceice> aeth: yeah i wasnt sure, thanks for checking 20160219 08:11:58< aeth> iceiceice: The old idtechs are GPLed, long after they were profitable 20160219 08:12:03< ancestral> Necrosporus: Contributors. So, players. 20160219 08:12:24< Necrosporus> There is a known security hole in 1.10.7 and it is even fixed in repo, but noone bothered to release 1.10.8 so players who can't compile still run version with a hole 20160219 08:12:50< iceiceice> ancestral, there's a huge gap between the players and the devs though 20160219 08:12:54< aeth> iceiceice: Source is expensive (relative to the other major engines, which are iirc often free ($0) for small games without being FOSS), and out of date, so there's basically no reason for anyone to use it unless their game started out as a mod for another Source game. 20160219 08:13:01< aeth> iceiceice: So e.g. Garry's Mod or The Stanley's Parable 20160219 08:13:03< iceiceice> i see 20160219 08:13:11< ancestral> iceiceice: Do you have other ideas to recruit contributors? 20160219 08:13:18< iceiceice> start over from scratch 20160219 08:13:49< Necrosporus> iceiceice, http://www.joelonsoftware.com/articles/fog0000000069.html 20160219 08:14:02< iceiceice> i know what you are linking before i read it :) 20160219 08:14:17< iceiceice> Necrosporus, joel has never worked on a project like wesnoth 20160219 08:14:45< Necrosporus> But maybe he's right that if you have working code already, you shouldn't throw it out? 20160219 08:14:57< iceiceice> only if it is tested and documented 20160219 08:15:04< iceiceice> if you have legacy code, 20160219 08:15:10< iceiceice> and its mostly broken, 20160219 08:15:13< iceiceice> you should probably throw it out 20160219 08:15:14< aeth> Necrosporus: Depends. I rewrite my own code all of the time, and every time I do, it's way better than before. The issue is when the code is huge, and when it's not modular enough that you can rewrite just a subset. 20160219 08:15:30< aeth> So it's definitely not advice that applies 100% of the time. 20160219 08:15:37< iceiceice> Necrosporus, alot of times it is easier to knock down a house and build a new one than fix a broken one 20160219 08:15:58< iceiceice> esp. if its broken in very tedious and time consuming ways and no one knows the people who originally built it 20160219 08:16:00< aeth> Necrosporus: Also, the game industry doesn't really listen to that article. They often do very heavy engine rewrites. 20160219 08:16:18< Necrosporus> but code is not a house. You can for example take code from a big module, and rearrange it into smaller modules without rewriting 20160219 08:16:23< aeth> You can keep the old product (the old game) on the old engine (only Valve seems to port forward to new engines) and still make money while making a new engine 20160219 08:16:33< iceiceice> Necrosporus, only if it was not written in a way that it is all tied together like spaghettit 20160219 08:16:43< iceiceice> the wesnoth engine is spaghetti 20160219 08:16:46< ancestral> iceiceice: I think there are opportunities to make it easier for people to become developers. Some structure to it might be nice. But I think there’s a lack of eligible participants at th emoment 20160219 08:17:21< iceiceice> ancestral, i've been playing around with making a new engine for the game 20160219 08:17:23< ancestral> A rewrite won’t happen successfully without more interested/motivated people 20160219 08:17:31< ancestral> Yeah? 20160219 08:17:36< iceiceice> for like a good number of months :) 20160219 08:17:44< iceiceice> bt i'm not ready to announce yet 20160219 08:17:53< iceiceice> but i would like ti to be like GPL and in wesnoth model 20160219 08:18:20< iceiceice> what i am hoping to do is have some compatibility with WML, while not being based internally on wml 20160219 08:18:46< iceiceice> it is hard to say for sure how well these things will work without doing them :) 20160219 08:18:46< Necrosporus> iceiceice, but isn't it already the case for wesnoth? 20160219 08:18:53< Necrosporus> most wml tags are written in lua 20160219 08:19:22< iceiceice> Necrosporus, wesnoth is sort of like, in a hodge-podge state 20160219 08:19:26< iceiceice> originally it was entirely C++ 20160219 08:19:39< iceiceice> and it is still true that all relevant game state is distributed over a large number of C++ global variables 20160219 08:19:54< Necrosporus> Do people play on 1.10 server or upload new addons still? 20160219 08:19:57< iceiceice> all the original wml tags were just C++ functions that accessed those global variables 20160219 08:20:10< iceiceice> when lua was added, there is a lua module that sits on top of this 20160219 08:20:17< iceiceice> and can call its own "wml" functions 20160219 08:20:24< iceiceice> but lua is distinctly the scripting layer 20160219 08:20:30< iceiceice> and C++ "owns" all the data 20160219 08:20:44< iceiceice> in other engines, you would do it differently 20160219 08:20:52< iceiceice> like, all the authoritative copies of the data are inside lua 20160219 08:20:53< ancestral> Necrosporus: I think most are on 1.12 these days 20160219 08:21:01< ancestral> But I don’t know what “most” is 20160219 08:21:05< iceiceice> anura is arranged that way also 20160219 08:21:10< iceiceice> that the game state is inside the scripting layer 20160219 08:21:19< iceiceice> and "saving the game" means taking a snapshot of the scripting layer 20160219 08:21:44< iceiceice> that is much easier to do than taking a snapshot of 2 dozen randomly arranged c++ data structures with complex interdependencies 20160219 08:21:58< iceiceice> and that is why wesnoth saving / reloading the game has always been kind of problematic 20160219 08:22:03< iceiceice> and also why it is hard to make some kinds of AI 20160219 08:22:29< iceiceice> there is no easy way to capture the game state in wesnoth, it is sort of littered about everywhere in global variables 20160219 08:22:48< iceiceice> its a major design flaw imo 20160219 08:22:48< Necrosporus> AI should have same interface as player ideally, to be bound by fog of war and stuff 20160219 08:22:57< iceiceice> also if you put everything in lua it will generally go a lot faster 20160219 08:23:17< Necrosporus> Why? Shouldn't C++ be faster? 20160219 08:23:17< iceiceice> because lua does some forms of optimization and compactification with lua code 20160219 08:23:24< iceiceice> that our WML trees don't do 20160219 08:23:34< Necrosporus> but doesn't g++ do that with C++? 20160219 08:23:35< ancestral> iceiceice: Wasn’t another person working on a rewritten Wesnoth engine in Lua? 20160219 08:23:47< Necrosporus> fabi 20160219 08:23:56< iceiceice> fabi and i talked alot :) 20160219 08:24:04< iceiceice> but he was mostly working on making a scripting layer 20160219 08:24:08< ancestral> Same project, or different projects? 20160219 08:24:11< iceiceice> i have been working on making an actual engine 20160219 08:24:25< iceiceice> i guess they are differnet projects that might cooperate 20160219 08:24:29< iceiceice> like my engine might be used to load his game 20160219 08:24:39< iceiceice> if either of these things ever exists :) 20160219 08:24:55< aeth> Necrosporus: C++ isn't faster in practice unless it's properly written C++ 20160219 08:25:10< iceiceice> you have to actually do the optimizations 20160219 08:25:14< aeth> Because otherwise e.g. we'd all be writing in x86_64 assembly directly because that's faster than C++ if you can find a good assembly programmer 20160219 08:25:15< iceiceice> to get faster code 20160219 08:25:30< iceiceice> Necrosporus, one of the biggest reasons that C++ code can be faster 20160219 08:25:40< iceiceice> is that you have total control over exactly how data is laid out in memory 20160219 08:25:50< Necrosporus> What about OCaml? 20160219 08:25:58< ancestral> What about ______? 20160219 08:26:01< Necrosporus> I have heard it could be pretty fast too 20160219 08:26:05< ancestral> We could play this game all night 20160219 08:26:11< iceiceice> they all can be fast 20160219 08:26:13< aeth> iceiceice: Garbage collection isn't directly related, at least not with an engine like Wesnoth that isn't that fancy. 20160219 08:26:18< aeth> iceiceice: You can have very fast Java or C# 20160219 08:26:21< iceiceice> yeah but 20160219 08:26:24< iceiceice> minimizing dynamic allocations 20160219 08:26:27< iceiceice> is super important 20160219 08:26:32< aeth> It's just that most GC'd languages don't really take performance into account. 20160219 08:26:35< aeth> e.g. python 20160219 08:26:38< iceiceice> i wasn't specficialyl talking about gc 20160219 08:26:59< iceiceice> like, the difference between iterating over a linked list and iterating over a vector 20160219 08:27:15< iceiceice> in a lot of languages when ever you use their "struct" analogue 20160219 08:27:17< aeth> Well, yeah, that's another problem. A lot of scripting languages have terrible data structures and data types, including Lua and JavaScript. 20160219 08:27:20< iceiceice> it really implies dynamic allocations 20160219 08:27:25< iceiceice> like in java or whatever 20160219 08:27:36< ancestral> Necrosporus: Fastest and easiest are different things 20160219 08:27:42< ancestral> Often times 20160219 08:27:48< iceiceice> aeth: i like the lua table :) 20160219 08:28:00< iceiceice> i mean it is not optimized like C++ stuff can be 20160219 08:28:10< iceiceice> but it is still pretty good 20160219 08:28:12< iceiceice> but yeah i mean 20160219 08:28:15< aeth> The problem with Lua tables is that the computer doesn't always know what you're talking about. You have to kind of meet in the middle. The table's too general. 20160219 08:28:17< iceiceice> this is where C++ wins i guess 20160219 08:28:26< iceiceice> its that you can make locality as good as possible 20160219 08:28:37< iceiceice> you can keep cache misses to a minimum if you are willing to work at it 20160219 08:28:38< aeth> I mean technically speaking you can just set up numbers by taking the size of tables or something but no one will do that because it's too slow. 20160219 08:28:52< aeth> You can definitely be too abstract for your own good. 20160219 08:29:07< iceiceice> yeah 20160219 08:29:20< iceiceice> point is though 20160219 08:29:24< iceiceice> if you just write C++ the lazy way 20160219 08:29:28< iceiceice> so that it makes types like java types 20160219 08:29:32< iceiceice> i mean WML "config" 20160219 08:29:35< iceiceice> is basically a lazy type 20160219 08:29:50< iceiceice> every time you access a wml table property you may get a cache miss 20160219 08:30:02< iceiceice> if the WML configs got stripped down into tiny structs containing only the legal keys 20160219 08:30:08< iceiceice> it would probably go a lot faster 20160219 08:30:24< iceiceice> but that would be a pain in the ass to write :) 20160219 08:30:35< iceiceice> and would make it harder to maintain and debug 20160219 08:30:48< iceiceice> but lua will still do alot of this work for you 20160219 08:30:55< iceiceice> for instance like 20160219 08:30:59< iceiceice> if i have some expression 20160219 08:31:01< aeth> Right, which is why generally you are faster by doing as much as possible outside of a language like C or C++. 20160219 08:31:03< iceiceice> "x^2 + x + 45" 20160219 08:31:18< iceiceice> if i parse it as an AST 20160219 08:31:23< iceiceice> right 20160219 08:31:31< iceiceice> i have like idk 6 or 7 differnet objects on the stack 20160219 08:31:44< iceiceice> and if i actually keep it as an AST while i use it 20160219 08:31:53< iceiceice> like if i actually evaluate it by moving over the AST 20160219 08:31:56< iceiceice> i get tons of cache misses 20160219 08:31:59< iceiceice> because there is no locality 20160219 08:32:02< iceiceice> but in lua, 20160219 08:32:06< iceiceice> it will be stripped down into some bytecode 20160219 08:32:11< aeth> There are some places where C++ will always win iirc. I think inner loops are always brought up as the example. 20160219 08:32:25< iceiceice> in WML everything always stays as the bloated AST form 20160219 08:33:03< aeth> The problem with WML is that it was written as WML. It's way too late to change it now, but you shouldn't ever write your own language unless you know you can get away with it. 20160219 08:33:12< iceiceice> yes 20160219 08:33:16< iceiceice> i mean really you should never do that 20160219 08:33:25< iceiceice> esp. if you will add a preprocessor 20160219 08:33:31< iceiceice> then it will be holy hell for anyone ever to parse it 20160219 08:33:46-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20160219 08:33:48< aeth> Well, no, there are plenty of cases where you can get away with writing a language. Lisp makes it very easy, for instance. 20160219 08:33:55< Necrosporus> Unless you are someone like Ousterhout 20160219 08:33:58< aeth> If you're modelling your language with C-style macros, though, you have lost already. 20160219 08:34:07< iceiceice> i mean 20160219 08:34:11< iceiceice> sometimes people write their own language 20160219 08:34:18< iceiceice> because it is a pretty devastating form of lock-in 20160219 08:34:32< iceiceice> if people do make levels and mods and such for your game 20160219 08:34:47< iceiceice> its very difficult for them ever to port them if you made it in some very complicated language 20160219 08:34:55< iceiceice> *made them write it in 20160219 08:34:58< aeth> It's not about lock-in, it's about safety. You need something sandboxable. Wesnoth discovered that Python is not one of those languages. 20160219 08:35:05< aeth> The choice is basically Lua and/or write your own. 20160219 08:35:20< iceiceice> it's also about lock-in more often than you think 20160219 08:35:27< Necrosporus> aeth, Tcl, Squirrel 20160219 08:35:41< aeth> Necrosporus: No one knows Tcl in 2016. 20160219 08:35:44< iceiceice> getting people committed to your tech is really hard to do 20160219 08:35:55< aeth> You'd probably have more users by writing your own language than using Tcl because you'll get to hype it as some hot new thing. 20160219 08:36:01< Necrosporus> aeth, what do you mean noone? 20160219 08:36:39< Necrosporus> You could use Tcl, but call it with some new word 20160219 08:36:51< aeth> Necrosporus: https://github.com/trending/tcl?since=monthly 20160219 08:37:05< aeth> Two Tcl repos on Github got stars this month 20160219 08:37:21< aeth> That's not a very living community. 20160219 08:38:04< iceiceice> i wonder how representative github is 20160219 08:38:09< iceiceice> like 20160219 08:38:11< iceiceice> of the entire world :p 20160219 08:38:20< aeth> Github skews toward newer projects. So you'll get more JS and Ruby than C or C++ 20160219 08:38:23< iceiceice> presumably china does not allow github for instance? 20160219 08:38:24< Necrosporus> Tcl is very nice language by itself, but I guess there are problems with management 20160219 08:38:24< aeth> Since the C or C++ ones have to migrate. 20160219 08:38:36< iceiceice> since github is a tool of the imperialists or something, clearly 20160219 08:38:49< iceiceice> is there a chinese equivalent of github? 20160219 08:38:57< aeth> probably 20160219 08:39:35< iceiceice> https://www.quora.com/Is-Github-used-with-coders-in-China-India-If-not-what-are-the-Github-equivalents 20160219 08:39:38< Necrosporus> aeth, even if you make your own language, you could use Tcl-like syntax 20160219 08:40:00< iceiceice> making your own language is so much work 20160219 08:40:04< iceiceice> i mean 20160219 08:40:15< iceiceice> its really hard for me to see a compelling reason not to use lua 20160219 08:40:23< iceiceice> lua is going to be there until the end of time 20160219 08:40:54< Necrosporus> I just like Tcl more and I do not understand why people tend to stick to Lua instead 20160219 08:41:03< aeth> iceiceice: Making a language is only work if you use inadequate tools. 20160219 08:41:15< aeth> Necrosporus: Because Lua is sort of like JavaScript and unfortunately everyone learns to program on JavaScript 20160219 08:41:41< iceiceice> aeth: i think its comparable in size to many of the largest components of a game engine anyways 20160219 08:41:51< iceiceice> i mean if you are not going to write tons of unit tests, and tons of docs 20160219 08:41:58< Necrosporus> aeth, I have tried to program in JavaScript, can't say I liked it 20160219 08:42:11< iceiceice> and if you are not going to write a highly optimized implementation 20160219 08:42:22< iceiceice> i mean then why do it 20160219 08:43:03< iceiceice> Necrosporus, lua fits very cleanly into the current milieu i guess 20160219 08:43:28< iceiceice> you just have variables and assignment 20160219 08:43:31< iceiceice> and object notation 20160219 08:43:34< iceiceice> and first class functions 20160219 08:43:39< iceiceice> and the standard notion of function calls 20160219 08:43:41< aeth> iceiceice: Well, it's pretty simple. You write a language, you use it in your game, and if your game is popular you can pay someone to optimize it and if it's never popular not enough people will care anyway. 20160219 08:44:10< iceiceice> ok but in the time when its not optmized 20160219 08:44:11< aeth> You need to know enough about languages to avoid major design mistakes (WML is full of them) and to avoid things that will make optimization later on hard, but you don't need to optimize it that hard right now. 20160219 08:44:21< iceiceice> it might be too low performance to succeed 20160219 08:44:31< iceiceice> will you use this language to drive graphics? 20160219 08:44:40< aeth> iceiceice: well, yeah, but you can naively code a language that's fast and easy to implement too. e.g. make it stack-based. 20160219 08:44:41< iceiceice> will this language be needed in order to drive the AI? 20160219 08:45:07-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20160219 08:45:12< iceiceice> also everyone who wants to use it needs like 20160219 08:45:15< Necrosporus> iceiceice, Tcl has all of that too. Except different notion of functions 20160219 08:45:16< iceiceice> the learning curve of learning it 20160219 08:45:18< aeth> "1 1 +" is pretty fast and pretty naively optimizable. 20160219 08:45:20< aeth> Lua tables aren't. 20160219 08:45:23< aeth> Just don't do anything fancy. 20160219 08:45:28< iceiceice> yeah but no one wants to write 1 1 + 20160219 08:45:38< aeth> Right, I used stacks as one example. I wouldn't personally do that. 20160219 08:45:40< Necrosporus> I do not mind writing it 20160219 08:45:40< iceiceice> hehe 20160219 08:45:49< iceiceice> i mean clearly imo you should like 20160219 08:45:52< aeth> My point is you can write a simple language that isn't slow and won't take as much work as JS is taking to make run fast later on. 20160219 08:45:56< iceiceice> have a "parsing" phase 20160219 08:46:00< iceiceice> thats separate from evaluation phase 20160219 08:46:12< aeth> But you can make parsing dead simple like Lisp. 20160219 08:46:15< iceiceice> yeah i mean 20160219 08:46:22< aeth> (+ 1 1) not much to parse, very regular 20160219 08:46:24< iceiceice> if you use proper tools parsing should not be hard 20160219 08:46:36< iceiceice> the thing also though 20160219 08:46:39< aeth> Exactly. Use the right tools for the language you want. 20160219 08:46:47< iceiceice> imo using an existing language is attractive because 20160219 08:46:51< iceiceice> when you have a large project or even a small one 20160219 08:46:59< iceiceice> people will just argue about hte syntax of the language to death 20160219 08:47:12< aeth> YOu can get a nice toy scripting language. WML is not that sort of language. First, if XML-like was the way to go it should have *been* XML, so <>s etc. That way more could have been offloaded onto libraries. 20160219 08:47:15< iceiceice> literally everyone will give in at some point of time 20160219 08:47:24< aeth> The more you can offload onto a library, the better. 20160219 08:47:36< iceiceice> if you can just say "no we are using lua and no one is allowed to discuss hacking it to change the syntax" 20160219 08:47:45< iceiceice> i'm sure it will increase productivity 20160219 08:48:08< aeth> I personally wouldn't make a XML scripting language like I personally wouldn't make a stack scripting language, but that's not the point. There are shortcuts you can and should take if you're making your own language. 20160219 08:48:14< iceiceice> yeah i mean 20160219 08:48:17< aeth> It's probably too late now to convert WML to XML. Too many little differences. 20160219 08:48:26< iceiceice> WML is like "XML language + C preprocessor" 20160219 08:48:30< iceiceice> match made in heaven :O 20160219 08:49:07< aeth> C preprocessor is a good example of something to never copy in designing a language. It makes things immediately way more complex for third party tools. 20160219 08:49:19< vultraz> aeth: pretty sure Source 2 is a lot more advanced than that :P 20160219 08:49:29< vultraz> would be cool to use it, but I don't think we can 20160219 08:49:38-!- vultraz [~chatzilla@124.109.10.167] has quit [Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805]] 20160219 08:49:52< iceiceice> yes its a major sin 20160219 08:49:54-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20160219 08:50:38< aeth> Not sure there's much of a need for an overhead strategy game to use Source 2. e.g. CK2/EU4/etc. a good job on its own in-house engine Paradox designed. Not a perfect job, and it has a strange JSON-like scripting language, etc., but it works. 20160219 08:50:50< aeth> Using a AAA engine is overkill for a lot of genres. 20160219 08:51:14< vultraz> true 20160219 08:51:16< vultraz> but we still need a better engine than we have now 20160219 08:51:18< aeth> A lot of games use Unity when they really don't have to. 20160219 08:51:27< iceiceice> yeah i agree 20160219 08:51:33< vultraz> the "engine" we have now isn't suited for what we want to do in the future 20160219 08:51:45< iceiceice> thats why the game is dying imo 20160219 08:52:08< aeth> vultraz: But there's a hard problem because of all the user-made content that uses the WML and Lua. Backwards compatability issues. Ironically, it's a similar reason to why Windows is so terrible. 20160219 08:52:41< vultraz> aeth: if we ever make wesnoth 2 we will likely not keep backwards compatibility 20160219 08:53:05< iceiceice> aeth: actually i think you can keep backwards compatibility 20160219 08:53:13< aeth> vultraz: well yeah, thus the 2.0 20160219 08:53:17< iceiceice> but you have to do some complicated transformations 20160219 08:53:20< vultraz> iceiceice: perhaps. but it won't be a goal 20160219 08:53:28 * celticminstrel suspects that WML was originally intended to be sectioned-configs. 20160219 08:53:29< aeth> vultraz: That's usually what major version numbers mean when they still have meaning, is breaking backwards compatability 20160219 08:53:30< iceiceice> if you basically map macros to functions 20160219 08:53:42 * celticminstrel has no proof of this though. 20160219 08:53:49< iceiceice> vultraz, it probably should be a goal though 20160219 08:54:02< iceiceice> its pretty bad for the community if you throw away all the old content 20160219 08:54:08< aeth> celticminstrel: WML is still pretty good for scenario configs, basic setup of things, etc. It's only bad when you want to do really fancy stuff. 20160219 08:54:08< iceiceice> i mean how would you motivate them to switch 20160219 08:54:37< celticminstrel> By sectioned-configs I mean the format used by PHP for example - key=value, with [section headers]. 20160219 08:54:38< aeth> celticminstrel: And it's way too difficult to jump from the trivial scenarios that are easy to do in WML to this fancy, poorly-written (no one's fault, it's the backwards compatability) Lua API 20160219 08:55:16< celticminstrel> There is absolutely no problem with WML for the majority of data definition. 20160219 08:55:25< vultraz> celticminstrel is right, there 20160219 08:55:25< aeth> It doesn't help that there's a lot of things that C++ can do, and WML can do through the C++, that isn't easy in Lua, for no reason at all other than no one made the several line pull request yet 20160219 08:55:31< celticminstrel> It might be lacking in the areas of terrain graphics and unit animations. 20160219 08:55:44< vultraz> very true 20160219 08:56:04< celticminstrel> And using it for scripting was a terrible idea, but one that's almost certainly here to stay. 20160219 08:56:34< aeth> celticminstrel: every scripting use of WML could eventually be moved over to a thin wrapper over an exact Lua equivalent. 20160219 08:56:52< aeth> One issue that makes migration hard is that often when you can do the same thing in Lua and WML, you do it in two very different ways. 20160219 08:56:57< aeth> So you need to relearn the whole thing. 20160219 08:57:03< vultraz> celticminstrel: maybe we can come up with a balance. Because saying "well, it's here to stay" is bad,because that means we'd be willing to stick with a broken paradigm 20160219 08:57:14< vultraz> aeth: WML doesn't mesh well with Lua 20160219 08:57:52< aeth> vultraz: If you eventually migrate all of the WML over to a wrapper over Lua equivalents, you can depricate scripting WML and migration will be fairly easy (at least compared to today). 20160219 08:58:02< aeth> You could then even reintroduce a new WML that maps more easily to Lua. 20160219 08:58:14< vultraz> all possibilities 20160219 08:58:16< aeth> The data could be machine-convered to this new WML. 20160219 08:58:18< vultraz> but as all such things 20160219 08:58:19< vultraz> who will do it 20160219 08:58:56< iceiceice> someone with programming skills 20160219 08:59:18< aeth> It can't be done yet because Lua can't do everything that (scripting) WML can do yet. 20160219 08:59:35< iceiceice> the biggest problem with WML 20160219 08:59:40< celticminstrel> Lua can call any WML tag. 20160219 08:59:40< iceiceice> is the WML formula language 20160219 08:59:47< celticminstrel> So, it can do everything WML can do. 20160219 08:59:49< vultraz> iceiceice: doesn't help that you kinda left :P 20160219 08:59:50< iceiceice> that thing is awful and very hard to understand 20160219 09:00:03< aeth> celticminstrel: but you can't rewrite WML on top of a Lua layer if that Lua layer is using WML to implement some of its functionality. 20160219 09:00:17< iceiceice> vultraz, i'll be back :) 20160219 09:00:22< aeth> celticminstrel: Well, at least, you'd need a base layer of Lua, and once you have that it'd be faster to ditch the WML 20160219 09:00:34< aeth> s/the foreign WML within the Lua/ 20160219 09:00:46< aeth> *s/the WML/theforeign WML within the Lua/ 20160219 09:00:47< aeth> bah 20160219 09:01:04< aeth> The words in this conversation need to be too exact for the medium of a fast moving conversation. 20160219 09:01:53< vultraz> aeth: some wml actions are implemented in Lua 20160219 09:02:00< aeth> Essentially, you need (scripting) WML on Lua on C++ before you can even move forward. Any Lua that has to use WML to access the C++ is Lua that can't be used as a base for a new API layer. 20160219 09:02:06< vultraz> aeth: some in C++, and some in Lua+C++ 20160219 09:02:22< aeth> vultraz: Right. And some WML implemented in C++ can do things that Lua cannot directly (without WML) do 20160219 09:02:38< iceiceice> you could move the rest of the functions over in about a week or two if you wanted 20160219 09:02:52< iceiceice> i moved like half of them in about a week 20160219 09:02:55< iceiceice> about a year ago 20160219 09:02:59< iceiceice> but you have to ask what the goal is 20160219 09:03:17< aeth> Yes it would be easy to move more over, provided that C++ opens more things to the Lua API. 20160219 09:03:17< iceiceice> pushing code around without a clear goal is an easy way to waste time 20160219 09:03:29< zookeeper> this discussion again, eh? 20160219 09:03:45< aeth> iceiceice: WML for data, Lua for scripting, with any WML scripting built on Lua. Very simple, very clear. 20160219 09:04:11< vultraz> aeth: that sounds reasonable 20160219 09:04:23< celticminstrel> zookeeper: Apparently. :/ 20160219 09:04:29< vultraz> but WML should *not* cover Animations and Terrain Graphics 20160219 09:04:40< aeth> You can't really mess around with doing backwards-incompatable fixes on WML without a clear new design of what WML ought to be. 20160219 09:04:50< celticminstrel> Before you say something like that, vultraz, you need to propose an alternative. 20160219 09:05:09< iceiceice> aeth, you should read fabi's thread 20160219 09:05:14< iceiceice> he investigated this quite deeply 20160219 09:05:26< iceiceice> his solution was actually a special form of lua 20160219 09:05:34< iceiceice> where the table constructor syntax can look very much like normal wml 20160219 09:05:52< iceiceice> and then there is no wml, only the lua basically, for both data and code 20160219 09:05:53< iceiceice> and no macros 20160219 09:05:57< vultraz> celticminstrel: lua, maybe? 20160219 09:06:06< aeth> iceiceice: That makes sense. 20160219 09:06:06< celticminstrel> Ehh, if I recall this properly, I don't agree, iceiceice. 20160219 09:06:21< vultraz> iceiceice: moonscript? 20160219 09:06:22< celticminstrel> The assertion that it looks very much like normal WML. 20160219 09:06:41< aeth> iceiceice: My own personal idea would be a little more manual... basically that WML tags create various Lua data structures. 20160219 09:06:50< aeth> But different tags create different things 20160219 09:06:54< aeth> Depending on the data. 20160219 09:06:58< celticminstrel> vultraz: I dislike the idea of using code to encode data. 20160219 09:07:34< vultraz> celticminstrel: i was thinking along the lines of having the TGWML be 'evaluated rules' 20160219 09:07:40< aeth> Imo, each WML data tag should map onto some table that looks like idiomatic Lua, that you could literally put in a .lua file if you wanted to. And in a sense, WML is just a nice syntactic sugar way to mark it as data. 20160219 09:08:06< aeth> Each type of WML data will probably need a different sort of map depending on what the tag demands. 20160219 09:08:53< aeth> So, yes, I would want even data WML to be built on Lua, but probably in a more hackish way. 20160219 09:09:05< vultraz> celticminstrel: the way I see it, the terrain map could be built, and then the appropriate rules evaluated which would then manipulate the surface in a certain way 20160219 09:09:28< iceiceice> aeth: i guess moonscript is quite similar to this maybe? 20160219 09:09:34< iceiceice> the way moonscript works is, 20160219 09:09:39< iceiceice> there is a 'compiler' written in lua 20160219 09:09:45< vultraz> iceiceice: fabi's proposal had the problem of being whitespace-aware 20160219 09:09:46< iceiceice> that rewrites moonscript code as pure lua 20160219 09:09:55< iceiceice> vultraz, wml is also whitespace aware 20160219 09:10:03< vultraz> iceiceice: er, i mean, indent-aware 20160219 09:10:15< iceiceice> yeah... i dont know how i feel about that either 20160219 09:10:17< celticminstrel> There's already a mapping between WML data and Lua tables, aeth. 20160219 09:10:27< iceiceice> that is not my favorite feature of langauges but some people really like it 20160219 09:10:32< aeth> celticminstrel: Right, but it's a mapping of general WML to a not-very-native Lua table. 20160219 09:10:42< iceiceice> vultraz, another thing that could be done is, 20160219 09:10:44< iceiceice> don't pick a single language, 20160219 09:10:47< celticminstrel> Probably not idiomatic Lua, mind you, but certainly something that could go in a .lua file. 20160219 09:10:49< vultraz> iceiceice: i don't really mind it, since it would force people to write properly indented code 20160219 09:11:09< iceiceice> instead, people can make a special addon that contains a compiler for any given language 20160219 09:11:10< aeth> right, idiomatic, not native, I used the wrong word 20160219 09:11:12< iceiceice> that must compile it to lua 20160219 09:11:18< iceiceice> and you name that addon as a dependency 20160219 09:11:23< iceiceice> so you can use pure lua if you want 20160219 09:11:26< iceiceice> or moonscript if you want 20160219 09:11:29< iceiceice> or modified moonscript 20160219 09:11:33< iceiceice> or your own langauge 20160219 09:12:03< celticminstrel> Given how WML works, that mapping is probably the only way they could do it. 20160219 09:12:08< iceiceice> the bad thing is it could cause fragmentation i guess among the addons 20160219 09:12:21< iceiceice> but at least people can experiment with things and they aren't forced to use what the engine says 20160219 09:12:22< aeth> iceiceice: Way too complicated, and it'd be hard for the tiny community. Right now you can copy how someone else did it because it's all WML or Lua and it's all GPL. 20160219 09:12:34< aeth> celticminstrel: Yes, given how WML works. 20160219 09:12:34< iceiceice> yeah i mean 20160219 09:12:40< iceiceice> and the mainline campaigns have to be written ina single one 20160219 09:12:47< aeth> celticminstrel: We're talking about if we were to change the engine to rely on Lua more. 20160219 09:12:48< vultraz> iceiceice: how much freedom do we really want to give, here 20160219 09:12:50< iceiceice> but some people really feel strongly about how the syntax of the language should be 20160219 09:13:00< iceiceice> vultraz, it depends if the goal is to make a single game, 20160219 09:13:07< iceiceice> or more to make a game engine 20160219 09:13:10 * celticminstrel sighs. 20160219 09:13:12< iceiceice> that lots of people can use 20160219 09:13:26< aeth> celticminstrel: If Lua were the first class scripting citizen, what I'd like to see is basically each WML tag compiles to a Lua table for data, with a slightly different mini-compiler depending on the tag. 20160219 09:13:53< iceiceice> aeth, note also that there are pretty well establsihed ways of making a DSL using lua 20160219 09:13:55< vultraz> iceiceice: look at dota 2. last year they introduced support for custom games 20160219 09:14:01< aeth> A lot of the time, a direct mapping to a simple, idiomatic table would work great. It can't work all the time. That's currently why WML-in-Lua is so hackish. 20160219 09:14:39< celticminstrel> Well, for certain specifics areas of WML, it would be possible to simply the representation without loss, sure. 20160219 09:14:40< iceiceice> vultraz, how did the custom games thing work out? 20160219 09:14:48< iceiceice> i dont actually play dota 2, i only watch it :) 20160219 09:14:51< vultraz> iceiceice: well there are a lot of them 20160219 09:14:59< vultraz> some quite popular 20160219 09:15:00< iceiceice> so it was successful? 20160219 09:15:05< vultraz> i would say so, yes 20160219 09:15:08< aeth> celticminstrel: Right, and a few of the other cases could probably introduce backwards-incompatable changes that can be machine translated (which was the constraint of the hypothetical afaik) 20160219 09:15:19< aeth> celticminstrel: So the ugly tables would only be needed for some things, which would be a big improvement. 20160219 09:15:40< vultraz> iceiceice: see, I wouldn't say we're making an engine, because like dota, the addons are for *this game* 20160219 09:15:41< aeth> The cost is that there's no longer one "WML", but there never was one. 20160219 09:15:46< vultraz> iceiceice: source 2 is the engine, dota is the game 20160219 09:15:56< vultraz> iceiceice: the custom games are for dota, not other games using source 2 20160219 09:16:11< iceiceice> vultraz, yeah but we could expand the scope of the project 20160219 09:16:17< iceiceice> or split it into an engine project and a game project basically 20160219 09:16:40< aeth> iceiceice: There's actually not much in the Wesnoth engine that would be useful to a new game project, probably. 20160219 09:16:48< iceiceice> yeah thats kind of true, 20160219 09:16:52< vultraz> iceiceice: if we do that we should adopt Anura immediately 20160219 09:17:01< iceiceice> aeth, the thing people tell me is 20160219 09:17:03< aeth> Wesnoth's an ancient game and there are many better ways to make a new 2D game from scratch these days using libraries. 20160219 09:17:09< iceiceice> the terrain graphics system is really elaborate and nice 20160219 09:17:10-!- celticminstrel is now known as celmin|sleep 20160219 09:17:17< iceiceice> and it takes tens of thousands of hours to produce that from scratch 20160219 09:17:26< aeth> Wesnoth's terrain system probably is pretty nice, yes. 20160219 09:17:36< aeth> 10s of thousands is probably an exaggeration. 20160219 09:17:44< iceiceice> like several months work 20160219 09:17:52< aeth> 10s of thousands is years. 20160219 09:17:57< iceiceice> hmmm 20160219 09:18:01 * iceiceice considers :) 20160219 09:18:14< iceiceice> yeah i guess its just thousands of hours 20160219 09:18:28< vultraz> aeth: you're right, wesnoth is ancient 20160219 09:18:28< aeth> It's useful to know some ballpark orders of magnitude :) 20160219 09:18:35< vultraz> it's most *certainly* not modern 20160219 09:18:39< vultraz> it's like 20160219 09:18:41< vultraz> dota 1 20160219 09:18:44< vultraz> basicaly 20160219 09:18:47< aeth> Right. 20160219 09:18:50< vultraz> with nicer paint 20160219 09:18:54< iceiceice> vultraz, its like a game from late 90s, emulating a game from late 80s 20160219 09:19:06< iceiceice> but in fact its from like 2003 :p 20160219 09:19:18< vultraz> disclaimer here: most of the reason I work on wesnoth is I like game programming 20160219 09:19:23< vultraz> and I'd like to work on a modern project 20160219 09:19:28< vultraz> which is why I'm pushing for modern stuff 20160219 09:19:32< aeth> And 2D is kind of overdone in indie games these days. Wesnoth was a very early nostalgia pixel art game. Now there are so many. Too many. 20160219 09:19:55< aeth> Even if Wesnoth had the perfect engine, you're better off doing something in simple 3D and standing out more. 20160219 09:20:03< vultraz> not ancient crap without even modern c++ support 20160219 09:20:03< iceiceice> yeah but wesnoth also has really nice game play 20160219 09:20:12< iceiceice> i think for many people thats a big part of it 20160219 09:20:25< iceiceice> its not like civ and such 20160219 09:20:25< vultraz> because if I get too used to working int his environment 20160219 09:20:28< aeth> iceiceice: Wesnoth is actually a typical game. Fun, great game, but the code will give you nightmares for weeks. 20160219 09:20:33< iceiceice> where its sort of a strategy game but you cant relaly predict much 20160219 09:20:38< aeth> iceiceice: Most games are full of hacks upon hacks upon hacks. It's just what happens. 20160219 09:20:40< vultraz> how will I ever work on a real modern project? 20160219 09:20:42< aeth> Fun doesn't really correlate with code. 20160219 09:20:51< iceiceice> wesnoth you can understand the probabilities that matter more easily 20160219 09:20:59< iceiceice> and the role of randomness is much higher than in most games 20160219 09:21:16< iceiceice> i think thats why people still play it 20160219 09:21:23< aeth> It's funny watching people complain about missing 70% chances in Xcom 2. Because Wesnoth people have been seeing such complaints for more than a decade. 20160219 09:21:24< iceiceice> they get addicted to the gambling 20160219 09:21:32< aeth> Mages are basically missing-when-it-matters machines. 20160219 09:21:43< aeth> And I won't trust thunderers even when there are good odds because of that one strike 20160219 09:21:48< iceiceice> and also theres the aspect of falling in love with their high level units and then having their heart strings pull when they die 20160219 09:21:50< iceiceice> and so on 20160219 09:22:15< iceiceice> yeah thunders are like... 20160219 09:22:18< iceiceice> such an evil unit 20160219 09:22:27< iceiceice> they are like high risk low reward 20160219 09:22:40< aeth> What's funny is that the RNG of Wesnoth isn't that bad. Most units have more than one strike. So it's not as bad as a lot of RNG games. 20160219 09:22:41< iceiceice> even when the damn gun hits it doesnt even do that mch damage 20160219 09:22:47< aeth> The more strikes you have, the fairer the RNG seems. 20160219 09:25:26< aeth> vultraz: I'm not sure how you can modernize Wesnoth. It's a huge game. 20160219 09:25:44< vultraz> aeth: I want to tear it apart and redo it :p 20160219 09:25:55< aeth> It's a huge game where one of its philosophies was to minimize the use of libraries... which makes it even harder to modernize. 20160219 09:26:11< aeth> Wesnoth modernized a bit when it went to SDL2. For almost free. One person doing most of the work. 20160219 09:26:19< aeth> Wesnoth can't do that for a lot of things where it's not using libraries but it could have. 20160219 09:26:21< vultraz> aeth: a *bit* 20160219 09:26:31< vultraz> we intend to try to add OGL support soon 20160219 09:26:44< vultraz> sadly, not Vulkan support because no one knows how to use it 20160219 09:26:56< aeth> OpenGL's eventual successor just got released; time to port to OpenGL :p 20160219 09:27:12< iceiceice> hehe 20160219 09:27:13< aeth> Actually that's not that bad because a lot of GLSL can basically be directly used in Vulkan, if you're AZDOing it enough 20160219 09:27:30< iceiceice> aeth but an important goal also is portability 20160219 09:27:37< vultraz> aeth: do you know how to use Vulkan? 20160219 09:27:40< iceiceice> vulkan is not really very portable right now 20160219 09:27:42< iceiceice> so who cares about it 20160219 09:27:54< aeth> iceiceice: If you want portability, this is what gets you stuck to using OpenGL 1 or something 20160219 09:27:56< iceiceice> more interesting imo is the OPEN GLes2 stuff 20160219 09:28:06< iceiceice> since it can be used on most devices now 20160219 09:28:08< iceiceice> and even in the browser 20160219 09:28:55< aeth> vultraz: I know quite a bit about Vulkan, but I haven't used it directly because I cannot use it right now. 20160219 09:30:40< aeth> I know what I know about the shaders because I compiled the compiler, and then used that to compile some GLSL test shaders to SPIR-V 20160219 09:30:58< aeth> So I can't actually use the GLSL with Vulkan, but I can see what spits out errors and what works. 20160219 09:31:49< aeth> I can just assume that if it works on OpenGL and doesn't give an error when compiling it to SPIR-V, it will work in Vulkan. Anyone who doesn't have Vulkan drivers can make a similar assumption, probably. I'm guessing if this doesn't work, it's a bug with the SPIR-V compiler. 20160219 09:31:54< vultraz> so would you say it would even theoretically be possible to use vulkan right now? 20160219 09:32:31< aeth> I'm not sure what group of people are using Vulkan on Linux right now. The nvidia Vulkan drivers are for a very old version. 20160219 09:32:52< iceiceice> of course its theoretically possible to use it 20160219 09:33:01< iceiceice> i mean you could have used it before they officially anounced it also 20160219 09:33:08-!- Kwandulin [~Miranda@p200300760F0BC50105A737A8C56B38FD.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160219 09:34:11< aeth> The Vulkan beta is 355, the current "stable" (not actually very stable) is 358 iirc, and the non-Vulkan beta's 361. 20160219 09:34:30< aeth> They probably picked 355 because 358 and 361 are not very stable, even though 358 isn't in beta 20160219 09:34:53< aeth> I think 355 might be old enough that it causes issues with newer xorg, so I don't think I'd be able to use the Vulkan driver as it is right now without a lot of difficulty 20160219 09:34:58< vultraz> iceiceice: i mean if we did, would it work on all the systems we support 20160219 09:35:03-!- mjs-de [~mjs-de@f053181087.adsl.alicedsl.de] has joined #wesnoth-dev 20160219 09:35:08< iceiceice> no because we support everything :) 20160219 09:35:19< iceiceice> you definitely could not use vulkan with windows XP for instance 20160219 09:35:22< iceiceice> or old macs 20160219 09:35:25< aeth> If I wanted to use Vulkan, it would probably be easier for me to use my Haswell intel integrated graphics, but Intel's focusing on Skylake atm iirc. 20160219 09:35:33< iceiceice> you can use Open GLES2 with windows XP though 20160219 09:35:34< vultraz> iceiceice: not a problem. can just drop support for those 20160219 09:35:38< shadowm> vultraz: I take it you missed that conversation with Krista the other day. 20160219 09:35:39< iceiceice> if you are willing to settle for software rendering 20160219 09:35:47< aeth> iceiceice: you can't use Vulkan on *any* Macs right now, that's a bigger problem. 20160219 09:35:52< iceiceice> yeah 20160219 09:36:16< aeth> The Vulkan->Metal conversion layer that they advertised on launch for some reason is (1) a terrible idea for a game and (2) a commercial product so we can't use it for FOSS 20160219 09:36:52< vultraz> aeth: that's a reason not to use it yet, then :P 20160219 09:37:51< aeth> Right now, the lowest common denominator for desktop/laptop systems seems to be OpenGL 3.3. Mesa's Intel support atm is limited to 3.3, which makes it the lowest OpenGL version support on any major platform. It should jump to 4.2 at some point "soon" though. 20160219 09:38:12< shadowm> Someone should inform ancestral that I'm not in charge of translations here. 20160219 09:38:38< aeth> If you support 3.3, you support every software platform, but you do drop some older hardware, mostly Intel integrated since even very old graphics cards can run 3.3 like my old nvidia from more than 5 years ago (GeForce 9800) that was capped at 3.3 20160219 09:39:39< aeth> https://en.wikipedia.org/wiki/OpenGL#OpenGL_4.0 20160219 09:40:07< aeth> 4.0 is supported by Ivy Bridge (2012), at least on Windows. Wikipedia doesn't list hardware support for 3.3 and below 20160219 09:41:21< vultraz> whatever the latest we can go for without compromising support for *recent* OS-es (Windows 7 and up, etc), we should go for 20160219 09:41:52< aeth> Vulkan can in theory support Vista and maybe even XP. 20160219 09:42:25< aeth> So there's no reason why ancient OpenGL 3 (3.0 came out in 2008, 3.3 came out in 2010) can't 20160219 09:42:34< vultraz> I don't care about XP 20160219 09:43:12< vultraz> but if vulkan can't support OS X yet for our purposes we can't use it 20160219 09:43:19< aeth> Using OpenGL 3.3 you can write in a shader style that's mostly compatible with Vulkan. 20160219 09:43:49< vultraz> worse or as good as 4? 20160219 09:43:56< aeth> The non-shader stuff in Vulkan is way more complicated than OpenGL non-shader stuff, but that's not important here. At least the shaders can be future-proofed. 20160219 09:44:42< aeth> Basically, I'd recommend writing OpenGL 3.3 in a way that the shaders can compile to SPIR-V, i.e. roughly future-proofed so in 5 or so years Wesnoth can switch to Vulkan assuming libraries are out to get rid of lots of the complexity by then. 20160219 09:45:49< aeth> Vulkan runs on nvidia cards from 2012, which are almost 4 years old now and so would be about 9 years old in 5 years. 20160219 09:46:20< zookeeper> i don't know why anyone would even be talking about vulkan for wesnoth or wesnoth-like game. 20160219 09:46:22< aeth> So targeting Vulkan in 5 years would basically mean you're not dropping hardware people are still using when you switch to Vulkan, assuming OS X and iOS eventually cave in and abandon Metal. 20160219 09:46:34< shadowm> zookeeper: Because new = 1000x better!!!! 20160219 09:46:47< zookeeper> shadowm, yeah, that's the only reasoning i can see 20160219 09:46:59< shadowm> (Except C++'s operator new. That usually makes things 1000x worse.) 20160219 09:47:03< zookeeper> D: 20160219 09:47:18< aeth> zookeeper: I'm advocating that we target an OpenGL version that was released March 11, 2010, *not* Vulkan. 20160219 09:47:38< aeth> Modernizing Wesnoth by bringing it to tech from 6 years ago :P 20160219 09:47:47-!- zombah [~zombah@2a02:28:3:1:214:4fff:fe47:5920] has joined #wesnoth-dev 20160219 09:47:54< aeth> If we can stick to that schedule we'd be due for Vulkan in 6 years. 20160219 09:48:16< vultraz> aeth: so when could we theoretically use 4.2? 20160219 09:48:18< shadowm> And maybe by then there will actually be a reasonable abstraction layer for it. 20160219 09:48:56< aeth> vultraz: Probably never. Once we're on 3.3 we can keep that as a baseline basically forever until we migrate to Vulkan if we do 20160219 09:49:13< aeth> We could add faster code paths for things that later versions make faster. 20160219 09:49:17< iceiceice> aeth: if you use that version though 20160219 09:49:20< iceiceice> then you cant run on phones 20160219 09:49:27< iceiceice> at least, a large fraction of current phones 20160219 09:49:40< iceiceice> which is apparently quite relevant from wesnoth inc's perspective 20160219 09:49:45< iceiceice> at least 20160219 09:50:07< iceiceice> sorry 20160219 09:50:09< iceiceice> i didnt read carefully 20160219 09:50:21< iceiceice> i guess open gl3 core profile / opengles2 is the sweet spot 20160219 09:50:29< iceiceice> if you meant opengl 4 i think that is potentially not 20160219 09:50:31< vultraz> yes, phone support is a huge deal 20160219 09:50:40< iceiceice> but there is not that much important after core profile 20160219 09:50:41< vultraz> if we can't have phone support with 3.3 then it's no-go 20160219 09:50:51< aeth> iceiceice: yes, opengl core profile written in a future-proof AZDO way 20160219 09:50:53< iceiceice> it would be like you can support phones, but only fancy phones 20160219 09:50:59< aeth> although it's not like Wesnoth needs zero driver overhead 20160219 09:51:28< aeth> 3.3 would serve as the baseline. Maybe you can add faster things for people who have newer graphics. 20160219 09:52:13< aeth> iceiceice: There's nothing relevant for Wesnoth after 3.3 afaik. And 3.3 would mainly be for a relatively modern GLSL 20160219 09:52:28< aeth> Wesnoth's 2D and sprite-based. A lot of what OpenGL has to offer just isn't worth it. 20160219 09:52:38< iceiceice> yeah 20160219 09:53:56< iceiceice> aeth: i am reminded what you say, that wesnoth is like so many other games 20160219 09:54:00< vultraz> as long as we can support the iphone 5 and later, good 20160219 09:54:04< iceiceice> b/c i hear also players who say the opposite 20160219 09:54:08< iceiceice> that there is nothing like wesnoth 20160219 09:54:14< iceiceice> at least as far as "making garage games" goes 20160219 09:54:20< aeth> Really, the main limit of what you want from GL other than e.g. fancy weapon attacks and other decorative things are: (1) water, (2) lighting 20160219 09:54:24< aeth> afaik that's all you can really get out of it 20160219 09:54:34< iceiceice> particle engine i guess 20160219 09:54:35< aeth> and, yes, apparently having 2D lighting engines is a thing now 20160219 09:54:36< iceiceice> people kind of want that 20160219 09:54:41< iceiceice> yes 2d lighting is fun :) 20160219 09:55:20< vultraz> aeth: so iphone 5 and on (i'd say ios 7 and later) and android 5 and later would be my targets 20160219 09:55:27< aeth> iceiceice: to be fair, in e.g. 2008 Wesnoth was a lot more unique 20160219 09:55:51< aeth> iceiceice: There was a gold rush in indie games that flooded the market with so many nostalgia games that I think if you tried you could find a lot of games similar to Wesnoth these days, except not FOSS 20160219 09:56:02< iceiceice> yeah i mean 20160219 09:56:14< iceiceice> i think the "game" is not extraordinarily unique 20160219 09:56:18< iceiceice> its the modability aspect i guess 20160219 09:56:27< iceiceice> people i talked to were like umc people 20160219 09:56:40< iceiceice> the game is unique though 20160219 09:56:43< iceiceice> to give it credit 20160219 09:56:45< iceiceice> idk 20160219 09:56:48< iceiceice> i am torn i guess :) 20160219 09:57:53< aeth> vultraz: https://en.wikipedia.org/wiki/OpenGL_ES#OpenGL_ES_3.0 20160219 09:57:57< vultraz> the game needs to be better 20160219 09:57:59< vultraz> honestly 20160219 09:58:04< aeth> "OpenGL 4.3 provides full compatibility with OpenGL ES 3.0." 20160219 09:58:05< vultraz> the gameplay is way too clinky 20160219 09:58:12< aeth> https://developer.android.com/guide/topics/graphics/opengl.html 20160219 09:58:19< aeth> 3.0 is on Android 4.3; 3.1 is on Android 5.0 20160219 09:58:22< iceiceice> vultraz, how would you make it better/ 20160219 09:58:27< iceiceice> like improve the UI somehow? 20160219 09:58:48< vultraz> iceiceice: no, the core gameplay needs to be updated 20160219 09:58:49< aeth> vultraz: So ironically, Android might need to be on a newer OpenGL (4.3) than desktop can safely be on (3.3). 20160219 09:58:53< vultraz> and the execution as well 20160219 09:59:25< aeth> vultraz: imo all you need is better, more moddable menus (including e.g. drag and drop for e.g. drag and drop inventory like in most RPGs) 20160219 09:59:32< aeth> Then let modders mod in new gameplay styles 20160219 09:59:50< iceiceice> yeah i think like 20160219 09:59:56< iceiceice> we should consider being more radically community driven 20160219 10:00:16< iceiceice> for instance, an extreme thing we could consider is 20160219 10:00:23< iceiceice> fuse the addon system with the "mainline campaigns" 20160219 10:00:33< iceiceice> so the mainline campaigns are just addons with a special like "canon" marker or something 20160219 10:00:46< iceiceice> and make a content filtering system basically 20160219 10:01:07< iceiceice> to help people find content that they are likely to like 20160219 10:02:58< vultraz> aeth: also true 20160219 10:03:01-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 244 seconds] 20160219 10:03:06< vultraz> better interface is needed so badly 20160219 10:03:30< vultraz> it's needed so badly that I want to cry sometimes 20160219 10:03:47< vultraz> because I don't have the opportunity to work with modern UIs :P 20160219 10:04:30< aeth> Yes, Wesnoth needs to switch to a modern, flat UI so it can look like a 1960s subway. 20160219 10:04:33< aeth> :P 20160219 10:04:39< aeth> (Yes I'm deliberately misinterpreting what you said.) 20160219 10:05:04< vultraz> the reference is also over my head :P 20160219 10:05:15< vultraz> i mean stuff like dota 2 20160219 10:05:16< vultraz> fluid 20160219 10:05:18< vultraz> smooth 20160219 10:05:24< vultraz> graphical flair 20160219 10:05:33< aeth> Yeah, and I interpreted modern to be like e.g. Windows's Metro 20160219 10:05:38< aeth> or Android's whatever it's called 20160219 10:05:54< aeth> The whole flat UI thing that's in style on mobile 20160219 10:06:48< vultraz> i wouldn't mind wesnoth having a bit more flat stuff 20160219 10:06:54< vultraz> iOS 9 looks really nice 20160219 10:07:12< aeth> Personally, I only like the way Android does flat. That's the only flat UI where I can tell what's clickable (tappable?) or not 20160219 10:07:28< aeth> https://en.wikipedia.org/wiki/Material_Design 20160219 10:07:39< aeth> I think that's because it cheats and it's not truly flat so e.g. there are shadows 20160219 10:07:56< vultraz> heh 20160219 10:08:03< vultraz> i prefer apple's approach, tbh 20160219 10:08:10< vultraz> apple stuff is just so sexy 20160219 10:09:08< vultraz> and yes, i do have an android phone 20160219 10:09:12< vultraz> so im not being bias :) 20160219 10:09:26< aeth> I prefer usability in a UI 20160219 10:09:45< vultraz> well, we have a lot of room to improve wesnoth's UI 20160219 10:09:49< aeth> Pull up the Android calculator if you have a newer version of Android 20160219 10:09:56< vultraz> a HUGE thing I want to do is make it more fluid 20160219 10:09:59< aeth> There are no lines between the numbers 20160219 10:10:01< aeth> No buttons at all 20160219 10:10:03< vultraz> not just in the UI 20160219 10:10:27< vultraz> but also in animation and things 20160219 10:10:28< aeth> The flat design is just so... meh 20160219 10:10:31< vultraz> everything seems to be in 'steps' 20160219 10:10:42< zookeeper> vultraz, finally something we can agree on 20160219 10:10:46< vultraz> like 20160219 10:10:47< aeth> vultraz: Improving animation will be harder since sprites are animated by hand 20160219 10:10:52< vultraz> idk how to explain it 20160219 10:10:59< vultraz> but wesnoth feels very 'un-fluid' 20160219 10:11:05< aeth> Certain things could be moved away from sprites, maybe. Like the water. 20160219 10:11:11< aeth> The water is already moving far enough in style away anyway. 20160219 10:11:22< aeth> Might as well have real water at some point. Or real fake water, at least. :P 20160219 10:11:59< vultraz> "wesnoth 3.0, now distributes real water to thirsty children in Africa " 20160219 10:12:23< zookeeper> vultraz, oh nevermind, you weren't talking just about the UI 20160219 10:12:31< zookeeper> no particular agreement then :P 20160219 10:13:01< vultraz> zookeeper: well also the way we to do things 20160219 10:13:03< vultraz> zookeeper: like 20160219 10:13:08< fendrin> vultraz: You mean the water being some shader magic? 20160219 10:13:14< vultraz> zookeeper: it's like, what, 4 clicks to recruit a unit? 20160219 10:13:17< vultraz> zookeeper: this is bad 20160219 10:13:35< zookeeper> 2 clicks and a double-click, not too bad. 20160219 10:13:45< zookeeper> could be better but hardly a big problem 20160219 10:14:35< vultraz> it's about repetitive actions 20160219 10:14:59< aeth> Clicks? Real strategy gamers use hotkeys for everything 20160219 10:14:59< zookeeper> you could show the recruit list as a submenu of recruit without popping up a modal dialog, maybe. but then you'd need to make it the kind of submenu which doesn't disappear when you hover out of it. 20160219 10:15:03< aeth> Even end turn is just ctrl+space 20160219 10:15:10< vultraz> also, our dialogs: they just vanish immediately 20160219 10:15:14-!- boucman_work [~jrosen@bob75-2-81-56-46-209.fbx.proxad.net] has joined #wesnoth-dev 20160219 10:15:15-!- boucman_work [~jrosen@bob75-2-81-56-46-209.fbx.proxad.net] has quit [Changing host] 20160219 10:15:15-!- boucman_work [~jrosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160219 10:15:27< vultraz> it's a bit jarring 20160219 10:15:33< zookeeper> i wholeheartedly agree that our UI is bad in that it's unanimated and works in modal steps 20160219 10:15:47< vultraz> exactly 20160219 10:15:49< vultraz> yes 20160219 10:16:03< zookeeper> messages should pop up via a very very brief animation, etc, menus could slide in via a very very brief animation, and all that stuff that was modern and fancy 10 years ago 20160219 10:16:15< zookeeper> well, let's make that 15 20160219 10:16:27< vultraz> yes 20160219 10:16:35< vultraz> except not the style of 15 years ago :P 20160219 10:17:06< vultraz> like 20160219 10:17:07< aeth> We need customized animated cartoon cursors. I want my cursor to be a cat. Or maybe a dragon-cat hybrid since it's fantasy. 20160219 10:17:18< aeth> That's the UI innovation of 15 years ago 20160219 10:17:19< vultraz> menus should NOT look like loading bay doors coming down 20160219 10:17:34< vultraz> we should NOT have crazy animated cursors 20160219 10:17:44< vultraz> we should NOT have over-decorated UI elements 20160219 10:18:15< zookeeper> vultraz, they should be animated parchment scrolls scrolling open and a 3D quill descending on it and quickly writing the text on it 20160219 10:18:18< zookeeper> it could take like 10 seconds 20160219 10:18:22< zookeeper> but it would look awesome 20160219 10:18:38< vultraz> *crying while laughing emoji* 20160219 10:18:40< aeth> vultraz: I was explaining the cutting edge cool UI stuff of 15 years ago 20160219 10:18:52< aeth> Maybe 16-17. 20160219 10:18:58< aeth> Same rough timeframe, anyway. 20160219 10:19:08< vultraz> aeth: yeah i get it 20160219 10:19:12< vultraz> but we should not do that :P 20160219 10:19:23< fendrin> obviously 20160219 10:19:36< vultraz> fendrin: water being shader magic is good 20160219 10:19:45< aeth> vultraz: Well, first we need to change the game's name from "The Battle for Wesnoth" to "wesnoth.org" 20160219 10:19:51< vultraz> it would allow it to be smoother than it is now and have more effects 20160219 10:20:03< vultraz> like 20160219 10:20:13< vultraz> we could write a 'stormy water' shader 20160219 10:20:20< aeth> vultraz: well it can't be *too* realistic because it wouldn't match the style... it would just have to be smoother 20160219 10:20:35< aeth> Actually, it'll probably be hard to come up with a water style that works 20160219 10:20:57< zookeeper> it wouldn't be very hard 20160219 10:21:02< vultraz> aeth: "The Battle For Wesnoth.org"? :P 20160219 10:21:02< zookeeper> it's all in the shading 20160219 10:21:38< vultraz> where Konrad fights hackers who are trying to steal the wesnoth.org domain ? :P 20160219 10:22:00< aeth> Once water is moved into an effect, what you could do is add some feature to be able to change what the water's visual characteristics are. 20160219 10:22:08< fendrin> I would imagine that the floor/bottum of a river/sea is just drown like every other terrain. 20160219 10:22:11< aeth> So e.g. rivers are running water, oceans have waves and maybe storms, etc. 20160219 10:22:12< iceiceice> "To recruit a unit you must navigate to the domain nameserver" 20160219 10:22:23< vultraz> xD 20160219 10:22:26< aeth> I'd really like to be able to set the flow direction of a stream or river in the editor. 20160219 10:22:27< fendrin> Then a shader effect draws the fluid above it. 20160219 10:22:40< vultraz> aeth: me too 20160219 10:22:45< aeth> fendrin: good point, that could work 20160219 10:23:04< vultraz> see, all this cool stuff we could do with ogl 20160219 10:23:08< vultraz> we must get to work! 20160219 10:23:35 * zookeeper facepalms a bit 20160219 10:23:39< aeth> vultraz: SDL2 comes first. 20160219 10:23:46< iceiceice> SDL2 happened, right? 20160219 10:23:49< vultraz> aeth: it has already come 20160219 10:23:51< vultraz> :) 20160219 10:23:56< aeth> Well, it's *happening*, present tense 20160219 10:24:01< vultraz> true, true 20160219 10:24:03< iceiceice> is it still buggy? 20160219 10:24:12< vultraz> iceiceice: not as much as two months ago 20160219 10:24:14< iceiceice> i didnt build master in like 6 months or something 20160219 10:24:29< vultraz> iceiceice: there are some issues tobe fixed by the guifixes PR 20160219 10:24:37< aeth> OpenGL is going to be a bit complicated. First, mobile will need a separate code path (two?) 20160219 10:24:38< vultraz> besides that, mostly more minor things 20160219 10:24:58< vultraz> aeth: I intend to push for dedicated mobile ports in the main repo 20160219 10:24:59< aeth> Second, someone is probably still playing Wesnoth on a computer from 2003 that doesn't support "modern" (2010) OpenGL or something, and they will complain 20160219 10:25:12< zookeeper> as long as no one here is an expert on procedural water in a shader, having OGL isn't really going to take one any closer to it. it's just a prerequisite. 20160219 10:25:19< iceiceice> aeth, those people can use mesa 20160219 10:25:28< iceiceice> it should still run fine i think 20160219 10:25:37< aeth> Mesa emulates 3.3 in the software too? 20160219 10:25:37< vultraz> aeth: if they do, we will ignore them 20160219 10:25:40< iceiceice> yes 20160219 10:25:50< aeth> Well, then, no reason not to use 3.3. Mesa supports the edge cases. 20160219 10:25:52< iceiceice> i have tested it actually 20160219 10:26:04< iceiceice> you can even cross compile mesa for as far back as windows XP 20160219 10:26:05< fendrin> iceiceice: The display client you mentioned in the forum thread, would it support shader generated water? 20160219 10:26:23< iceiceice> i can only hope so :) 20160219 10:26:46< iceiceice> actually its a bit tricky 20160219 10:26:51< iceiceice> i dont know right now like 20160219 10:26:58< iceiceice> if adodns should be able to write their own shaders 20160219 10:27:03< iceiceice> i mean ideally they should be able to 20160219 10:27:11< iceiceice> but that is normally too hard for a UMC person 20160219 10:27:23< iceiceice> also if you will support multiple OGL shader languages 20160219 10:27:31< iceiceice> then you have to find a way to translate from one to the other 20160219 10:27:38< vultraz> gimme muh animated water and weather efx *_* 20160219 10:27:52< fendrin> :-) 20160219 10:27:54< iceiceice> in my test code i am using some hack where like 20160219 10:27:55< aeth> Water, weather, lighting, spells. Those would be the main goals. 20160219 10:28:04< vultraz> aeth: yes 20160219 10:28:06< vultraz> and sexy UI 20160219 10:28:11< fendrin> weather can do a lot for the atmosphere of a game 20160219 10:28:19< aeth> OpenGL 3.3 with GLSL 330 shaders seems to be the way to go. Not all of GLSL 330, but the subset that can compile to SPIR-V, so that we don't have to have a ton of work yet again in 6 years. 20160219 10:28:20< iceiceice> i use this hard-coded #define thing for making GLSL ES shaders work as GLSL 20160219 10:28:27< iceiceice> but its probably awful 20160219 10:28:29< iceiceice> :) 20160219 10:28:38< aeth> vultraz: Sexy UI can just be a library once we're on GL+SDL2 because I'm sure libraries will support that. 20160219 10:28:41< iceiceice> i assume that real ogl people would tell me to write a little compiler tool or something 20160219 10:28:48< iceiceice> i guess i could like 20160219 10:28:57< iceiceice> try to detect if their shader would not be compatible with my macro 20160219 10:29:09< vultraz> aeth: a ui library? 20160219 10:29:16< vultraz> aeth: do you have one in mind? 20160219 10:29:22< aeth> vultraz: not me 20160219 10:29:29< aeth> someone else can do that 20160219 10:29:32< iceiceice> vultraz, the one i have experimented with is CEGUI 20160219 10:29:36< iceiceice> which supports animated windows 20160219 10:29:45< iceiceice> and drag-and-drop ui elements as a built-in feature 20160219 10:29:47< zookeeper> generating water is not a problem, generating water which automatically flows properly according to surrounding terrain is a problem. 20160219 10:29:51< iceiceice> and has a WYSIWYG layout editor 20160219 10:29:56< iceiceice> which is awesome 20160219 10:30:00< aeth> iceiceice: What we're going to do, hopefully, is the other way around from GLSL ES -> GLSL. Write for OpenGL 3.3, and hopefully it'll work on mobile too with a little bit of work. 20160219 10:30:13< iceiceice> and you can make cstom shaders which applies to the UI 20160219 10:30:20< aeth> Or, rather, the GLSL 330 subset that still compiles to SPIR-V, as I have said. 20160219 10:30:27-!- Kwandulin [~Miranda@p200300760F0BC5015C8930204C40486E.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160219 10:30:28< iceiceice> yeah thats exactly what i do i guess 20160219 10:30:31< aeth> Some features were deprecated. 20160219 10:30:35< iceiceice> except i originally targetted GLES2 20160219 10:30:44< iceiceice> there is some stuff that doesnt carry over though 20160219 10:30:53< aeth> If you want to know what just got deprecated in GLSL: https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0/doc/specs/misc/GL_KHR_vulkan_glsl.txt 20160219 10:30:55< iceiceice> like you will have to decide if you require vertex array buffers or not 20160219 10:31:01< vultraz> iceiceice: themeable? 20160219 10:31:04< iceiceice> if you dont that limits things 20160219 10:31:08< aeth> oh, not deprecated, the features just got removed 20160219 10:31:22< iceiceice> vultraz, yes, the layouts are specified as xml files 20160219 10:31:23< aeth> I think they should basically be treated as deprecated in OpenGL if they're removed in Vulkan. 20160219 10:31:25< iceiceice> which are portable 20160219 10:31:36< iceiceice> and you basically generate a widget skin for the widgets youw ant to use 20160219 10:31:40< vultraz> ew xml :| 20160219 10:31:51< iceiceice> skinning the widgets actually is alot like WML 20160219 10:32:01< iceiceice> in that you code up all this goofy arithmetic as xml tags 20160219 10:32:07< aeth> vultraz: yes, xml = eww but this is the Wesnoth community, which is used to WML :P 20160219 10:32:22< fendrin> vultraz: xml isn't that bad in that case because you use the wysiwyg editor to produce them. 20160219 10:32:41< iceiceice> i guess i should release my widget skin that i made with lord bob's art 20160219 10:32:44< iceiceice> but it still has some bugs in it 20160219 10:32:54< iceiceice> idk i guess i might fiddle with it more 20160219 10:32:56< fendrin> iceiceice: Do you have a pretty screenshot? 20160219 10:33:03< iceiceice> ehhhhhhh 20160219 10:33:09< iceiceice> i'm a bit gunshy on that i think 20160219 10:33:34< fendrin> :-) 20160219 10:34:05< fendrin> I whish I had a good one for my stuff. The asci art client didn't seem to impress people a lot. 20160219 10:35:33< aeth> zookeeper: You don't need automatic water flow, you can just offload the work onto the mappers since most of the time the water is pretty obvious e.g. a stream or a lake or an ocean. 20160219 10:35:41< aeth> Just default to perfectly still 20160219 10:35:58< fendrin> the water flow would be an issue of a particle system 20160219 10:36:21< fendrin> something jetrel filled a FR for before ages 20160219 10:37:18< iceiceice> ok sleepy time 20160219 10:37:24-!- iceiceice [~chris@wesnoth/developer/iceiceice] has quit [Quit: Leaving] 20160219 10:38:28< vultraz> fendrin: the default water shader should be 'bobbing' 20160219 10:38:48< zookeeper> aeth, yet you still need some kind of blending between water tiles flowing in different directions, and just "blending" won't work. 20160219 10:39:35< zookeeper> and, like, particle systems can't do water. at best they can do foam and splashes in streams and that sort of thing. 20160219 10:40:30< zookeeper> a certain kind of particle system could determine the direction of flow on a given tile, but you'd still need to be able to make the actual water geometry somehow magically take that into consideration 20160219 10:42:30-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20160219 10:55:18< aeth> Oh, I forgot one better reason why any shaders Wesnoth uses need to be able to compile to SPIR-V. Even if Wesnoth never moves to Vulkan, SPIR-V will probably come to OpenGL. It's an easy way for faster GL. 20160219 10:56:00< aeth> Wesnoth won't use 4.6 or whatever version adds this, but it'll be an extension too. 20160219 10:57:19< fendrin> aeth: You should talk to iceiceice about it. I guess Wesnoth will not move to OpenGL. The chances his client reaches a good state are much higher than Wesnoth moving much. 20160219 10:57:34< aeth> zookeeper: Yes, water will be hard. 20160219 10:58:05< aeth> fendrin: OpenGL isn't that hard. It will just be massively time consuming. 20160219 10:58:46< fendrin> Same for fixing GUI2. 20160219 10:59:01< fendrin> It isn't hard either but time consuming. 20160219 10:59:37< fendrin> And I have seen 3 or more attempts at moving Wesnoth to opengl. 20160219 11:02:29< aeth> I'm not moving Wesnoth to OpenGL. I'm working on my own graphics stuff. If any of it happens to be recyclable, and I suspect it is because GL is full of boilerplate, I might be able to do something. No guarantees. 20160219 11:02:52< loonycyborg> Using shaders is just pita. Using them forces you to make code less localized and more complex 20160219 11:03:15< fendrin> aeth: What are you working on? 20160219 11:03:58< aeth> A spaceflight game. No screenshots atm, it's just floating hexagons in space. 20160219 11:05:25< fendrin> hexagons in space 20160219 11:05:46< loonycyborg> In fact it seems what really makes vulkan examples so hairy is the use of shaders 20160219 11:06:02< loonycyborg> shader using opengl is equally hairy 20160219 11:06:36< fendrin> loonycyborg: I guess most opengl games use shaders somehow. Just not using them is not much of an option. 20160219 11:06:59< aeth> loonycyborg: Shaders aren't bad. GLSL is bad. Hopefully SPIR-V fixes this. Until then, all we have for portable modern graphics is GLSL. 20160219 11:07:33< loonycyborg> I was talking about more fundamental issue. 20160219 11:07:54< aeth> Then again, C++ is bad too, and WML is bad, and even Lua is kinda bad... so adding GLSL to Wesnoth won't change much. 20160219 11:08:20< loonycyborg> like code handling drawing one thing might get smeared over your C++, vertex shader, pixel shader, geometry shader.. 20160219 11:08:31< fendrin> Luckily everything that is bad about Lua is fixed with MoonScript. 20160219 11:09:06< aeth> loonycyborg: GPUs make things complex, but they're amazingly fast. Unless Moore's law skips about 10 years with a major breakthrough, GPUs are the way to go. 20160219 11:09:26< aeth> Like, a lot of things are only possible because of them. 20160219 11:09:33< loonycyborg> it's non-trivial design effort to make code maintainable 20160219 11:10:14< loonycyborg> still seems like a cool puzzle, so I was reading vulkan reference recently :P 20160219 11:10:51< loonycyborg> the fact that I bothered bodes ill for it because I'm only interested in puzzles, not practically useful technologies :P 20160219 11:11:31< aeth> loonycyborg: Well, nothing stops you from generating GLSL and/or SPIR-V in non-traditional ways rather than .vert, .frag, etc. 20160219 11:11:51< loonycyborg> yes, non-traditional is the whole point 20160219 11:11:58< aeth> A bit harder with SPIR-V than GLSL strings, but probably faster. 20160219 11:12:06< fendrin> I am glad that ice³ is doing the client stuff and I can concentrate on the server side. That means I can watch and enjoy others work while not getting involved into the 3d stuff. 20160219 11:12:39< fendrin> And the server side is enough work on its own. 20160219 11:13:04< aeth> fendrin: You know what Wesnoth is lacking? Quaternions. :P 20160219 11:13:27< fendrin> can you eat them? 20160219 11:14:11< fendrin> oh, some thing like the unholy complex numbers. 20160219 11:14:16< aeth> http://mathworld.wolfram.com/Quaternion.html 20160219 11:14:25< aeth> Welcome to modern graphics. 20160219 11:14:47< aeth> To be fair, you don't need to know what they are, you just multiply them. 20160219 11:15:02< fendrin> Well, in fact I would enjoy working on a 3d graphic engine or similar. 20160219 11:16:16< fendrin> But for now it has to be syntax and api design. 20160219 11:18:27< aeth> Well graphics engines just got 10x more complicated so... good choice. 20160219 11:20:30< fendrin> Yeah, It is interesting. I enjoy working on it and like my results already. 20160219 11:24:43-!- atarocch [~atarocch@151.64.78.59] has joined #wesnoth-dev 20160219 11:26:18-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 250 seconds] 20160219 11:50:01-!- Alduin_ [~Alduin@2001:4ca0:0:f255:fda7:d9bf:e69d:dc1a] has quit [Ping timeout: 240 seconds] 20160219 11:50:09-!- boucman_work [~jrosen@193.56.60.161] has joined #wesnoth-dev 20160219 11:50:09-!- boucman_work [~jrosen@193.56.60.161] has quit [Changing host] 20160219 11:50:09-!- boucman_work [~jrosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160219 12:14:32-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160219 12:34:46-!- Kwandulin [~Miranda@p200300760F0BC5015C8930204C40486E.dip0.t-ipconnect.de] has quit [Ping timeout: 250 seconds] 20160219 12:54:30-!- louis94 [~~louis94@91.178.242.231] has joined #wesnoth-dev 20160219 12:58:49-!- aidanhs [~aidanhs@81.4.110.234] has quit [Ping timeout: 240 seconds] 20160219 13:00:15-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Quit: wedge009] 20160219 13:05:07-!- aidanhs [~aidanhs@81.4.110.234] has joined #wesnoth-dev 20160219 13:07:11-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160219 13:20:25-!- Kwandulin [~Miranda@p200300760F0BC5EA5C8930204C40486E.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160219 13:37:26-!- Rhonda [~rhonda@anguilla.noreply.org] has quit [Changing host] 20160219 13:37:26-!- Rhonda [~rhonda@wesnoth/developer/rhonda] has joined #wesnoth-dev 20160219 13:44:16-!- Kwandulin [~Miranda@p200300760F0BC5EA5C8930204C40486E.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160219 14:57:02-!- Kwandulin [~Miranda@p200300760F0BC5EAE0B8F906D4941BA4.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160219 15:24:04-!- louis94 [~~louis94@91.178.242.231] has quit [Ping timeout: 240 seconds] 20160219 15:33:46-!- Necrosporus_ [~Necrospor@unaffiliated/necrosporus] has joined #wesnoth-dev 20160219 15:37:04-!- Necrosporus [~Necrospor@unaffiliated/necrosporus] has quit [Ping timeout: 240 seconds] 20160219 15:46:38-!- louis94 [~~louis94@91.178.242.231] has joined #wesnoth-dev 20160219 16:09:28-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160219 16:21:13-!- zombah [~zombah@2a02:28:3:1:214:4fff:fe47:5920] has quit [Quit: Leaving] 20160219 16:23:15-!- louis94 [~~louis94@91.178.242.231] has quit [Ping timeout: 276 seconds] 20160219 16:28:40-!- louis94 [~~louis94@91.178.242.231] has joined #wesnoth-dev 20160219 16:36:11-!- celmin|sleep is now known as celticminstrel 20160219 16:44:24-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: End Transmission.] 20160219 16:57:32-!- Kwandulin [~Miranda@p200300760F0BC5EAE0B8F906D4941BA4.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160219 17:08:45-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 244 seconds] 20160219 17:13:55-!- louis94 [~~louis94@91.178.242.231] has quit [Ping timeout: 244 seconds] 20160219 17:29:48-!- Kwandulin [~Miranda@p200300760F0BC5EAA143482CA2E3DCCB.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160219 17:33:55-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160219 17:48:06-!- fendrin [~quassel@wesnoth/developer/fendrin] has quit [Quit: No Ping reply in 180 seconds.] 20160219 17:49:36-!- fendrin [~quassel@176.4.28.218] has joined #wesnoth-dev 20160219 17:49:36-!- fendrin [~quassel@176.4.28.218] has quit [Changing host] 20160219 17:49:36-!- fendrin [~quassel@wesnoth/developer/fendrin] has joined #wesnoth-dev 20160219 17:56:47-!- fendrin [~quassel@wesnoth/developer/fendrin] has quit [Quit: No Ping reply in 180 seconds.] 20160219 17:58:18-!- fendrin [~quassel@176.4.28.218] has joined #wesnoth-dev 20160219 17:58:18-!- fendrin [~quassel@176.4.28.218] has quit [Changing host] 20160219 17:58:18-!- fendrin [~quassel@wesnoth/developer/fendrin] has joined #wesnoth-dev 20160219 18:25:43-!- Netsplit *.net <-> *.split quits: TC01, knotwork__ 20160219 18:26:01-!- Netsplit over, joins: knotwork__ 20160219 18:27:27-!- Netsplit *.net <-> *.split quits: Crendgrim, aeth, minzbonbon 20160219 18:27:44-!- Netsplit over, joins: aeth, Crendgrim 20160219 18:27:44-!- TC01 [~quassel@london.acm.jhu.edu] has joined #wesnoth-dev 20160219 18:27:54-!- minzbonbon [~min@meta23.net] has joined #wesnoth-dev 20160219 19:44:11-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160219 19:44:27-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Quit: wedge009] 20160219 20:18:16-!- atarocch [~atarocch@151.64.78.59] has quit [Quit: Leaving] 20160219 20:55:40-!- Kwandulin [~Miranda@p200300760F0BC5EAA143482CA2E3DCCB.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160219 21:12:02-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160219 21:36:00-!- prkc [~prkc@46.166.188.226] has quit [Remote host closed the connection] 20160219 21:38:33-!- prkc [~prkc@gateway/vpn/privateinternetaccess/prkc] has joined #wesnoth-dev 20160219 21:39:49-!- prkc_ [~prkc@gateway/vpn/privateinternetaccess/prkc] has joined #wesnoth-dev 20160219 21:43:06-!- prkc [~prkc@gateway/vpn/privateinternetaccess/prkc] has quit [Ping timeout: 244 seconds] 20160219 21:56:32-!- prkc_ [~prkc@gateway/vpn/privateinternetaccess/prkc] has quit [Remote host closed the connection] 20160219 21:57:59-!- prkc [~prkc@gateway/vpn/privateinternetaccess/prkc] has joined #wesnoth-dev 20160219 22:20:40-!- mjs-de [~mjs-de@f053181087.adsl.alicedsl.de] has quit [Remote host closed the connection] 20160219 22:32:34-!- oldlaptop [~quassel@192.183.14.123] has quit [Ping timeout: 240 seconds] 20160219 22:49:37-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160219 23:05:06-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20160219 23:05:42< vultraz> gfgtdf: do you know if this can be made a gui2 popup? https://github.com/wesnoth/wesnoth/blob/master/src/actions/undo_recruit_action.cpp#L108 20160219 23:06:00-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160219 23:09:06< vultraz> same in recall_actions 20160219 23:29:32-!- fendrin [~quassel@wesnoth/developer/fendrin] has quit [Ping timeout: 244 seconds] 20160219 23:33:48-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20160219 23:36:10< zookeeper> random question: has someone who knows SDL well made sure that our blitting operations are as fast as they can? as in, not missing any flags relating to hardware use or whatever? 20160219 23:47:29-!- louis94 [~~louis94@91.178.242.231] has joined #wesnoth-dev --- Log closed Sat Feb 20 00:00:22 2016